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]

Trait Implementations

impl Debug for DeriveFieldOptions[src]

impl Default for DeriveFieldOptions[src]

impl Parse for DeriveFieldOptions[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.