[−][src]Trait zerogc::TraceImmutable
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>
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 i16[src]
impl TraceImmutable for i32[src]
impl TraceImmutable for i64[src]
impl TraceImmutable for isize[src]
impl TraceImmutable for u8[src]
impl TraceImmutable for u16[src]
impl TraceImmutable for u32[src]
impl TraceImmutable for u64[src]
impl TraceImmutable for usize[src]
impl TraceImmutable for f32[src]
impl TraceImmutable for f64[src]
impl TraceImmutable for ()[src]
impl<A> TraceImmutable for (A,) where
A: TraceImmutable, [src]
A: TraceImmutable,
impl<A, B> TraceImmutable for (A, B) where
A: TraceImmutable,
B: TraceImmutable, [src]
A: TraceImmutable,
B: TraceImmutable,
impl<A, B, C> TraceImmutable for (A, B, C) where
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable, [src]
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable,
impl<A, B, C, D> TraceImmutable for (A, B, C, D) where
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable, [src]
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable,
impl<A, B, C, D, E> TraceImmutable for (A, B, C, D, E) where
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable, [src]
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable,
impl<A, B, C, D, E, F> TraceImmutable for (A, B, C, D, E, F) where
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable, [src]
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable,
impl<A, B, C, D, E, F, G> TraceImmutable for (A, B, C, D, E, F, G) where
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable, [src]
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable,
impl<A, B, C, D, E, F, G, H> TraceImmutable for (A, B, C, D, E, F, G, H) where
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable, [src]
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable,
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]
A: TraceImmutable,
B: TraceImmutable,
C: TraceImmutable,
D: TraceImmutable,
E: TraceImmutable,
F: TraceImmutable,
G: TraceImmutable,
H: TraceImmutable,
I: TraceImmutable,
impl<T: TraceImmutable> TraceImmutable for [T; 0][src]
impl<T: TraceImmutable> TraceImmutable for [T; 1][src]
impl<T: TraceImmutable> TraceImmutable for [T; 2][src]
impl<T: TraceImmutable> TraceImmutable for [T; 3][src]
impl<T: TraceImmutable> TraceImmutable for [T; 4][src]
impl<T: TraceImmutable> TraceImmutable for [T; 5][src]
impl<T: TraceImmutable> TraceImmutable for [T; 6][src]
impl<T: TraceImmutable> TraceImmutable for [T; 7][src]
impl<T: TraceImmutable> TraceImmutable for [T; 8][src]
impl<T: TraceImmutable> TraceImmutable for [T; 9][src]
impl<T: TraceImmutable> TraceImmutable for [T; 10][src]
impl<T: TraceImmutable> TraceImmutable for [T; 11][src]
impl<T: TraceImmutable> TraceImmutable for [T; 12][src]
impl<T: TraceImmutable> TraceImmutable for [T; 13][src]
impl<T: TraceImmutable> TraceImmutable for [T; 14][src]
impl<T: TraceImmutable> TraceImmutable for [T; 15][src]
impl<T: TraceImmutable> TraceImmutable for [T; 16][src]
impl<T: TraceImmutable> TraceImmutable for [T; 17][src]
impl<T: TraceImmutable> TraceImmutable for [T; 18][src]
impl<T: TraceImmutable> TraceImmutable for [T; 19][src]
impl<T: TraceImmutable> TraceImmutable for [T; 20][src]
impl<T: TraceImmutable> TraceImmutable for [T; 24][src]
impl<T: TraceImmutable> TraceImmutable for [T; 32][src]
impl<T: TraceImmutable> TraceImmutable for [T; 48][src]
impl<T: TraceImmutable> TraceImmutable for [T; 64][src]
impl<T: TraceImmutable> TraceImmutable for [T; 100][src]
impl<T: TraceImmutable> TraceImmutable for [T; 128][src]
impl<T: TraceImmutable> TraceImmutable for [T; 256][src]
impl<T: TraceImmutable> TraceImmutable for [T; 512][src]
impl<T: TraceImmutable> TraceImmutable for [T; 1024][src]
impl<T: TraceImmutable> TraceImmutable for [T; 2048][src]
impl<T: TraceImmutable> TraceImmutable for [T; 4096][src]
impl<'a, T: TraceImmutable> TraceImmutable for &'a T[src]
impl<'a, T: TraceImmutable> TraceImmutable for &'a mut T[src]
impl<T: TraceImmutable> TraceImmutable for [T][src]
impl<T: TraceImmutable> TraceImmutable for Vec<T>[src]
impl<T: TraceImmutable> TraceImmutable for Box<T>[src]
impl<T> TraceImmutable for Rc<T> where
T: TraceImmutable, [src]
T: TraceImmutable,
impl<T> TraceImmutable for Arc<T> where
T: TraceImmutable, [src]
T: TraceImmutable,
impl<T: TraceImmutable> TraceImmutable for Wrapping<T>[src]
impl<K, V> TraceImmutable for HashMap<K, V> where
K: TraceImmutable,
V: TraceImmutable, [src]
K: TraceImmutable,
V: TraceImmutable,
impl<V> TraceImmutable for HashSet<V> where
V: TraceImmutable, [src]
V: TraceImmutable,
impl<T: TraceImmutable> TraceImmutable for Option<T>[src]
Loading content...
Implementors
impl<T> TraceImmutable for AssumeNotTraced<T>[src]
impl<T: GcSafe + NullTrace + Copy> TraceImmutable for GcCell<T>[src]
See Trace documentation on the safety of mutation
We require NullTrace in order to set our internals