MCPcopy Create free account
hub / github.com/SoftbearStudios/bitcode / field_impl

Method field_impl

bitcode_derive/src/decode.rs:36–70  ·  view source on GitHub ↗
(
        self,
        field_name: TokenStream,
        global_field_name: TokenStream,
        real_field_name: TokenStream,
        field_type: &Type,
    )

Source from the content-addressed store, hash-verified

34
35impl 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,

Callers

nothing calls this directly

Calls 3

replace_lifetimesFunction · 0.85
privateFunction · 0.85
de_lifetimeFunction · 0.85

Tested by

no test coverage detected