[][src]Struct kay::External

pub struct External<T> { /* fields omitted */ }

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_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl<T> DerefMut for External<T>[src]

impl<T> Deref for External<T>[src]

type Target = T

The resulting type after dereferencing.

impl<T> Compact for External<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()

Auto Trait Implementations

impl<T> !Sync for External<T>

impl<T> Unpin for External<T>

impl<T> Send for External<T> where
    T: Send

impl<T> !RefUnwindSafe for External<T>

impl<T> UnwindSafe for External<T> where
    T: UnwindSafe

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Compact for T where
    T: Copy
[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()