@@ -127,19 +127,7 @@ impl StructField {
127127 _ => panic ! ( "Unsupported array type." ) ,
128128 }
129129
130- match & array. len {
131- syn:: Expr :: Lit ( expr_lit) => match & expr_lit. lit {
132- syn:: Lit :: Int ( lit_int) => {
133- let array_len: usize = lit_int. base10_parse ( ) . unwrap ( ) ;
134- self . generate_array_deserializer ( array_type_token, array_len)
135- }
136- _ => panic ! ( "Unsupported array len literal." ) ,
137- } ,
138- syn:: Expr :: Path ( expr_path) => {
139- self . generate_array_deserializer ( array_type_token, & expr_path. path )
140- }
141- _ => panic ! ( "Unsupported array len expression." ) ,
142- }
130+ self . generate_array_deserializer ( array_type_token, & array. len )
143131 }
144132 syn:: Type :: Path ( _) => quote ! {
145133 #field_ident: <#ty as Versionize >:: deserialize( & mut reader, version_map, app_version) ?,
@@ -151,10 +139,10 @@ impl StructField {
151139 }
152140 }
153141
154- fn generate_array_deserializer < T : quote :: ToTokens > (
142+ fn generate_array_deserializer (
155143 & self ,
156144 array_type_token : syn:: TypePath ,
157- array_len : T ,
145+ array_len : & syn :: Expr ,
158146 ) -> proc_macro2:: TokenStream {
159147 let field_ident = format_ident ! ( "{}" , self . name) ;
160148
0 commit comments