#[repr(C)]pub struct ListVTable {
pub len: unsafe fn(PtrConst) -> usize,
pub get: unsafe fn(PtrConst, usize, &'static Shape) -> Option<PtrConst>,
pub get_mut: Option<unsafe fn(PtrMut, usize, &'static Shape) -> Option<PtrMut>>,
pub as_ptr: Option<unsafe fn(PtrConst) -> PtrConst>,
pub as_mut_ptr: Option<unsafe fn(PtrMut) -> PtrMut>,
}Expand description
Virtual table for shareable list operations.
These operations can be type-erased and shared across all instantiations
of a generic list type (e.g., one vtable for all Vec<T>). They work
using runtime shape information to compute element offsets.
Per-type operations that cannot be shared (init, push, iterator) live
in ListTypeOps.
Fields§
§len: unsafe fn(PtrConst) -> usizecf. ListLenFn
get: unsafe fn(PtrConst, usize, &'static Shape) -> Option<PtrConst>cf. ListGetFn
get_mut: Option<unsafe fn(PtrMut, usize, &'static Shape) -> Option<PtrMut>>cf. ListGetMutFn
Only available for mutable lists
as_ptr: Option<unsafe fn(PtrConst) -> PtrConst>cf. ListAsPtrFn
Only available for types that can be accessed as a contiguous array
as_mut_ptr: Option<unsafe fn(PtrMut) -> PtrMut>cf. ListAsMutPtrFn
Only available for types that can be accessed as a contiguous array
Implementations§
Source§impl ListVTable
impl ListVTable
Sourcepub const fn builder() -> ListVTableBuilder
pub const fn builder() -> ListVTableBuilder
Creates a new builder for this vtable
Trait Implementations§
Source§impl Clone for ListVTable
impl Clone for ListVTable
Source§fn clone(&self) -> ListVTable
fn clone(&self) -> ListVTable
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ListVTable
impl Debug for ListVTable
impl Copy for ListVTable
Auto Trait Implementations§
impl Freeze for ListVTable
impl RefUnwindSafe for ListVTable
impl Send for ListVTable
impl Sync for ListVTable
impl Unpin for ListVTable
impl UnwindSafe for ListVTable
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