[][src]Trait zerogc::GcRebrand

pub unsafe trait GcRebrand<'new_gc, Id: CollectorId>: Trace {
    type Branded: Trace + 'new_gc;
}

Changes all references to garbage collected objects to match a specific lifetime.

This indicates that its safe to transmute to the new Branded type and all that will change is the lifetimes.

Associated Types

type Branded: Trace + 'new_gc[src]

This type with all garbage collected lifetimes changed to 'new_gc

This must have the same in-memory repr as Self, so that it's safe to transmute.

Loading content...

Implementations on Foreign Types

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for i8[src]

type Branded = Self

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for i16[src]

type Branded = Self

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for i32[src]

type Branded = Self

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for i64[src]

type Branded = Self

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for isize[src]

type Branded = Self

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for u8[src]

type Branded = Self

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for u16[src]

type Branded = Self

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for u32[src]

type Branded = Self

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for u64[src]

type Branded = Self

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for usize[src]

type Branded = Self

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for f32[src]

type Branded = Self

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for f64[src]

type Branded = Self

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for bool[src]

type Branded = Self

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for char[src]

type Branded = Self

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for &'static str[src]

type Branded = Self

impl<'new_gc, Id> GcRebrand<'new_gc, Id> for () where
    Id: CollectorId
[src]

type Branded = ()

