Trait rust_cc::Finalize

source ·
pub trait Finalize {
    // Provided method
    fn finalize(&self) { ... }
}
Expand description

Trait to finalize objects before freeing them.

Must be always implemented for every cycle-collectable object, even when finalization is disabled, to avoid cross-crate incompatibilities. When finalization is disabled, the finalize method will never be called.

§Derive macro

The Finalize derive macro can be used to implement an empty finalizer:

#[derive(Finalize)]
struct Foo {
    // ...
}

Provided Methods§

source

fn finalize(&self)

The finalizer, which is called after an object becomes garbage and before droping it.

By default, objects are finalized only once. Use the method Cc::finalize_again to make finalization happen again for a certain object. Also, objects created during the execution of a finalizer are not automatically finalized.

§Default implementation

The default implementation is empty.

Implementations on Foreign Types§

source§

impl Finalize for bool

source§

impl Finalize for char

source§

impl Finalize for f32

source§

impl Finalize for f64

source§

impl Finalize for i8

source§

impl Finalize for i16

source§

impl Finalize for i32

source§

impl Finalize for i64

source§

impl Finalize for i128

source§

impl Finalize for isize

source§

impl Finalize for str

source§

impl Finalize for u8

source§

impl Finalize for u16

source§

impl Finalize for u32

source§

impl Finalize for u64

source§

impl Finalize for u128

source§

impl Finalize for ()

source§

impl Finalize for usize

source§

impl Finalize for CString

source§

impl Finalize for String

source§

impl Finalize for CStr

source§

impl Finalize for AtomicBool

source§

impl Finalize for AtomicI8

source§

impl Finalize for AtomicI16

source§

impl Finalize for AtomicI32

source§

impl Finalize for AtomicI64

source§

impl Finalize for AtomicIsize

source§

impl Finalize for AtomicU8

source§

impl Finalize for AtomicU16

source§

impl Finalize for AtomicU32

source§

impl Finalize for AtomicU64

source§

impl Finalize for AtomicUsize

source§

impl Finalize for OsStr

source§

impl Finalize for OsString

source§

impl Finalize for Path

source§

impl Finalize for PathBuf

source§

impl Finalize for NonZeroI8

source§

impl Finalize for NonZeroI16

source§

impl Finalize for NonZeroI32

source§

impl Finalize for NonZeroI64

source§

impl Finalize for NonZeroI128

source§

impl Finalize for NonZeroIsize

source§

impl Finalize for NonZeroU8

source§

impl Finalize for NonZeroU16

source§

impl Finalize for NonZeroU32

source§

impl Finalize for NonZeroU64

source§

impl Finalize for NonZeroU128

source§

impl Finalize for NonZeroUsize

source§

impl<A> Finalize for (A,)
where A: Finalize + 'static,

source§

impl<A, B> Finalize for (A, B)
where A: Finalize + 'static, B: Finalize + 'static,

source§

impl<A, B, C> Finalize for (A, B, C)
where A: Finalize + 'static, B: Finalize + 'static, C: Finalize + 'static,

source§

impl<A, B, C, D> Finalize for (A, B, C, D)
where A: Finalize + 'static, B: Finalize + 'static, C: Finalize + 'static, D: Finalize + 'static,

source§

impl<A, B, C, D, E> Finalize for (A, B, C, D, E)
where A: Finalize + 'static, B: Finalize + 'static, C: Finalize + 'static, D: Finalize + 'static, E: Finalize + 'static,

source§

impl<A, B, C, D, E, F> Finalize for (A, B, C, D, E, F)
where A: Finalize + 'static, B: Finalize + 'static, C: Finalize + 'static, D: Finalize + 'static, E: Finalize + 'static, F: Finalize + 'static,

source§

impl<A, B, C, D, E, F, G> Finalize for (A, B, C, D, E, F, G)
where A: Finalize + 'static, B: Finalize + 'static, C: Finalize + 'static, D: Finalize + 'static, E: Finalize + 'static, F: Finalize + 'static, G: Finalize + 'static,

source§

impl<A, B, C, D, E, F, G, H> Finalize for (A, B, C, D, E, F, G, H)
where A: Finalize + 'static, B: Finalize + 'static, C: Finalize + 'static, D: Finalize + 'static, E: Finalize + 'static, F: Finalize + 'static, G: Finalize + 'static, H: Finalize + 'static,

source§

impl<A, B, C, D, E, F, G, H, I> Finalize for (A, B, C, D, E, F, G, H, I)
where A: Finalize + 'static, B: Finalize + 'static, C: Finalize + 'static, D: Finalize + 'static, E: Finalize + 'static, F: Finalize + 'static, G: Finalize + 'static, H: Finalize + 'static, I: Finalize + 'static,

source§

impl<A, B, C, D, E, F, G, H, I, J> Finalize for (A, B, C, D, E, F, G, H, I, J)
where A: Finalize + 'static, B: Finalize + 'static, C: Finalize + 'static, D: Finalize + 'static, E: Finalize + 'static, F: Finalize + 'static, G: Finalize + 'static, H: Finalize + 'static, I: Finalize + 'static, J: Finalize + 'static,

source§

impl<A, B, C, D, E, F, G, H, I, J, K> Finalize for (A, B, C, D, E, F, G, H, I, J, K)
where A: Finalize + 'static, B: Finalize + 'static, C: Finalize + 'static, D: Finalize + 'static, E: Finalize + 'static, F: Finalize + 'static, G: Finalize + 'static, H: Finalize + 'static, I: Finalize + 'static, J: Finalize + 'static, K: Finalize + 'static,

source§

impl<A, B, C, D, E, F, G, H, I, J, K, L> Finalize for (A, B, C, D, E, F, G, H, I, J, K, L)
where A: Finalize + 'static, B: Finalize + 'static, C: Finalize + 'static, D: Finalize + 'static, E: Finalize + 'static, F: Finalize + 'static, G: Finalize + 'static, H: Finalize + 'static, I: Finalize + 'static, J: Finalize + 'static, K: Finalize + 'static, L: Finalize + 'static,

source§

impl<R: Finalize + 'static, E: Finalize + 'static> Finalize for Result<R, E>

source§

impl<T> Finalize for PhantomData<T>

source§

impl<T: Finalize + 'static> Finalize for Option<T>

source§

impl<T: Finalize + 'static> Finalize for [T]

source§

impl<T: Finalize + 'static> Finalize for Vec<T>

source§

impl<T: Finalize + 'static> Finalize for AssertUnwindSafe<T>

source§

impl<T: Finalize + 'static, const N: usize> Finalize for [T; N]

source§

impl<T: ?Sized + Finalize + 'static> Finalize for Box<T>

source§

impl<T: ?Sized + Finalize + 'static> Finalize for RefCell<T>

source§

impl<T: ?Sized + Finalize + 'static> Finalize for ManuallyDrop<T>

Implementors§

source§

impl Finalize for Cleanable

Available on crate feature cleaners only.
source§

impl Finalize for Cleaner

Available on crate feature cleaners only.
source§

impl<T: ?Sized + Trace + 'static> Finalize for Cc<T>

source§

impl<T: ?Sized + Trace + 'static> Finalize for Weak<T>

Available on crate feature weak-ptr only.
source§

impl<T: ?Sized + Trace + 'static> Finalize for Weakable<T>

Available on crate feature weak-ptr only.