pub struct BoxContainer<T>(/* private fields */);
Available on crate feature
alloc
only.Expand description
Container
implementation via Box
Implements ExclusiveContainer
§Example
let mut container = BoxContainer::init_value((), 42);
let shared: &i32 = &container;
let exclusive: Pin<&mut i32> = container.inner();
let container2 = container.mv::<BoxContainer<_>>(());
Implementations§
Source§impl<T> BoxContainer<T>
impl<T> BoxContainer<T>
Sourcepub fn iter<'r0>(&'r0 self) -> <&'r0 Self as IntoIterator>::IntoIterwhere
for<'r1> &'r1 T: IntoIterator,
pub fn iter<'r0>(&'r0 self) -> <&'r0 Self as IntoIterator>::IntoIterwhere
for<'r1> &'r1 T: IntoIterator,
Same as <&Self as IntoIterator>::into_iter(self)
Trait Implementations§
Source§impl<T> AsRef<<BoxContainer<T> as Container>::Inner> for BoxContainer<T>
impl<T> AsRef<<BoxContainer<T> as Container>::Inner> for BoxContainer<T>
Source§impl<T> Container for BoxContainer<T>
impl<T> Container for BoxContainer<T>
Source§type Uninit = UninitBoxContainer<T>
type Uninit = UninitBoxContainer<T>
Container in the uninitialized state. Usually somewhat similar to container itself Read more
Source§fn uninit(_allocator: ()) -> Self::Uninit
fn uninit(_allocator: ()) -> Self::Uninit
Creates container in the uninitialized state Read more
Source§fn uninit_inner_ptr(uninit: &mut Self::Uninit) -> *mut Self::Inner
fn uninit_inner_ptr(uninit: &mut Self::Uninit) -> *mut Self::Inner
Retrieves pointer to the contents of uninit container
Source§fn try_inner(&mut self) -> Option<Pin<&mut Self::Inner>>
fn try_inner(&mut self) -> Option<Pin<&mut Self::Inner>>
Gets exclusive reference to inner value. Note that exclusive reference is always pinned Read more
Source§fn try_move_out<O>(
self,
action: impl FnOnce(*mut Self::Inner) -> O,
) -> Option<O>
fn try_move_out<O>( self, action: impl FnOnce(*mut Self::Inner) -> O, ) -> Option<O>
Moves value out of the container.
action
is called at most once (i.e. 1 or 0 times) and provided with a pointer to contained value (i.e. it is valid for reads and points to valid Container::Inner
) Read moreSource§unsafe fn init_ptr(
allocator: Self::Allocator,
initializer: impl FnOnce(*mut Self::Inner),
) -> Self
unsafe fn init_ptr( allocator: Self::Allocator, initializer: impl FnOnce(*mut Self::Inner), ) -> Self
Provided helper function creating and initializing the container in a single call Read more
Source§impl<T: Debug> Debug for BoxContainer<T>
impl<T: Debug> Debug for BoxContainer<T>
Source§impl<T> Deref for BoxContainer<T>
impl<T> Deref for BoxContainer<T>
Source§impl<T: Display> Display for BoxContainer<T>
impl<T: Display> Display for BoxContainer<T>
Source§impl<T> ExclusiveContainer for BoxContainer<T>
impl<T> ExclusiveContainer for BoxContainer<T>
Source§fn inner(&mut self) -> Pin<&mut Self::Inner>
fn inner(&mut self) -> Pin<&mut Self::Inner>
Gets exclusive reference to inner value. Note that exclusive reference is always pinned
Source§impl<'r0, T> IntoIterator for &'r0 BoxContainer<T>where
for<'r1> &'r1 T: IntoIterator,
impl<'r0, T> IntoIterator for &'r0 BoxContainer<T>where
for<'r1> &'r1 T: IntoIterator,
Auto Trait Implementations§
impl<T> Freeze for BoxContainer<T>
impl<T> RefUnwindSafe for BoxContainer<T>where
T: RefUnwindSafe,
impl<T> Send for BoxContainer<T>where
T: Send,
impl<T> Sync for BoxContainer<T>where
T: Sync,
impl<T> Unpin for BoxContainer<T>
impl<T> UnwindSafe for BoxContainer<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<S> AddNuclideSpec for S
impl<S> AddNuclideSpec for S
fn add_nuclide(&self, mixture: Pin<&mut NuclideMixture<'_>>)
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