Struct static_reflect_derive_internals::fields::DeriveFieldOptions [−][src]
#[non_exhaustive]pub struct DeriveFieldOptions { pub opaque_array: bool, pub assume_repr: Option<Type>, }
Fields (Non-exhaustive)
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct {{ .. }}
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.opaque_array: bool
Treat this array field as opaque and unsized.
For example,
ⓘ
struct PyTuple { ob_refcnt: usize, ob_size: usize, #[reflect(opaque_array)] ob_items: [PyObject; 1] }
The final field will have type PyObject
instead of [PyObject; 1]
.
The actual size won’t really be known at compile time,
so it’s up to the user to ensure no attempts are made at stack allocation
The array must be in trailing position
assume_repr: Option<Type>
Assume the field has the same underlying representation as the specified type.
Useful if the type is known to be FFI-safe,
but the field’s type doesn’t actually implement StaticReflect
Implementations
impl DeriveFieldOptions
[src]
pub fn parse_attrs(attrs: &[Attribute]) -> Result<DeriveFieldOptions, Error>
[src]
Trait Implementations
impl Debug for DeriveFieldOptions
[src]
impl Default for DeriveFieldOptions
[src]
fn default() -> DeriveFieldOptions
[src]
impl Parse for DeriveFieldOptions
[src]
fn parse(bracketed_input: ParseStream<'_>) -> Result<Self>
[src]
Auto Trait Implementations
impl RefUnwindSafe for DeriveFieldOptions
impl !Send for DeriveFieldOptions
impl !Sync for DeriveFieldOptions
impl Unpin for DeriveFieldOptions
impl UnwindSafe for DeriveFieldOptions
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,