mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-04-28 03:00:18 -04:00
util/derive: Update proc-macro-crate to latest version.
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -1607,7 +1607,7 @@ name = "darkfi-derive"
|
||||
version = "0.3.0"
|
||||
dependencies = [
|
||||
"darkfi-derive-internal",
|
||||
"proc-macro-crate 0.1.5",
|
||||
"proc-macro-crate 1.1.3",
|
||||
"proc-macro2 1.0.36",
|
||||
"syn 1.0.89",
|
||||
]
|
||||
|
||||
@@ -7,7 +7,7 @@ edition = "2021"
|
||||
proc-macro = true
|
||||
|
||||
[dependencies]
|
||||
proc-macro-crate = "0.1.5"
|
||||
proc-macro-crate = "1.1.3"
|
||||
proc-macro2 = "1.0.36"
|
||||
syn = {version = "1.0.89", features = ["full", "fold"]}
|
||||
|
||||
|
||||
@@ -1,23 +1,27 @@
|
||||
extern crate proc_macro;
|
||||
use proc_macro::TokenStream;
|
||||
use proc_macro2::Span;
|
||||
use proc_macro_crate::crate_name;
|
||||
use proc_macro_crate::{crate_name, FoundCrate};
|
||||
use syn::{Ident, ItemStruct};
|
||||
|
||||
use darkfi_derive_internal::{struct_de, struct_ser};
|
||||
|
||||
#[proc_macro_derive(SerialEncodable)]
|
||||
pub fn darkfi_serialize(input: TokenStream) -> TokenStream {
|
||||
let cratename = Ident::new(
|
||||
&crate_name("darkfi").unwrap_or_else(|_| "crate".to_string()),
|
||||
Span::call_site(),
|
||||
);
|
||||
let found_crate = crate_name("darkfi").expect("darkfi is found in Cargo.toml");
|
||||
|
||||
let found_crate = match found_crate {
|
||||
FoundCrate::Name(name) => name,
|
||||
FoundCrate::Itself => "crate".to_string(),
|
||||
};
|
||||
|
||||
let cratename = Ident::new(&found_crate, Span::call_site());
|
||||
|
||||
let res = if let Ok(input) = syn::parse::<ItemStruct>(input) {
|
||||
struct_ser(&input, cratename)
|
||||
} else {
|
||||
// For now we only allow derive on structs
|
||||
unreachable!()
|
||||
todo!("Implement Enum and Union")
|
||||
};
|
||||
|
||||
TokenStream::from(match res {
|
||||
@@ -28,16 +32,20 @@ pub fn darkfi_serialize(input: TokenStream) -> TokenStream {
|
||||
|
||||
#[proc_macro_derive(SerialDecodable)]
|
||||
pub fn darkfi_deserialize(input: TokenStream) -> TokenStream {
|
||||
let cratename = Ident::new(
|
||||
&crate_name("darkfi").unwrap_or_else(|_| "crate".to_string()),
|
||||
Span::call_site(),
|
||||
);
|
||||
let found_crate = crate_name("darkfi").expect("darkfi is found in Cargo.toml");
|
||||
|
||||
let found_crate = match found_crate {
|
||||
FoundCrate::Name(name) => name,
|
||||
FoundCrate::Itself => "crate".to_string(),
|
||||
};
|
||||
|
||||
let cratename = Ident::new(&found_crate, Span::call_site());
|
||||
|
||||
let res = if let Ok(input) = syn::parse::<ItemStruct>(input) {
|
||||
struct_de(&input, cratename)
|
||||
} else {
|
||||
// For now we only allow derive on structs
|
||||
unreachable!()
|
||||
todo!("Implement Enum and Union")
|
||||
};
|
||||
|
||||
TokenStream::from(match res {
|
||||
|
||||
Reference in New Issue
Block a user