Struct dync::CopyValueRef

source ·
pub struct CopyValueRef<'a, V = ()>
where V: ?Sized,
{ /* private fields */ }
Expand description

A generic value reference to a Copy type.

Implementations§

source§

impl<'a, V> CopyValueRef<'a, V>

source

pub fn new<T: CopyElem>(typed: &'a T) -> CopyValueRef<'a, V>
where V: VTable<T>,

Create a new CopyValueRef from a typed reference.

source§

impl<'a, V: ?Sized> CopyValueRef<'a, V>

source

pub fn size(&self) -> usize

Get the size of the value pointed-to by this reference.

source

pub fn value_type_id(&self) -> TypeId

Get the TypeId of the referenced value.

source

pub fn value_alignment(&self) -> usize

Get the alignment of the referenced value.

source

pub fn is<T: 'static>(&self) -> bool

Returns true if this referenced value’s type is the same as T.

source

pub fn downcast<T: CopyElem>(self) -> Option<&'a T>

Downcast this value reference into a borrowed T type. Return None if the downcast fails.

source

pub fn upcast<U: ?Sized + From<V>>(self) -> CopyValueRef<'a, U>
where V: Clone,

source

pub fn upcast_ref<U: ?Sized + From<V>>(&self) -> CopyValueRef<'_, U>
where V: Clone,

Trait Implementations§

source§

impl<'a, V> Clone for CopyValueRef<'a, V>
where V: ?Sized + Clone,

source§

fn clone(&self) -> CopyValueRef<'a, V>

Returns a copy 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<'a, V: ?Sized + HasDebug> Debug for CopyValueRef<'a, V>

source§

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

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

impl<'a, V: ?Sized + 'a> Extend<CopyValueRef<'a, V>> for VecCopy<V>

source§

fn extend<T: IntoIterator<Item = CopyValueRef<'a, V>>>(&mut self, iter: T)

Extends a collection with the contents of an iterator. Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one)
Extends a collection with exactly one element.
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one)
Reserves capacity in a collection for the given number of additional elements. Read more
source§

impl<'a, V> From<CopyValueMut<'a, V>> for CopyValueRef<'a, V>

source§

fn from(v: CopyValueMut<'a, V>) -> CopyValueRef<'a, V>

Converts to this type from the input type.
source§

impl<'a, V> From<CopyValueRef<'a, V>> for Meta<VTableRef<'a, V>>

source§

fn from(val: CopyValueRef<'a, V>) -> Meta<VTableRef<'a, V>>

Converts to this type from the input type.
source§

impl<'a, V: Any + Clone> From<CopyValueRef<'a, V>> for ValueRef<'a, (DropFn, V)>

source§

fn from(v: CopyValueRef<'a, V>) -> ValueRef<'a, (DropFn, V)>

Converts to this type from the input type.
source§

impl<'a, V: Clone + ?Sized + 'a> FromIterator<CopyValueRef<'a, V>> for VecCopy<V>

source§

fn from_iter<T: IntoIterator<Item = CopyValueRef<'a, V>>>(iter: T) -> Self

Construct a VecCopy type from a non-empty iterator.

Panics

This function will panic if the given iterator is empty. This is because we don’t know the element types until we see one since the types are erased in both CopyValueRef and VecCopy.

source§

impl<'a, V: ?Sized + HasHash> Hash for CopyValueRef<'a, V>

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<'a, V: ?Sized + HasPartialEq> PartialEq for CopyValueRef<'a, V>

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, V: ?Sized + HasEq> Eq for CopyValueRef<'a, V>

source§

impl<'a, V: ?Sized + HasSend> Send for CopyValueRef<'a, V>

source§

impl<'a, V: ?Sized + HasSync> Sync for CopyValueRef<'a, V>

Auto Trait Implementations§

§

impl<'a, V: ?Sized> RefUnwindSafe for CopyValueRef<'a, V>
where V: RefUnwindSafe,

§

impl<'a, V: ?Sized> Unpin for CopyValueRef<'a, V>

§

impl<'a, V: ?Sized> UnwindSafe for CopyValueRef<'a, V>

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> CloneBytes for T
where T: Clone + 'static,

source§

unsafe fn clone_bytes(src: &[MaybeUninit<u8>]) -> Box<[MaybeUninit<u8>]>

source§

unsafe fn clone_from_bytes(dst: &mut [MaybeUninit<u8>], src: &[MaybeUninit<u8>])

source§

unsafe fn clone_into_raw_bytes( src: &[MaybeUninit<u8>], dst: &mut [MaybeUninit<u8>] )

source§

impl<T> DebugBytes for T
where T: Debug + 'static,

source§

unsafe fn fmt_bytes( bytes: &[MaybeUninit<u8>], f: &mut Formatter<'_> ) -> Result<(), Error>

source§

impl<T> Downcast for T
where T: Any,

source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DropBytes for T
where T: 'static,

source§

unsafe fn drop_bytes(bytes: &mut [MaybeUninit<u8>])

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> HashBytes for T
where T: Hash + 'static,

source§

unsafe fn hash_bytes(bytes: &[MaybeUninit<u8>], state: &mut dyn Hasher)

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> PartialEqBytes for T
where T: PartialEq + 'static,

source§

unsafe fn eq_bytes(a: &[MaybeUninit<u8>], b: &[MaybeUninit<u8>]) -> bool

source§

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

§

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>,

§

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>,

§

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.
source§

impl<T> Elem for T
where T: Any + DropBytes,