pub struct SliceAny<'a, B: ?Sized = dyn Any + Send + Sync> { /* private fields */ }Expand description
A type-erased slice.
Semantically &[dyn Any].
§Examples
use list_any::SliceAny;
let data: &[u8] = b"hello";
let slice_any: SliceAny = SliceAny::from(data);
assert_eq!(slice_any.downcast::<u8>(), Some(data));Implementations§
Source§impl<'a> SliceAny<'a>
impl<'a> SliceAny<'a>
Sourcepub fn opaque() -> Self
pub fn opaque() -> Self
Create a SliceAny with a length of 0, for which downcasting will
always return None.
use list_any::SliceAny;
let slice = SliceAny::opaque();
assert_eq!(slice.downcast::<f64>(), None);
assert_eq!(slice.downcast::<u32>(), None);
assert_eq!(slice.downcast::<()>(), None);Sourcepub fn deferred() -> Self
pub fn deferred() -> Self
Create a SliceAny with a length of 0, for which downcasting will
always return Some.
use list_any::SliceAny;
let slice = SliceAny::deferred();
assert_eq!(slice.downcast::<f64>(), Some(&[][..]));
assert_eq!(slice.downcast::<u32>(), Some(&[][..]));
assert_eq!(slice.downcast::<()>(), Some(&[][..]));Source§impl<'a, B: ?Sized> SliceAny<'a, B>
impl<'a, B: ?Sized> SliceAny<'a, B>
Sourcepub fn type_id_of_element(&self) -> TypeId
pub fn type_id_of_element(&self) -> TypeId
Returns the TypeId of the elements contained in this slice.
§Examples
use core::any::TypeId;
use list_any::SliceAny;
let data: &[u8] = b"hello";
let slice_any: SliceAny = SliceAny::from(data);
assert_eq!(slice_any.type_id_of_element(), TypeId::of::<u8>());Trait Implementations§
impl<'a, B: ?Sized + Send + Sync> Send for SliceAny<'a, B>
impl<'a, B: ?Sized + Sync> Sync for SliceAny<'a, B>
Auto Trait Implementations§
impl<'a, B> Freeze for SliceAny<'a, B>where
B: ?Sized,
impl<'a, B> RefUnwindSafe for SliceAny<'a, B>where
B: RefUnwindSafe + ?Sized,
impl<'a, B> Unpin for SliceAny<'a, B>where
B: ?Sized,
impl<'a, B> UnwindSafe for SliceAny<'a, B>where
B: RefUnwindSafe + ?Sized,
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