Skip to main content

Finalize

Trait Finalize 

Source
pub trait Finalize<T> {
    const NON_TRIVIAL_DTOR: bool = _;
    const CALLBACK: Option<extern "C" fn(*mut u8)> = _;

    // Provided method
    extern "C" fn finalize(obj: *mut u8) { ... }
}
Expand description

The FinalizeTrait specifies how to finalize objects.

Provided Associated Constants§

Source

const NON_TRIVIAL_DTOR: bool = _

If true finalizer is executed at the end of GC cycle for this type. In most cases compiler should be smart enough to determine if NON_TRIVIAL_DTOR is true but in some rare unsafe cases you might set it to false by yourself.

Source

const CALLBACK: Option<extern "C" fn(*mut u8)> = _

Finalization callback executed by GC at the end of GC cycle. It defaults to FinalizeTrait::finalize.

Provided Methods§

Source

extern "C" fn finalize(obj: *mut u8)

Callback that is executed at the end of GC cycle. It invokes T::drop by default.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl FinalizeTrait<File> for File

Source§

impl FinalizeTrait<PathBuf> for PathBuf

Source§

impl FinalizeTrait<String> for String

Source§

impl FinalizeTrait<bool> for bool

Source§

impl FinalizeTrait<f32> for f32

Source§

impl FinalizeTrait<f64> for f64

Source§

impl FinalizeTrait<i8> for i8

Source§

impl FinalizeTrait<i16> for i16

Source§

impl FinalizeTrait<i32> for i32

Source§

impl FinalizeTrait<i64> for i64

Source§

impl FinalizeTrait<i128> for i128

Source§

impl FinalizeTrait<isize> for isize

Source§

impl FinalizeTrait<u8> for u8

Source§

impl FinalizeTrait<u16> for u16

Source§

impl FinalizeTrait<u32> for u32

Source§

impl FinalizeTrait<u64> for u64

Source§

impl FinalizeTrait<u128> for u128

Source§

impl FinalizeTrait<usize> for usize

Source§

impl<K, V> FinalizeTrait<HashMap<K, V>> for HashMap<K, V>

Source§

impl<T, E> FinalizeTrait<Result<T, E>> for Result<T, E>

Source§

impl<T> FinalizeTrait<Option<T>> for Option<T>

Source§

impl<T> FinalizeTrait<Vec<T>> for Vec<T>

Implementors§