mirror of
https://github.com/lifegpc/pixiv_downloader.git
synced 2026-06-06 05:49:01 +08:00
Update
This commit is contained in:
@@ -43,3 +43,37 @@ pub fn impl_struct_reader_read(item: TokenStream) -> TokenStream {
|
||||
};
|
||||
stream.into()
|
||||
}
|
||||
|
||||
#[proc_macro]
|
||||
pub fn define_struct_writer_fn(item: TokenStream) -> TokenStream {
|
||||
let i = parse_macro_input!(item as Ident);
|
||||
let lefname = format!("write_le_{}", i);
|
||||
let lefname = Ident::new(&lefname, i.span());
|
||||
let befname = format!("write_be_{}", i);
|
||||
let befname = Ident::new(&befname, i.span());
|
||||
let stream = quote! {
|
||||
#[doc = concat!("Write [", stringify!(#i), "] in little endian.")]
|
||||
fn #lefname(&mut self, data: #i) -> Result<(), Self::Error>;
|
||||
#[doc = concat!("Write [", stringify!(#i), "] in big endian.")]
|
||||
fn #befname(&mut self, data: #i) -> Result<(), Self::Error>;
|
||||
};
|
||||
stream.into()
|
||||
}
|
||||
|
||||
#[proc_macro]
|
||||
pub fn impl_struct_writer_write(item: TokenStream) -> TokenStream {
|
||||
let i = parse_macro_input!(item as Ident);
|
||||
let lefname = format!("write_le_{}", i);
|
||||
let lefname = Ident::new(&lefname, i.span());
|
||||
let befname = format!("write_be_{}", i);
|
||||
let befname = Ident::new(&befname, i.span());
|
||||
let stream = quote! {
|
||||
fn #lefname(&mut self, data: #i) -> Result<(), Self::Error> {
|
||||
self.write_all(&data.to_le_bytes())
|
||||
}
|
||||
fn #befname(&mut self, data: #i) -> Result<(), Self::Error> {
|
||||
self.write_all(&data.to_be_bytes())
|
||||
}
|
||||
};
|
||||
stream.into()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user