[][src]Trait glsp::GStore

pub auto trait GStore { }

An auto trait for types which can be stored on the garbage-collected heap.

This is enforced with a GStore bound on the RStore trait, so that all types stored in an RData must implement GStore.

This trait is automatically implemented for most types. The main counterexample is Root (and any type which transitively contains a Root, like Val), because storing a Root on the garbage-collected heap would be too likely to cause memory leaks.

Note that libraries are not stored on the garbage-collected heap, so library types don't need to implement GStore, and it's fine for libraries to contain Roots.

Implementations on Foreign Types

impl GStore for isize

impl GStore for i8

impl GStore for i16

impl GStore for i32

impl GStore for i64

impl GStore for i128

impl GStore for usize

impl GStore for u8

impl GStore for u16

impl GStore for u32

impl GStore for u64

impl GStore for u128

impl GStore for f32

impl GStore for f64

impl GStore for bool

impl GStore for char

impl GStore for str

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

impl GStore for [u8]

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

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

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

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

Loading content...

Implementors

impl GStore for RData[src]

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

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

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

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

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

Loading content...

Auto implementors

impl !GStore for Callable

impl !GStore for Deque

impl !GStore for Expander

impl !GStore for Expansion

impl !GStore for Iterable

impl !GStore for Val

impl !GStore for GError

impl !GStore for Runtime

impl GStore for CoroState

impl GStore for EnvMode

impl GStore for GIterLen

impl GStore for Num

impl GStore for Arr

impl GStore for Class

impl GStore for Coro

impl GStore for GFn

impl GStore for GIter

impl GStore for Obj

impl GStore for RClass

impl GStore for RFn

impl GStore for RuntimeBuilder

impl GStore for Str

impl GStore for Sym

impl GStore for Tab

impl GStore for WrappedFn

impl<'a> GStore for TabEntries<'a>

impl<'a, 'b> GStore for IterTab<'a, 'b>

impl<'a, 'b> GStore for IterTabKeys<'a, 'b>

impl<'a, 'b> GStore for IterTabValues<'a, 'b>

impl<'a, 'b, K> GStore for IterTabKeysTo<'a, 'b, K> where
    K: GStore

impl<'a, 'b, K, V> GStore for IterTabTo<'a, 'b, K, V> where
    K: GStore,
    V: GStore

impl<'a, 'b, V> GStore for IterTabValuesTo<'a, 'b, V> where
    V: GStore

impl<'a, T> GStore for IterDeque<'a, T> where
    T: GStore

impl<'a, T, R> GStore for IterDequeTo<'a, T, R> where
    R: GStore,
    T: GStore

impl<T> !GStore for RRoot<T>

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

Loading content...