pub(crate) enum PaddingCheck {
Struct,
ReprCStruct,
Union,
Enum {
tag_type_definition: TokenStream,
},
}Expand description
This enum describes what kind of padding check needs to be generated for the associated impl.
Variants§
Struct
Check that the sum of the fields’ sizes exactly equals the struct’s size.
ReprCStruct
Check that a repr(C) struct has no padding.
Union
Check that the size of each field exactly equals the union’s size.
Enum
Check that every variant of the enum contains no padding.
Because doing so requires a tag enum, this padding check requires an
additional TokenStream which defines the tag enum as ___ZerocopyTag.
Fields
§
tag_type_definition: TokenStreamImplementations§
Source§impl PaddingCheck
impl PaddingCheck
Sourcepub(crate) fn validator_trait_and_macro_idents(&self) -> (Ident, Ident)
pub(crate) fn validator_trait_and_macro_idents(&self) -> (Ident, Ident)
Returns the idents of the trait to use and the macro to call in order to validate that a type passes the relevant padding check.
Sourcepub(crate) fn validator_macro_context(&self) -> Option<&TokenStream>
pub(crate) fn validator_macro_context(&self) -> Option<&TokenStream>
Sometimes performing the padding check requires some additional “context” code. For enums, this is the definition of the tag enum.
Auto Trait Implementations§
impl Freeze for PaddingCheck
impl RefUnwindSafe for PaddingCheck
impl !Send for PaddingCheck
impl !Sync for PaddingCheck
impl Unpin for PaddingCheck
impl UnwindSafe for PaddingCheck
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more