//! Raw non-owning VM handle identity.
pub(crate) mod sealed {
pub trait Sealed {}
}
/// A non-owning identity for a VM record.
///
/// Implementations are sealed to the VM's closed set of raw layouts. A handle
/// does not keep its record alive, root a collectable object, or establish a
/// Rust borrow. Callers must validate liveness and aliasing before
/// dereferencing the returned pointer.
pub trait RawHandle: sealed::Sealed {
/// Raw VM record addressed by this handle.
type Raw;
/// Returns the record address without dereferencing it.
fn as_ptr(&self) -> *mut Self::Raw;
}