[−][src]Trait glsp::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,
T: GSend,
impl GSend for [u8]
impl<T: ?Sized> GSend for *const T where
T: GSend,
T: GSend,
impl<T: ?Sized> GSend for *mut T where
T: GSend,
T: GSend,
impl<T> GSend for *const [T] where
T: GSend,
T: GSend,
impl<T> GSend for *mut [T] where
T: GSend,
Loading content...
T: GSend,
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]
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,
T: GSend,