[][src]Trait glsp::GSend

pub auto trait GSend { }

An auto trait for types which can be moved between one Runtime and another.

This is enforced with a GSend bound on the closure and return value for Runtime::run. For example, it's not possible for run() to capture a Root<Arr> or return a Val.

This enforcement is slightly leaky. For example, it's possible to sneak a Val into the global scope by using thread_local!, or by implementing GSend for one of your own types. GameLisp contains dynamic checks to detect this situation, in which case the process will abort.

Implementations on Foreign Types

impl GSend for isize

impl GSend for i8

impl GSend for i16

impl GSend for i32

impl GSend for i64

impl GSend for i128

impl GSend for usize

impl GSend for u8

impl GSend for u16

impl GSend for u32

impl GSend for u64

impl GSend for u128

impl GSend for f32

impl GSend for f64

impl GSend for bool

impl GSend for char

impl GSend for str

impl<T> GSend for [T] where
    T: GSend

impl GSend for [u8]

impl<T: ?Sized> GSend for *const T where
    T: GSend

impl<T: ?Sized> GSend for *mut T where
    T: GSend

impl<T> GSend for *const [T] where
    T: GSend

impl<T> GSend for *mut [T] where
    T: GSend

Loading content...

Implementors

impl !GSend for RFn[src]

impl !GSend for Sym[src]

impl<T> !GSend for LibRef<T>[src]

impl<T> !GSend for LibRefMut<T>[src]

impl<T> !GSend for RRef<T>[src]

impl<T> !GSend for RRefMut<T>[src]

impl<T> !GSend for Root<T>[src]

Loading content...

Auto implementors

impl !GSend for Callable

impl !GSend for Deque

impl !GSend for Expander

impl !GSend for Expansion

impl !GSend for Iterable

impl !GSend for Val

impl !GSend for Arr

impl !GSend for Class

impl !GSend for Coro

impl !GSend for GError

impl !GSend for GFn

impl !GSend for GIter

impl !GSend for Obj

impl !GSend for RClass

impl !GSend for RData

impl !GSend for Runtime

impl !GSend for Tab

impl GSend for CoroState

impl GSend for EnvMode

impl GSend for GIterLen

impl GSend for Num

impl GSend for RuntimeBuilder

impl GSend for Str

impl GSend for WrappedFn

impl<'a> !GSend for TabEntries<'a>

impl<'a, 'b> !GSend for IterTab<'a, 'b>

impl<'a, 'b> !GSend for IterTabKeys<'a, 'b>

impl<'a, 'b> !GSend for IterTabValues<'a, 'b>

impl<'a, 'b, K> !GSend for IterTabKeysTo<'a, 'b, K>

impl<'a, 'b, K, V> !GSend for IterTabTo<'a, 'b, K, V>

impl<'a, 'b, V> !GSend for IterTabValuesTo<'a, 'b, V>

impl<'a, T> !GSend for IterDeque<'a, T>

impl<'a, T, R> !GSend for IterDequeTo<'a, T, R>

impl<T> !GSend for RRoot<T>

impl<T> GSend for OrNil<T> where
    T: GSend

Loading content...