pso_packet: u16 and u32 arrays
This commit is contained in:
parent
0a26d1d8c6
commit
48599ee116
@ -8,5 +8,6 @@ edition = "2018"
|
|||||||
proc-macro = true
|
proc-macro = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
syn = {version = "0.15", features=["full", "extra-traits", "parsing"]}
|
syn = {version = "1.0", features=["full", "extra-traits", "parsing"]}
|
||||||
quote = "0.6"
|
quote = "1.0"
|
||||||
|
proc-macro2 = "1.0"
|
||||||
|
@ -80,6 +80,40 @@ pub fn pso_packet(attr: TokenStream, item: TokenStream) -> TokenStream {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
"u16" => {
|
||||||
|
from_bytes.push(quote! {
|
||||||
|
#ident: {
|
||||||
|
let mut b: [u16; #array_length] = [0; #array_length];
|
||||||
|
if let Ok(len) = cur.read(&mut b) {
|
||||||
|
if len != #array_length {
|
||||||
|
return Err(PacketParseError::NotEnoughBytes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return Err(PacketParseError::NotEnoughBytes);
|
||||||
|
};
|
||||||
|
b
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
"u32" => {
|
||||||
|
from_bytes.push(quote! {
|
||||||
|
#ident: {
|
||||||
|
let mut b: [u32; #array_length] = [0; #array_length];
|
||||||
|
if let Ok(len) = cur.read(&mut b) {
|
||||||
|
if len != #array_length {
|
||||||
|
return Err(PacketParseError::NotEnoughBytes);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return Err(PacketParseError::NotEnoughBytes);
|
||||||
|
};
|
||||||
|
b
|
||||||
|
},
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
_ => {
|
_ => {
|
||||||
return syn::Error::new(path.path.segments[0].ident.span(), "type not supported")
|
return syn::Error::new(path.path.segments[0].ident.span(), "type not supported")
|
||||||
.to_compile_error().into();
|
.to_compile_error().into();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user