Enum ValueVTable

Source
#[repr(C)]
pub enum ValueVTable { Sized(ValueVTableSized), Unsized(ValueVTableUnsized), }
Expand description

A vtable representing the operations that can be performed on a type, either for sized or unsized types.

This enum encapsulates the specific vtables for sized (ValueVTableSized) and unsized (ValueVTableUnsized) shapes, allowing generic type-agnostic dynamic dispatch for core capabilities (clone, drop, compare, hash, etc).

Variants§

§

Sized(ValueVTableSized)

VTable for operations on sized types.

§

Unsized(ValueVTableUnsized)

VTable for operations on unsized types.

Implementations§

Source§

impl ValueVTable

Source

pub const fn sized(&self) -> Option<&ValueVTableSized>

Returns a reference to the ValueVTableSized if this vtable is for a sized type.

§Returns
  • Some(&ValueVTableSized) if the type is sized.
  • None if the type is unsized.
Source

pub const fn sized_mut(&mut self) -> Option<&mut ValueVTableSized>

Returns a mutable reference to the ValueVTableSized if this vtable is for a sized type.

§Returns
  • Some(&mut ValueVTableSized) if the type is sized.
  • None if the type is unsized.
Source

pub const fn unsized(&self) -> Option<&ValueVTableUnsized>

Returns a reference to the ValueVTableUnsized if this vtable is for an unsized type.

§Returns
  • Some(&ValueVTableUnsized) if the type is unsized.
  • None if the type is sized.
Source

pub fn marker_traits(&self) -> MarkerTraits

Get the marker traits implemented for the type

Source

pub const fn type_name(&self) -> TypeNameFn

Get the type name fn of the type

Source

pub fn is_eq(&self) -> bool

Check if the type implements the Eq marker trait

Source

pub fn is_send(&self) -> bool

Check if the type implements the Send marker trait

Source

pub fn is_sync(&self) -> bool

Check if the type implements the Sync marker trait

Source

pub fn is_copy(&self) -> bool

Check if the type implements the Copy marker trait

Source

pub fn is_unpin(&self) -> bool

Check if the type implements the Unpin marker trait

Source

pub fn is_unwind_safe(&self) -> bool

Check if the type implements the UnwindSafe marker trait

Source

pub fn is_ref_unwind_safe(&self) -> bool

Check if the type implements the RefUnwindSafe marker trait

Source

pub fn has_display(&self) -> bool

Returns true if the type implements the Display trait and the display function is available in the vtable.

Source

pub fn has_debug(&self) -> bool

Returns true if the type implements the Debug trait and the debug function is available in the vtable.

Source

pub fn has_partial_eq(&self) -> bool

Returns true if the type implements the PartialEq trait and the partial_eq function is available in the vtable.

Source

pub fn has_partial_ord(&self) -> bool

Returns true if the type implements the PartialOrd trait and the partial_ord function is available in the vtable.

Source

pub fn has_ord(&self) -> bool

Returns true if the type implements the Ord trait and the ord function is available in the vtable.

Source

pub fn has_hash(&self) -> bool

Returns true if the type implements the Hash trait and the hash function is available in the vtable.

Source

pub fn has_default_in_place(&self) -> bool

Returns true if the type supports default-in-place construction via the vtable.

Source

pub fn has_clone_into(&self) -> bool

Returns true if the type supports in-place cloning via the vtable.

Source

pub fn has_parse(&self) -> bool

Returns true if the type supports parsing from a string via the vtable.

Source

pub const fn builder<T>() -> ValueVTableBuilder<T>

Creates a new ValueVTableBuilder

Source

pub const fn builder_unsized<T: ?Sized>() -> ValueVTableBuilderUnsized<T>

Trait Implementations§

Source§

impl Clone for ValueVTable

Source§

fn clone(&self) -> ValueVTable

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ValueVTable

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for ValueVTable

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for ValueVTable

Source§

fn eq(&self, other: &ValueVTable) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for ValueVTable

Source§

impl Eq for ValueVTable

Source§

impl StructuralPartialEq for ValueVTable

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.