Trait zerogc::TraceImmutable [−][src]
pub unsafe trait TraceImmutable: Trace { fn visit_immutable<V: GcVisitor>(
&self,
visitor: &mut V
) -> Result<(), V::Err>; }
A type that can be safely traced/relocated without having to use a mutable reference
Types with interior mutability (like RefCell
or Cell<Gc<T>>
)
can safely implement this, since they allow safely relocating the pointer
without a mutable reference.
Likewise primitives (with new garbage collected data) can also
implement this (since they have nothing to trace).
Required methods
fn visit_immutable<V: GcVisitor>(&self, visitor: &mut V) -> Result<(), V::Err>
[src]
Visit an immutable reference to this type
The visitor may want to relocate garbage collected pointers, which this type must support.
Implementations on Foreign Types
impl TraceImmutable for i8
[src]
impl TraceImmutable for i8
[src]impl TraceImmutable for i16
[src]
impl TraceImmutable for i16
[src]impl TraceImmutable for i32
[src]
impl TraceImmutable for i32
[src]impl TraceImmutable for i64
[src]
impl TraceImmutable for i64
[src]impl TraceImmutable for isize
[src]
impl TraceImmutable for isize
[src]impl TraceImmutable for u8
[src]
impl TraceImmutable for u8
[src]impl TraceImmutable for u16
[src]
impl TraceImmutable for u16
[src]impl TraceImmutable for u32
[src]
impl TraceImmutable for u32
[src]impl TraceImmutable for u64
[src]
impl TraceImmutable for u64
[src]impl TraceImmutable for usize
[src]
impl TraceImmutable for usize
[src]impl TraceImmutable for f32
[src]
impl TraceImmutable for f32
[src]impl TraceImmutable for f64
[src]
impl TraceImmutable for f64
[src]impl TraceImmutable for bool
[src]
impl TraceImmutable for bool
[src]impl TraceImmutable for char
[src]
impl TraceImmutable for char
[src]impl TraceImmutable for &'static str
[src]
impl TraceImmutable for &'static str
[src]impl<T> TraceImmutable for PhantomData<T>
[src]
impl<T> TraceImmutable for PhantomData<T>
[src]impl TraceImmutable for ()
[src]
impl TraceImmutable for ()
[src]impl<I> TraceImmutable for (I,) where
I: TraceImmutable,
[src]
impl<I> TraceImmutable for (I,) where
I: TraceImmutable,
[src]impl<H, I> TraceImmutable for (H, I) where
H: TraceImmutable,
I: TraceImmutable,
[src]
impl<H, I> TraceImmutable for (H, I) where
H: TraceImmutable,
I: TraceImmutable,
[src]impl<G, H, I> TraceImmutable for (G, H, I) where
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
[src]
impl<G, H, I> TraceImmutable for (G, H, I) where
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
[src]impl<F, G, H, I> TraceImmutable for (F, G, H, I) where
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
[src]
impl<F, G, H, I> TraceImmutable for (F, G, H, I) where
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
[src]impl<E, F, G, H, I> TraceImmutable for (E, F, G, H, I) where
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
[src]
impl<E, F, G, H, I> TraceImmutable for (E, F, G, H, I) where
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
[src]impl<D, E, F, G, H, I> TraceImmutable for (D, E, F, G, H, I) where
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
[src]
impl<D, E, F, G, H, I> TraceImmutable for (D, E, F, G, H, I) where
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
[src]impl<C, D, E, F, G, H, I> TraceImmutable for (C, D, E, F, G, H, I) where
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
[src]
impl<C, D, E, F, G, H, I> TraceImmutable for (C, D, E, F, G, H, I) where
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
[src]impl<B, C, D, E, F, G, H, I> TraceImmutable for (B, C, D, E, F, G, H, I) where
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
[src]
impl<B, C, D, E, F, G, H, I> TraceImmutable for (B, C, D, E, F, G, H, I) where
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
[src]impl<A, B, C, D, E, F, G, H, I> TraceImmutable for (A, B, C, D, E, F, G, H, I) where
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
[src]
impl<A, B, C, D, E, F, G, H, I> TraceImmutable for (A, B, C, D, E, F, G, H, I) where
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 0] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 0] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 1] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 1] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 2] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 2] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 3] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 3] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 4] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 4] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 5] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 5] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 6] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 6] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 7] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 7] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 8] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 8] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 9] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 9] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 10] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 10] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 11] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 11] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 12] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 12] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 13] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 13] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 14] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 14] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 15] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 15] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 16] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 16] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 17] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 17] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 18] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 18] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 19] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 19] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 20] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 20] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 24] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 24] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 32] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 32] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 48] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 48] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 64] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 64] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 100] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 100] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 128] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 128] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 256] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 256] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 512] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 512] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 1024] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 1024] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 2048] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 2048] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T; 4096] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T; 4096] where
T: TraceImmutable,
[src]impl<'a, T: 'a> TraceImmutable for &'a T where
T: TraceImmutable,
[src]
impl<'a, T: 'a> TraceImmutable for &'a T where
T: TraceImmutable,
[src]impl<'a, T: 'a> TraceImmutable for &'a mut T where
T: TraceImmutable,
[src]
impl<'a, T: 'a> TraceImmutable for &'a mut T where
T: TraceImmutable,
[src]impl<T> TraceImmutable for [T] where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for [T] where
T: TraceImmutable,
[src]impl<T> TraceImmutable for Option<T> where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for Option<T> where
T: TraceImmutable,
[src]impl<T> TraceImmutable for Wrapping<T> where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for Wrapping<T> where
T: TraceImmutable,
[src]impl<T> TraceImmutable for Vec<T> where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for Vec<T> where
T: TraceImmutable,
[src]impl<T> TraceImmutable for Box<T> where
T: TraceImmutable,
[src]
impl<T> TraceImmutable for Box<T> where
T: TraceImmutable,
[src]impl<T: TraceImmutable> TraceImmutable for Rc<T> where
T: TraceImmutable,
[src]
impl<T: TraceImmutable> TraceImmutable for Rc<T> where
T: TraceImmutable,
[src]impl<T: TraceImmutable> TraceImmutable for Arc<T> where
T: TraceImmutable,
[src]
impl<T: TraceImmutable> TraceImmutable for Arc<T> where
T: TraceImmutable,
[src]impl TraceImmutable for String
[src]
impl TraceImmutable for String
[src]impl<K: TraceImmutable, V> TraceImmutable for HashMap<K, V> where
K: TraceImmutable,
V: TraceImmutable,
[src]
impl<K: TraceImmutable, V> TraceImmutable for HashMap<K, V> where
K: TraceImmutable,
V: TraceImmutable,
[src]impl<T: TraceImmutable> TraceImmutable for HashSet<T> where
T: TraceImmutable,
[src]
impl<T: TraceImmutable> TraceImmutable for HashSet<T> where
T: TraceImmutable,
[src]Implementors
impl TraceImmutable for DummyCollectorId
[src]
impl TraceImmutable for DummyCollectorId
[src]impl<T> TraceImmutable for AssumeNotTraced<T>
[src]
impl<T> TraceImmutable for AssumeNotTraced<T>
[src]