[−][src]Struct kay::External
A Marker for state of an actor instance that is not managed by the actor system.
As such it will not be compacted, nor persisted.
External implements clone, so it can be used in actor state, but you have to ensure
at runtime that only one actor or message ever holds onto an external.
Any attempt to access the external from two different places will throw (see steal
).
Methods
impl<T> External<T>
[src]
pub fn new(content: T) -> Self
[src]
Create a new External
holding the given content
pub fn from_box(content: Box<T>) -> Self
[src]
Create a new External
directly from a Box
holding the given content
pub fn steal(&self) -> Self
[src]
A more explicit way to clone an External, which effectively takes the held value out of the old external. Stealing or cloning twice from the same external will throw.
pub fn into_box(self) -> Box<T>
[src]
Take the content out of the external, as a Box
.
This, like stealing/cloning can only be done once.
Trait Implementations
impl<T> Clone for External<T>
[src]
fn clone(&self) -> Self
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<T> Compact for External<T>
[src]
fn is_still_compact(&self) -> bool
[src]
fn dynamic_size_bytes(&self) -> usize
[src]
unsafe fn compact(
source: *mut Self,
dest: *mut Self,
_new_dynamic_part: *mut u8
)
[src]
source: *mut Self,
dest: *mut Self,
_new_dynamic_part: *mut u8
)
unsafe fn decompact(source: *const Self) -> Self
[src]
fn total_size_bytes(&self) -> usize
[src]
unsafe fn behind(ptr: *mut Self) -> *mut u8
[src]
unsafe fn compact_behind(source: *mut Self, dest: *mut Self)
[src]
impl<T> Deref for External<T>
[src]
impl<T> DerefMut for External<T>
[src]
Auto Trait Implementations
impl<T> !RefUnwindSafe for External<T>
impl<T> Send for External<T> where
T: Send,
T: Send,
impl<T> !Sync for External<T>
impl<T> Unpin for External<T>
impl<T> UnwindSafe for External<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Compact for T where
T: Copy,
[src]
T: Copy,
default fn is_still_compact(&self) -> bool
[src]
default fn dynamic_size_bytes(&self) -> usize
[src]
unsafe default fn compact(
source: *mut T,
dest: *mut T,
_new_dynamic_part: *mut u8
)
[src]
source: *mut T,
dest: *mut T,
_new_dynamic_part: *mut u8
)
unsafe default fn decompact(source: *const T) -> T
[src]
fn total_size_bytes(&self) -> usize
[src]
unsafe fn behind(ptr: *mut Self) -> *mut u8
[src]
unsafe fn compact_behind(source: *mut Self, dest: *mut Self)
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,