silence warnings, print strings in packets
This commit is contained in:
parent
2a95dacb57
commit
7c246f5446
@ -37,17 +37,35 @@ pub fn pso_packet(attr: TokenStream, item: TokenStream) -> TokenStream {
|
|||||||
};
|
};
|
||||||
match *arr.elem {
|
match *arr.elem {
|
||||||
syn::Type::Path(ref path) => {
|
syn::Type::Path(ref path) => {
|
||||||
dbg_write_vars.push(quote! {
|
let ty = path.path.segments[0].ident.to_string();
|
||||||
write!(f, " {}: {:?}\n", #ident_str, self.#ident.iter()).unwrap();
|
if ty.as_str() == "u8_str" {
|
||||||
});
|
dbg_write_vars.push(quote! {
|
||||||
|
match std::str::from_utf8(&self.#ident) {
|
||||||
|
Ok(v) => write!(f, " {}: {:?}\n", #ident_str, v).unwrap(),
|
||||||
|
Err(_) => write!(f, " {}: {:?}\n", #ident_str, self.#ident.iter()).unwrap()
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dbg_write_vars.push(quote! {
|
||||||
|
write!(f, " {}: {:?}\n", #ident_str, self.#ident.iter()).unwrap();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
//dbg_write_vars.push(quote! {
|
||||||
|
//write!(f, " {}: {:?}\n", #ident_str, self.#ident.iter()).unwrap();
|
||||||
|
/*match std::str::from_utf8(&self.#ident) {
|
||||||
|
Ok(v) => write!(f, " {}: {:?}\n", #ident_str, v).unwrap(),
|
||||||
|
Err(_) => write!(f, " {}: {:?}\n", #ident_str, self.#ident.iter()).unwrap()
|
||||||
|
}*/
|
||||||
|
//write!(f, " {}: {:?}\n", #ident_str, var_as_str).unwrap();
|
||||||
|
//});
|
||||||
as_bytes.push(quote! {
|
as_bytes.push(quote! {
|
||||||
for f in self.#ident.iter() {
|
for f in self.#ident.iter() {
|
||||||
buf.extend_from_slice(&f.to_le_bytes())
|
buf.extend_from_slice(&f.to_le_bytes())
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
let ty = path.path.segments[0].ident.to_string();
|
|
||||||
match ty.as_str() {
|
match ty.as_str() {
|
||||||
"u8" => {
|
"u8" | "u8_str" => {
|
||||||
from_bytes.push(quote! {
|
from_bytes.push(quote! {
|
||||||
#ident: {
|
#ident: {
|
||||||
let mut b: [u8; #array_length] = [0; #array_length];
|
let mut b: [u8; #array_length] = [0; #array_length];
|
||||||
@ -88,7 +106,7 @@ pub fn pso_packet(attr: TokenStream, item: TokenStream) -> TokenStream {
|
|||||||
});
|
});
|
||||||
let ty = path.path.segments[0].ident.to_string();
|
let ty = path.path.segments[0].ident.to_string();
|
||||||
match ty.as_str() {
|
match ty.as_str() {
|
||||||
"u8" => {
|
"u8" | "u8_str" => {
|
||||||
from_bytes.push(quote! {
|
from_bytes.push(quote! {
|
||||||
#ident: {
|
#ident: {
|
||||||
let mut b: [u8; 1] = [0; 1];
|
let mut b: [u8; 1] = [0; 1];
|
||||||
@ -178,9 +196,9 @@ pub fn pso_packet(attr: TokenStream, item: TokenStream) -> TokenStream {
|
|||||||
impl PSOPacket for #this_struct {
|
impl PSOPacket for #this_struct {
|
||||||
fn from_bytes(data: &Vec<u8>) -> Result<#this_struct, PacketParseError> {
|
fn from_bytes(data: &Vec<u8>) -> Result<#this_struct, PacketParseError> {
|
||||||
let mut cur = std::io::Cursor::new(data);
|
let mut cur = std::io::Cursor::new(data);
|
||||||
cur.seek(SeekFrom::Start(2));
|
cur.seek(SeekFrom::Start(2)).unwrap();
|
||||||
let mut b: [u8; 2] = [0; 2];
|
let mut b: [u8; 2] = [0; 2];
|
||||||
cur.read(&mut b);
|
cur.read(&mut b).unwrap();
|
||||||
let cmd = u16::from_le_bytes(b);
|
let cmd = u16::from_le_bytes(b);
|
||||||
|
|
||||||
if cmd != #pkt_cmd {
|
if cmd != #pkt_cmd {
|
||||||
@ -188,10 +206,10 @@ pub fn pso_packet(attr: TokenStream, item: TokenStream) -> TokenStream {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if #has_flag {
|
if #has_flag {
|
||||||
cur.seek(SeekFrom::Start(4));
|
cur.seek(SeekFrom::Start(4)).unwrap();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
cur.seek(SeekFrom::Start(8));
|
cur.seek(SeekFrom::Start(8)).unwrap();
|
||||||
}
|
}
|
||||||
Ok(#this_struct {
|
Ok(#this_struct {
|
||||||
#(#from_bytes)*
|
#(#from_bytes)*
|
||||||
|
@ -3,10 +3,12 @@ use crate::{PSOPacket, PacketParseError};
|
|||||||
|
|
||||||
use std::io::{Read, Seek, SeekFrom};
|
use std::io::{Read, Seek, SeekFrom};
|
||||||
|
|
||||||
|
#[allow(non_camel_case_types)]
|
||||||
|
type u8_str = u8;
|
||||||
|
|
||||||
#[pso_packet(0x02)]
|
#[pso_packet(0x02)]
|
||||||
struct PatchWelcome {
|
pub struct PatchWelcome {
|
||||||
copyright: [u8; 44],
|
copyright: [u8_str; 44],
|
||||||
padding: [u8; 20],
|
padding: [u8; 20],
|
||||||
server_key: u32,
|
server_key: u32,
|
||||||
client_key: u32,
|
client_key: u32,
|
||||||
@ -23,9 +25,10 @@ impl PatchWelcome {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
enum PatchPackets {
|
pub enum PatchPacket {
|
||||||
PatchWelcome(PatchWelcome)
|
PatchWelcome(PatchWelcome),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
@ -53,6 +56,9 @@ mod tests {
|
|||||||
padding: [0; 20],
|
padding: [0; 20],
|
||||||
server_key: 123,
|
server_key: 123,
|
||||||
client_key: 456,
|
client_key: 456,
|
||||||
}))
|
}));
|
||||||
|
if let Ok(p) = new_pkt {
|
||||||
|
println!("{:?}", p);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user