[−][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]
Performs copy-assignment from source
. Read more
impl<T> Deref for External<T>
[src]
impl<T> DerefMut for External<T>
[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]
Total size of the object (static part + dynamic part)
unsafe fn behind(ptr: *mut Self) -> *mut u8
[src]
Get a pointer to behind the static part of self
(commonly used place for the dynamic part)
unsafe fn compact_behind(source: *mut Self, dest: *mut Self)
[src]
Like compact
with new_dynamic_part
set to dest.behind()
Auto Trait Implementations
impl<T> Send for External<T> where
T: Send,
T: Send,
impl<T> Unpin for External<T>
impl<T> !Sync for External<T>
impl<T> UnwindSafe for External<T> where
T: UnwindSafe,
T: UnwindSafe,
impl<T> !RefUnwindSafe for External<T>
Blanket Implementations
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> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
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]
Total size of the object (static part + dynamic part)
unsafe fn behind(ptr: *mut Self) -> *mut u8
[src]
Get a pointer to behind the static part of self
(commonly used place for the dynamic part)
unsafe fn compact_behind(source: *mut Self, dest: *mut Self)
[src]
Like compact
with new_dynamic_part
set to dest.behind()