INNER CODE UNIT · Rust

value_deser_impl

obmarg/cynic · cynic-parser-deser-macros/src/lib.rs:28

fn value_deser_impl(ast: &syn::DeriveInput) -> Result<TokenStream, syn::Error> {
    let syn::Data::Struct(data) = &ast.data else {
        panic!("ValueDeserialize can only be derived on structs");
    };

    let ident = &ast.ident;

    let (original_impl_generics, ty_generics, where_clause) = ast.generics.split_for_impl();
    let (impl_generics, deser_lifetime) = match ast.generics.lifetimes().next() {
        Some(lifetime) => {
            let mut lifetime = lifetime.clone();
            lifetime.attrs = vec![];
            lifetime.bounds = Default::default();
            lifetime.colon_token = None;
            (original_impl_generics.to_token_stream(), lifetime)
        }
        None => {
            let mut generics = ast.generics.clone();

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…