@@ -47,6 +47,26 @@ fn process_type(ty: &Type) -> TokenStream {
4747 }
4848 }
4949 }
50+ "BTreeMap" => {
51+ if let PathArguments :: AngleBracketed ( AngleBracketedGenericArguments {
52+ args, ..
53+ } ) = & path. segments . last ( ) . unwrap ( ) . arguments
54+ {
55+ let mut iter = args. iter ( ) ;
56+ if let (
57+ Some ( GenericArgument :: Type ( inner_ty_0) ) ,
58+ Some ( GenericArgument :: Type ( inner_ty_1) ) ,
59+ ) = ( iter. next ( ) , iter. next ( ) )
60+ {
61+ let inner_processed_0 = process_type ( inner_ty_0) ;
62+ let inner_processed_1 = process_type ( inner_ty_1) ;
63+
64+ return quote ! {
65+ #ident:: <#inner_processed_0, #inner_processed_1>
66+ } ;
67+ }
68+ }
69+ }
5070 _ => { }
5171 }
5272
@@ -72,7 +92,7 @@ pub(crate) fn handle(ast: DeriveInput) -> Result<TokenStream, Error> {
7292
7393 let field_name = field_opts
7494 . ident
75- . unwrap_or_else ( || Ident :: new ( & format ! ( "filed_ {}" , i) , Span :: call_site ( ) ) ) ;
95+ . unwrap_or_else ( || Ident :: new ( & format ! ( "field_ {}" , i) , Span :: call_site ( ) ) ) ;
7696 let ty = process_type ( & field_opts. ty ) ;
7797
7898 encode_fields. push ( quote ! {
@@ -135,7 +155,7 @@ pub(crate) fn handle(ast: DeriveInput) -> Result<TokenStream, Error> {
135155
136156 let field_name = field_opts
137157 . ident
138- . unwrap_or_else ( || Ident :: new ( & format ! ( "filed_ {}" , i) , Span :: call_site ( ) ) ) ;
158+ . unwrap_or_else ( || Ident :: new ( & format ! ( "field_ {}" , i) , Span :: call_site ( ) ) ) ;
139159 let ty = process_type ( & field_opts. ty ) ;
140160
141161 encode_fields. push ( quote ! {
0 commit comments