Skip to main content

MAPIOutParam

Struct MAPIOutParam 

Source
pub struct MAPIOutParam<T>(/* private fields */)
where
    T: Sized;
Expand description

Hold an out-pointer for MAPI APIs which perform their own buffer allocations. This version does not perform any validation of the buffer size, so the typed accessors are inherently unsafe.

Implementations§

Source§

impl<T> MAPIOutParam<T>
where T: Sized,

Source

pub fn as_mut_ptr(&mut self) -> *mut *mut T

Get a *mut *mut T suitable for use with a MAPI API that fills in an out-pointer with a newly allocated buffer.

Source

pub unsafe fn as_mut(&mut self) -> Option<&mut T>

Access a single element of type T.

§Safety

This version does not perform any validation of the buffer size, so the typed accessors are inherently unsafe. The only thing it handles is a null check.

Source

pub unsafe fn as_mut_slice(&mut self, count: usize) -> Option<&mut [T]>

Access a slice with count elements of type T.

§Safety

This version does not perform any validation of the buffer size, so the typed accessors are inherently unsafe. The only thing it handles is a null check.

Trait Implementations§

Source§

impl<T> Default for MAPIOutParam<T>
where T: Sized,

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<T> Drop for MAPIOutParam<T>
where T: Sized,

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl<T> !Send for MAPIOutParam<T>

§

impl<T> !Sync for MAPIOutParam<T>

§

impl<T> Freeze for MAPIOutParam<T>

§

impl<T> RefUnwindSafe for MAPIOutParam<T>
where T: RefUnwindSafe,

§

impl<T> Unpin for MAPIOutParam<T>

§

impl<T> UnsafeUnpin for MAPIOutParam<T>

§

impl<T> UnwindSafe for MAPIOutParam<T>
where T: RefUnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.