GcMoveable

Trait GcMoveable 

Source
pub(in core) trait GcMoveable {
    type Value;

    // Provided method
    fn move_value(&self, _to_space: &Bump) -> Option<(Self::Value, bool)> { ... }
}
Expand description

This trait is defined for types that can be moved by the GC. For types that don’t have any other pointers in them, they can use the implementation of this trait on GcHeap, which will just copy the object.

Required Associated Types§

Provided Methods§

Source

fn move_value(&self, _to_space: &Bump) -> Option<(Self::Value, bool)>

Implementations on Foreign Types§

Source§

impl<'a, T: GcMoveable<Value = NonNull<T>>> GcMoveable for &'a T

Source§

type Value = &'a T

Source§

fn move_value(&self, to_space: &Bump) -> Option<(Self::Value, bool)>

Implementors§

Source§

impl GcMoveable for Cons

Source§

impl GcMoveable for LispBuffer

Source§

impl GcMoveable for ChannelReceiver

Source§

impl GcMoveable for ChannelSender

Source§

impl GcMoveable for CharTable

Source§

impl GcMoveable for LispFloat

Source§

impl GcMoveable for ByteFn

Source§

impl GcMoveable for LispHashTable

Source§

impl GcMoveable for LispBigInt

Source§

impl GcMoveable for ByteString

Source§

impl GcMoveable for LispString

Source§

impl GcMoveable for Gc<FunctionType<'_>>

Source§

impl GcMoveable for Gc<ListType<'_>>

Source§

impl GcMoveable for Gc<ObjectType<'_>>

Source§

impl GcMoveable for LispVec

Source§

impl GcMoveable for Record

Source§

impl<'a> GcMoveable for Symbol<'a>

Source§

impl<T> GcMoveable for Gc<T>
where Self: Untag<T> + Copy, T: GcMoveable<Value = T> + TagType<Out = T>,

Source§

type Value = Gc<T>

Source§

impl<T> GcMoveable for GcHeap<T>