fn generate_serializer()

in src/descriptors/enum_desc.rs [12:33]


    fn generate_serializer(&self) -> proc_macro2::TokenStream {
        let mut versioned_serializers = proc_macro2::TokenStream::new();

        for i in 1..=self.version {
            let mut versioned_serializer = proc_macro2::TokenStream::new();

            for field in &self.fields {
                versioned_serializer.extend(field.generate_serializer(i));
            }

            // Generate the match arm for version `i` serializer.
            versioned_serializers.extend(quote! {
                #i => {
                    match self {
                        #versioned_serializer
                    }
                }
            });
        }

        versioned_serializers
    }