(
self,
field_name: TokenStream,
global_field_name: TokenStream,
real_field_name: TokenStream,
field_type: &Type,
)
| 34 | |
| 35 | impl crate::shared::Item for Item { |
| 36 | fn field_impl( |
| 37 | self, |
| 38 | field_name: TokenStream, |
| 39 | global_field_name: TokenStream, |
| 40 | real_field_name: TokenStream, |
| 41 | field_type: &Type, |
| 42 | ) -> TokenStream { |
| 43 | match self { |
| 44 | Self::Type => { |
| 45 | let de_type = replace_lifetimes(field_type, DE_LIFETIME); |
| 46 | let private = private(); |
| 47 | let de = de_lifetime(); |
| 48 | quote! { |
| 49 | #global_field_name: <#de_type as #private::Decode<#de>>::Decoder, |
| 50 | } |
| 51 | } |
| 52 | Self::Default => quote! { |
| 53 | #global_field_name: Default::default(), |
| 54 | }, |
| 55 | Self::Populate => quote! { |
| 56 | self.#global_field_name.populate(input, __length)?; |
| 57 | }, |
| 58 | // Only used by enum variants. |
| 59 | Self::Decode => quote! { |
| 60 | let #field_name = self.#global_field_name.decode(); |
| 61 | }, |
| 62 | Self::DecodeInPlace => { |
| 63 | let de_type = replace_lifetimes(field_type, DE_LIFETIME); |
| 64 | let private = private(); |
| 65 | quote! { |
| 66 | self.#global_field_name.decode_in_place(#private::uninit_field!(out.#real_field_name: #de_type)); |
| 67 | } |
| 68 | } |
| 69 | } |
| 70 | } |
| 71 | |
| 72 | fn struct_impl( |
| 73 | self, |
nothing calls this directly
no test coverage detected