Lines Matching full:fields
73 //! This macro is used to specify which fields are structurally pinned and which fields are not. It
74 //! is placed on the struct definition and allows `#[pin]` to be placed on the fields.
155 //! // fields (those marked with `#[pin]`). These fields will be listed in this struct, in our
156 //! // case no such fields exist, hence this is almost empty. The two phantomdata fields exist
225 //! // Get the data about fields from the supplied type.
533 /// fields. Afterwards it declares the struct and implement the `PinData` trait safely.
548 @body({ $($fields:tt)* }),
550 // We now use token munching to iterate through all of the fields. While doing this we
551 // identify fields marked with `#[pin]`, these fields are the 'pinned fields'. The user
552 // wants these to be structurally pinned. The rest of the fields are the
553 // 'not pinned fields'. Additionally we collect all fields, since we need them in the right
575 // The remaining fields tokens that need to be processed.
577 @fields_munch($($fields)* ,),
578 // The pinned fields.
580 // The not pinned fields.
582 // All fields.
583 @fields(),
604 @fields($($fields:tt)*),
626 @fields($($fields)* $($accum)* $field: ::core::marker::PhantomPinned,),
644 @fields($($fields:tt)*),
661 @fields($($fields)* $($accum)* $field: $type,),
679 @fields($($fields:tt)*),
696 @fields($($fields)* $($accum)* $field: $type,),
714 @fields($($fields:tt)*),
732 @fields($($fields)*),
752 @fields($($fields:tt)*),
768 @fields($($fields)*),
786 @fields($($fields:tt)*),
802 @fields($($fields)*),
816 // We reached the end of the fields, plus an optional additional comma, since we added one
821 @fields($($fields:tt)*),
826 // Declare the struct with all fields in the correct order.
831 $($fields)*
890 // fields are relevant whether the struct should implement `Unpin`.
899 // Only the pinned fields.
1034 /// - `init_slot`: recursively creates the code that initializes all fields in `slot`.
1043 @fields($($fields:tt)*),
1057 @fields($($fields)*),
1068 @fields($($fields:tt)*),
1082 @fields($($fields)*),
1087 @zeroed(()), // `()` means zero all fields not mentioned.
1093 @fields($($fields:tt)*),
1107 @fields($($fields)*),
1118 @fields($($fields:tt)*),
1133 // Get the data about fields from the supplied type.
1152 // error when fields are missing (since they will be zeroed). We also have to
1163 // expressions creating the individual fields.
1170 @munch_fields($($fields)*,),
1172 // We use unreachable code to ensure that all fields have been mentioned exactly
1180 @munch_fields($($fields)*,),
1201 // Endpoint of munching, no fields are left. If execution reaches this point, all fields
1205 (init_slot($use_data:ident): // `use_data` is present, so we use the `data` to init fields.
1308 // not been overwritten are thus zero and initialized. We still check that all fields are