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>
impl<'a, V> CopyValueRef<'a, V>
source§impl<'a, V: ?Sized> CopyValueRef<'a, V>
impl<'a, V: ?Sized> CopyValueRef<'a, V>
sourcepub fn value_type_id(&self) -> TypeId
pub fn value_type_id(&self) -> TypeId
Get the TypeId
of the referenced value.
sourcepub fn value_alignment(&self) -> usize
pub fn value_alignment(&self) -> usize
Get the alignment of the referenced value.
sourcepub fn is<T: 'static>(&self) -> bool
pub fn is<T: 'static>(&self) -> bool
Returns true
if this referenced value’s type is the same as T
.
sourcepub fn downcast<T: CopyElem>(self) -> Option<&'a T>
pub fn downcast<T: CopyElem>(self) -> Option<&'a T>
Downcast this value reference into a borrowed T
type. Return None
if the downcast fails.
pub fn upcast<U: ?Sized + From<V>>(self) -> CopyValueRef<'a, U>where
V: Clone,
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>
impl<'a, V> Clone for CopyValueRef<'a, V>
source§fn clone(&self) -> CopyValueRef<'a, V>
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)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<'a, V: ?Sized + 'a> Extend<CopyValueRef<'a, V>> for VecCopy<V>
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)
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)
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)
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>
impl<'a, V> From<CopyValueMut<'a, V>> for CopyValueRef<'a, V>
source§fn from(v: CopyValueMut<'a, V>) -> CopyValueRef<'a, V>
fn from(v: CopyValueMut<'a, V>) -> CopyValueRef<'a, V>
Converts to this type from the input type.
source§impl<'a, V: Clone + ?Sized + 'a> FromIterator<CopyValueRef<'a, V>> for VecCopy<V>
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
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 + HasPartialEq> PartialEq for CopyValueRef<'a, V>
impl<'a, V: ?Sized + HasPartialEq> PartialEq for CopyValueRef<'a, V>
impl<'a, V: ?Sized + HasEq> Eq for CopyValueRef<'a, V>
impl<'a, V: ?Sized + HasSend> Send for CopyValueRef<'a, V>
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>where
V: UnwindSafe + RefUnwindSafe,
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
source§impl<T> CloneBytes for Twhere
T: Clone + 'static,
impl<T> CloneBytes for Twhere
T: Clone + 'static,
unsafe fn clone_bytes(src: &[MaybeUninit<u8>]) -> Box<[MaybeUninit<u8>]>
unsafe fn clone_from_bytes(dst: &mut [MaybeUninit<u8>], src: &[MaybeUninit<u8>])
unsafe fn clone_into_raw_bytes( src: &[MaybeUninit<u8>], dst: &mut [MaybeUninit<u8>] )
source§impl<T> DebugBytes for Twhere
T: Debug + 'static,
impl<T> DebugBytes for Twhere
T: Debug + 'static,
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
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>
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)
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)
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.