Enum MAPIAllocError

Source
pub enum MAPIAllocError {
    SizeOverflow(usize),
    OutOfBoundsAccess,
    AllocationFailed(Error),
}
Expand description

Errors which can be returned from this module.

Variants§

§

SizeOverflow(usize)

The underlying sys::MAPIAllocateBuffer and sys::MAPIAllocateMore take a u32 parameter specifying the size of the buffer. If you exceed the capacity of a u32, it will be impossible to make the necessary allocation.

§

OutOfBoundsAccess

MAPI APIs like to work with input and output buffers using *const u8 and *mut u8 rather than strongly typed pointers. In C++, this requires a lot of reinterpret_cast operations. For the accessors on this type, we’ll allow transmuting the buffer to the desired type, as long as it fits in the allocation. If you don’t allocate enough space for the number of elements you are accessing, it will return this error.

§

AllocationFailed(Error)

There are no documented conditions where sys::MAPIAllocateBuffer or sys::MAPIAllocateMore will return an error, but if they do fail, this will propagate the Error result. If the allocation function returns null with no other error, it will treat that as [E_OUTOFMEMORY].

Trait Implementations§

Source§

impl Debug for MAPIAllocError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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.