ic-stable-memory-derive 0.4.2

Derive macros for ic-stable-memory
Documentation
use proc_macro2::{self, TokenStream};
use quote::quote;
use syn::{Generics, Ident};

pub fn derive_fixed_size_as_dyn_size_bytes_impl(ident: &Ident, generics: &Generics) -> TokenStream {
    if !generics.params.is_empty() {
        panic!("Generics not supported");
    }

    quote! {
        impl ic_stable_memory::AsDynSizeBytes for #ident {
            #[inline]
            fn as_dyn_size_bytes(&self) -> Vec<u8> {
                ic_stable_memory::AsFixedSizeBytes::as_new_fixed_size_bytes(self).to_vec()
            }

            #[inline]
            fn from_dyn_size_bytes(arr: &[u8]) -> Self {
                ic_stable_memory::AsFixedSizeBytes::from_fixed_size_bytes(arr)
            }
        }
    }
}