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].