pub unsafe trait Soars: AsSoaRef<Item = Self> {
type Raw: SoaRaw<Item = Self>;
type Deref: ?Sized + SoaDeref<Item = Self>;
type Ref<'a>: AsSoaRef<Item = Self>
where Self: 'a;
type RefMut<'a>: AsSoaRef<Item = Self>
where Self: 'a;
type Slices<'a>
where Self: 'a;
type SlicesMut<'a>
where Self: 'a;
}Expand description
Provides Soa compatibility.
§Safety
Soars::Deref must be #[repr(transparent)] with Slice<Self::Raw>.
This trait should be derived using the derive macro.
Required Associated Types§
Sourcetype Deref: ?Sized + SoaDeref<Item = Self>
type Deref: ?Sized + SoaDeref<Item = Self>
Slice dereferences to this type to provide getters for the individual
fields as slices.
Sourcetype Ref<'a>: AsSoaRef<Item = Self>
where
Self: 'a
type Ref<'a>: AsSoaRef<Item = Self> where Self: 'a
A reference to an element of a Slice.
For each field with type T, this type has a field with type &T.
Sourcetype RefMut<'a>: AsSoaRef<Item = Self>
where
Self: 'a
type RefMut<'a>: AsSoaRef<Item = Self> where Self: 'a
A reference to an element of a Slice.
For each field with type T, this type has a field with type &mut T.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.