impl<'new_gc, Id, A> GcRebrand<'new_gc, Id> for (A,) where
    Id: CollectorId,
    A: GcRebrand<'new_gc, Id>,
    <A as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = (<A as GcRebrand<'new_gc, Id>>::Branded,)

impl<'new_gc, Id, A, B> GcRebrand<'new_gc, Id> for (A, B) where
    Id: CollectorId,
    A: GcRebrand<'new_gc, Id>,
    B: GcRebrand<'new_gc, Id>,
    <A as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <B as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = (<A as GcRebrand<'new_gc, Id>>::Branded, <B as GcRebrand<'new_gc, Id>>::Branded)

impl<'new_gc, Id, A, B, C> GcRebrand<'new_gc, Id> for (A, B, C) where
    Id: CollectorId,
    A: GcRebrand<'new_gc, Id>,
    B: GcRebrand<'new_gc, Id>,
    C: GcRebrand<'new_gc, Id>,
    <A as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <B as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <C as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = (<A as GcRebrand<'new_gc, Id>>::Branded, <B as GcRebrand<'new_gc, Id>>::Branded, <C as GcRebrand<'new_gc, Id>>::Branded)

impl<'new_gc, Id, A, B, C, D> GcRebrand<'new_gc, Id> for (A, B, C, D) where
    Id: CollectorId,
    A: GcRebrand<'new_gc, Id>,
    B: GcRebrand<'new_gc, Id>,
    C: GcRebrand<'new_gc, Id>,
    D: GcRebrand<'new_gc, Id>,
    <A as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <B as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <C as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <D as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = (<A as GcRebrand<'new_gc, Id>>::Branded, <B as GcRebrand<'new_gc, Id>>::Branded, <C as GcRebrand<'new_gc, Id>>::Branded, <D as GcRebrand<'new_gc, Id>>::Branded)

impl<'new_gc, Id, A, B, C, D, E> GcRebrand<'new_gc, Id> for (A, B, C, D, E) where
    Id: CollectorId,
    A: GcRebrand<'new_gc, Id>,
    B: GcRebrand<'new_gc, Id>,
    C: GcRebrand<'new_gc, Id>,
    D: GcRebrand<'new_gc, Id>,
    E: GcRebrand<'new_gc, Id>,
    <A as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <B as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <C as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <D as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <E as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = (<A as GcRebrand<'new_gc, Id>>::Branded, <B as GcRebrand<'new_gc, Id>>::Branded, <C as GcRebrand<'new_gc, Id>>::Branded, <D as GcRebrand<'new_gc, Id>>::Branded, <E as GcRebrand<'new_gc, Id>>::Branded)

impl<'new_gc, Id, A, B, C, D, E, F> GcRebrand<'new_gc, Id> for (A, B, C, D, E, F) where
    Id: CollectorId,
    A: GcRebrand<'new_gc, Id>,
    B: GcRebrand<'new_gc, Id>,
    C: GcRebrand<'new_gc, Id>,
    D: GcRebrand<'new_gc, Id>,
    E: GcRebrand<'new_gc, Id>,
    F: GcRebrand<'new_gc, Id>,
    <A as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <B as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <C as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <D as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <E as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <F as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = (<A as GcRebrand<'new_gc, Id>>::Branded, <B as GcRebrand<'new_gc, Id>>::Branded, <C as GcRebrand<'new_gc, Id>>::Branded, <D as GcRebrand<'new_gc, Id>>::Branded, <E as GcRebrand<'new_gc, Id>>::Branded, <F as GcRebrand<'new_gc, Id>>::Branded)

impl<'new_gc, Id, A, B, C, D, E, F, G> GcRebrand<'new_gc, Id> for (A, B, C, D, E, F, G) where
    Id: CollectorId,
    A: GcRebrand<'new_gc, Id>,
    B: GcRebrand<'new_gc, Id>,
    C: GcRebrand<'new_gc, Id>,
    D: GcRebrand<'new_gc, Id>,
    E: GcRebrand<'new_gc, Id>,
    F: GcRebrand<'new_gc, Id>,
    G: GcRebrand<'new_gc, Id>,
    <A as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <B as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <C as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <D as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <E as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <F as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <G as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = (<A as GcRebrand<'new_gc, Id>>::Branded, <B as GcRebrand<'new_gc, Id>>::Branded, <C as GcRebrand<'new_gc, Id>>::Branded, <D as GcRebrand<'new_gc, Id>>::Branded, <E as GcRebrand<'new_gc, Id>>::Branded, <F as GcRebrand<'new_gc, Id>>::Branded, <G as GcRebrand<'new_gc, Id>>::Branded)

impl<'new_gc, Id, A, B, C, D, E, F, G, H> GcRebrand<'new_gc, Id> for (A, B, C, D, E, F, G, H) where
    Id: CollectorId,
    A: GcRebrand<'new_gc, Id>,
    B: GcRebrand<'new_gc, Id>,
    C: GcRebrand<'new_gc, Id>,
    D: GcRebrand<'new_gc, Id>,
    E: GcRebrand<'new_gc, Id>,
    F: GcRebrand<'new_gc, Id>,
    G: GcRebrand<'new_gc, Id>,
    H: GcRebrand<'new_gc, Id>,
    <A as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <B as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <C as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <D as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <E as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <F as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <G as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <H as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = (<A as GcRebrand<'new_gc, Id>>::Branded, <B as GcRebrand<'new_gc, Id>>::Branded, <C as GcRebrand<'new_gc, Id>>::Branded, <D as GcRebrand<'new_gc, Id>>::Branded, <E as GcRebrand<'new_gc, Id>>::Branded, <F as GcRebrand<'new_gc, Id>>::Branded, <G as GcRebrand<'new_gc, Id>>::Branded, <H as GcRebrand<'new_gc, Id>>::Branded)

impl<'new_gc, Id, A, B, C, D, E, F, G, H, I> GcRebrand<'new_gc, Id> for (A, B, C, D, E, F, G, H, I) where
    Id: CollectorId,
    A: GcRebrand<'new_gc, Id>,
    B: GcRebrand<'new_gc, Id>,
    C: GcRebrand<'new_gc, Id>,
    D: GcRebrand<'new_gc, Id>,
    E: GcRebrand<'new_gc, Id>,
    F: GcRebrand<'new_gc, Id>,
    G: GcRebrand<'new_gc, Id>,
    H: GcRebrand<'new_gc, Id>,
    I: GcRebrand<'new_gc, Id>,
    <A as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <B as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <C as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <D as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <E as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <F as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <G as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <H as GcRebrand<'new_gc, Id>>::Branded: Sized,
    <I as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = (<A as GcRebrand<'new_gc, Id>>::Branded, <B as GcRebrand<'new_gc, Id>>::Branded, <C as GcRebrand<'new_gc, Id>>::Branded, <D as GcRebrand<'new_gc, Id>>::Branded, <E as GcRebrand<'new_gc, Id>>::Branded, <F as GcRebrand<'new_gc, Id>>::Branded, <G as GcRebrand<'new_gc, Id>>::Branded, <H as GcRebrand<'new_gc, Id>>::Branded, <I as GcRebrand<'new_gc, Id>>::Branded)

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 0] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 0]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 1] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 1]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 2] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 2]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 3] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 3]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 4] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 4]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 5] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 5]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 6] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 6]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 7] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 7]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 8] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 8]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 9] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 9]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 10] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 10]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 11] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 11]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 12] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 12]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 13] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 13]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 14] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 14]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 15] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 15]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 16] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 16]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 17] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 17]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 18] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 18]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 19] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 19]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 20] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 20]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 24] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 24]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 32] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 32]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 48] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 48]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 64] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 64]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 100] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 100]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 128] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 128]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 256] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 256]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 512] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 512]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 1024] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 1024]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 2048] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 2048]

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for [T; 4096] where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = [<T as GcRebrand<'new_gc, Id>>::Branded; 4096]

impl<'a, 'new_gc, Id, T> GcRebrand<'new_gc, Id> for &'a T where
    Id: CollectorId,
    T: NullTrace,
    'a: 'new_gc, 
[src]

TODO: Right now we require NullTrace

This is unfortunately required by our bounds, since we don't know that T::Branded lives for &'a making &'a T::Branded invalid as far as the compiler is concerned.

Therefore the only solution is to preserve &'a T as-is, which is only safe if T: NullTrace

type Branded = &'a T

impl<'a, 'new_gc, Id, T> GcRebrand<'new_gc, Id> for &'a mut T where
    Id: CollectorId,
    T: NullTrace,
    'a: 'new_gc, 
[src]

TODO: We currently require NullTrace for T

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for Option<T> where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Trace
[src]

type Branded = Option<<T as GcRebrand<'new_gc, Id>>::Branded>

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for Wrapping<T> where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Trace
[src]

type Branded = Wrapping<<T as GcRebrand<'new_gc, Id>>::Branded>

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for Vec<T> where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Trace
[src]

type Branded = Vec<<T as GcRebrand<'new_gc, Id>>::Branded>

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for Box<T> where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Trace
[src]

type Branded = Box<<T as GcRebrand<'new_gc, Id>>::Branded>

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for Rc<T> where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id> + TraceImmutable,
    <T as GcRebrand<'new_gc, Id>>::Branded: TraceImmutable
[src]

type Branded = Rc<<T as GcRebrand<'new_gc, Id>>::Branded>

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for Arc<T> where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id> + TraceImmutable,
    <T as GcRebrand<'new_gc, Id>>::Branded: TraceImmutable
[src]

type Branded = Arc<<T as GcRebrand<'new_gc, Id>>::Branded>

impl<'new_gc, Id: CollectorId> GcRebrand<'new_gc, Id> for String[src]

type Branded = Self

impl<'new_gc, Id, K, V> GcRebrand<'new_gc, Id> for HashMap<K, V> where
    Id: CollectorId,
    K: TraceImmutable + GcRebrand<'new_gc, Id>,
    V: GcRebrand<'new_gc, Id>,
    <K as GcRebrand<'new_gc, Id>>::Branded: TraceImmutable + Sized,
    <V as GcRebrand<'new_gc, Id>>::Branded: Sized
[src]

type Branded = HashMap<<K as GcRebrand<'new_gc, Id>>::Branded, <V as GcRebrand<'new_gc, Id>>::Branded>

impl<'new_gc, Id, V> GcRebrand<'new_gc, Id> for HashSet<V> where
    Id: CollectorId,
    V: GcRebrand<'new_gc, Id> + TraceImmutable,
    <V as GcRebrand<'new_gc, Id>>::Branded: TraceImmutable
[src]

type Branded = HashSet<<V as GcRebrand<'new_gc, Id>>::Branded>

Loading content...

Implementors

impl<'gc, 'new_gc, T, Id> GcRebrand<'new_gc, Id> for Gc<'gc, T, Id> where
    T: GcSafe + GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: GcSafe,
    Id: CollectorId
[src]

Rebrand

type Branded = Gc<'new_gc, <T as GcRebrand<'new_gc, Id>>::Branded, Id>

impl<'new_gc, Id, T> GcRebrand<'new_gc, Id> for AssumeNotTraced<T> where
    Id: CollectorId,
    T: GcRebrand<'new_gc, Id>,
    <T as GcRebrand<'new_gc, Id>>::Branded: Trace
[src]

type Branded = AssumeNotTraced<<T as GcRebrand<'new_gc, Id>>::Branded>

impl<'new_gc, T, Id> GcRebrand<'new_gc, Id> for GcCell<T> where
    T: Trace + Copy + GcRebrand<'new_gc, Id>,
    Id: CollectorId,
    T::Branded: Copy + Trace
[src]

Loading content...