Trait FinalizeTrait

Source
pub trait FinalizeTrait<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", so this trait is not object safe.

Implementations on Foreign Types§

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 FinalizeTrait<String> for String

Source§

impl FinalizeTrait<File> for File

Source§

impl FinalizeTrait<PathBuf> for PathBuf

Source§

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

Source§

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

Source§

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

Source§

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

Implementors§