Lines Matching full:fields

72 //! This macro is used to specify which fields are structurally pinned and which fields are not. It
73 //! 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.
527 /// fields. Afterwards it declares the struct and implement the `PinData` trait safely.
541 @body({ $($fields:tt)* }),
543 // We now use token munching to iterate through all of the fields. While doing this we
544 // identify fields marked with `#[pin]`, these fields are the 'pinned fields'. The user
545 // wants these to be structurally pinned. The rest of the fields are the
546 // 'not pinned fields'. Additionally we collect all fields, since we need them in the right
565 // The remaining fields tokens that need to be processed.
567 @fields_munch($($fields)* ,),
568 // The pinned fields.
570 // The not pinned fields.
572 // All fields.
573 @fields(),
593 @fields($($fields:tt)*),
614 @fields($($fields)* $($accum)* $field: ::core::marker::PhantomPinned,),
631 @fields($($fields:tt)*),
647 @fields($($fields)* $($accum)* $field: $type,),
664 @fields($($fields:tt)*),
680 @fields($($fields)* $($accum)* $field: $type,),
697 @fields($($fields:tt)*),
714 @fields($($fields)*),
733 @fields($($fields:tt)*),
748 @fields($($fields)*),
765 @fields($($fields:tt)*),
780 @fields($($fields)*),
793 // We reached the end of the fields, plus an optional additional comma, since we added one
798 @fields($($fields:tt)*),
803 // Declare the struct with all fields in the correct order.
808 $($fields)*
866 // fields are relevant whether the struct should implement `Unpin`.
875 // Only the pinned fields.
1007 /// - `init_slot`: recursively creates the code that initializes all fields in `slot`.
1016 @fields($($fields:tt)*),
1030 @fields($($fields)*),
1041 @fields($($fields:tt)*),
1055 @fields($($fields)*),
1060 @zeroed(()), // `()` means zero all fields not mentioned.
1066 @fields($($fields:tt)*),
1080 @fields($($fields)*),
1091 @fields($($fields:tt)*),
1106 // Get the data about fields from the supplied type.
1123 // error when fields are missing (since they will be zeroed). We also have to
1134 // expressions creating the individual fields.
1141 @munch_fields($($fields)*,),
1143 // We use unreachable code to ensure that all fields have been mentioned exactly
1151 @munch_fields($($fields)*,),
1171 // Endpoint of munching, no fields are left. If execution reaches this point, all fields
1175 (init_slot($use_data:ident): // `use_data` is present, so we use the `data` to init fields.
1278 // not been overwritten are thus zero and initialized. We still check that all fields are