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.
528 /// fields. Afterwards it declares the struct and implement the `PinData` trait safely.
543 @body({ $($fields:tt)* }),
545 // We now use token munching to iterate through all of the fields. While doing this we
546 // identify fields marked with `#[pin]`, these fields are the 'pinned fields'. The user
547 // wants these to be structurally pinned. The rest of the fields are the
548 // 'not pinned fields'. Additionally we collect all fields, since we need them in the right
570 // The remaining fields tokens that need to be processed.
572 @fields_munch($($fields)* ,),
573 // The pinned fields.
575 // The not pinned fields.
577 // All fields.
578 @fields(),
599 @fields($($fields:tt)*),
621 @fields($($fields)* $($accum)* $field: ::core::marker::PhantomPinned,),
639 @fields($($fields:tt)*),
656 @fields($($fields)* $($accum)* $field: $type,),
674 @fields($($fields:tt)*),
691 @fields($($fields)* $($accum)* $field: $type,),
709 @fields($($fields:tt)*),
727 @fields($($fields)*),
747 @fields($($fields:tt)*),
763 @fields($($fields)*),
781 @fields($($fields:tt)*),
797 @fields($($fields)*),
811 // We reached the end of the fields, plus an optional additional comma, since we added one
816 @fields($($fields:tt)*),
821 // Declare the struct with all fields in the correct order.
826 $($fields)*
885 // fields are relevant whether the struct should implement `Unpin`.
894 // Only the pinned fields.
1029 /// - `init_slot`: recursively creates the code that initializes all fields in `slot`.
1038 @fields($($fields:tt)*),
1052 @fields($($fields)*),
1063 @fields($($fields:tt)*),
1077 @fields($($fields)*),
1082 @zeroed(()), // `()` means zero all fields not mentioned.
1088 @fields($($fields:tt)*),
1102 @fields($($fields)*),
1113 @fields($($fields:tt)*),
1128 // Get the data about fields from the supplied type.
1147 // error when fields are missing (since they will be zeroed). We also have to
1158 // expressions creating the individual fields.
1165 @munch_fields($($fields)*,),
1167 // We use unreachable code to ensure that all fields have been mentioned exactly
1175 @munch_fields($($fields)*,),
1196 // Endpoint of munching, no fields are left. If execution reaches this point, all fields
1200 (init_slot($use_data:ident): // `use_data` is present, so we use the `data` to init fields.
1303 // not been overwritten are thus zero and initialized. We still check that all fields are