Trait GuestTypeTransparent

Source
pub unsafe trait GuestTypeTransparent<'a>: GuestType<'a> {
    // Required method
    fn validate(ptr: *mut Self) -> Result<(), GuestError>;
}
Expand description

A trait for GuestTypes that have the same representation in guest memory as in Rust. These types can be used with the GuestPtr::as_raw method to view as a slice.

Unsafe trait because a correct GuestTypeTransparent implemengation ensures that the GuestPtr::as_raw methods are safe. This trait should only ever be implemented by wiggle_generate-produced code.

Required Methods§

Source

fn validate(ptr: *mut Self) -> Result<(), GuestError>

Checks that the memory at ptr is a valid representation of Self.

Assumes that memory safety checks have already been performed: ptr has been checked to be aligned correctly and reside in memory using GuestMemory::validate_size_align

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<'a> GuestTypeTransparent<'a> for f32

Source§

impl<'a> GuestTypeTransparent<'a> for f64

Source§

impl<'a> GuestTypeTransparent<'a> for i8

Source§

impl<'a> GuestTypeTransparent<'a> for i16

Source§

impl<'a> GuestTypeTransparent<'a> for i32

Source§

impl<'a> GuestTypeTransparent<'a> for i64

Source§

impl<'a> GuestTypeTransparent<'a> for i128

Source§

impl<'a> GuestTypeTransparent<'a> for u8

Source§

impl<'a> GuestTypeTransparent<'a> for u16

Source§

impl<'a> GuestTypeTransparent<'a> for u32

Source§

impl<'a> GuestTypeTransparent<'a> for u64

Source§

impl<'a> GuestTypeTransparent<'a> for u128

Implementors§