Trait galemu::BoundExt

source ·
pub trait BoundExt<'a>: 'a + Sized {
    unsafe fn pre_drop(_me: &mut Bound<'a, Self>) { ... }
}

Provided Methods

Called when dropping the Bound wrapper before dropping the inner value.

Safety/Drop

Due to possible specialization of Drop on 'static dropping a “fake” static value in Self might not be safe at all. This can be handled by making it non 'sstatic and explicitly dropping it during the Self::drop call, but then this wrapper migth have been 'static so using the 'static specialization might have been more correct.

This method allows to instead explicitly drop the possible “fake” 'static value in Self earlier on drop while we still have the correct lifetime.

Call Safety

This method is only meant to be called when dropping the Bound wrapper, i.e. immediately before calling Self::drop. Calling anything expect [Drop::drop][1] after calling BoundExt::pre_drop() is unsafe, so the caller has to make sure that this won’t happen.

Normally this should only be called by the Bound Drop implementation.

Implementors