pub enum FromSafeArrayError {
    SafeArrayDimsInvalid {
        sa_dims: u32,
    },
    VarTypeDoesNotMatch {
        expected: u32,
        found: u32,
    },
    SafeArrayLBoundFailed {
        hr: i32,
    },
    SafeArrayRBoundFailed {
        hr: i32,
    },
    SafeArrayGetVartypeFailed {
        hr: i32,
    },
    ElementConversionFailed {
        index: usize,
        element: Box<ElementError>,
    },
    FromVariantError(Box<FromVariantError>),
}
Expand description

Represents the different ways converting from SAFEARRAY can fail

Variants§

§

SafeArrayDimsInvalid

Fields

§sa_dims: u32

safe array dimensions that was wrong

Either the safe array dimensions = 0 or > 1 multi-dimensional arrays are not handled.

§

VarTypeDoesNotMatch

Fields

§expected: u32

The expected vartype

§found: u32

the found vartype

Expected vartype did not match found vartype - runtime consistency check

§

SafeArrayLBoundFailed

Fields

§hr: i32

HRESULT returned

Call to SafeArrayGetLBound failed

§

SafeArrayRBoundFailed

Fields

§hr: i32

HRESULT returned

Call to SafeArrayGetRBound failed

§

SafeArrayGetVartypeFailed

Fields

§hr: i32

HRESULT returned

Call to SafeArrayGetVartype failed

§

ElementConversionFailed

Fields

§index: usize

the index the conversion failed at

§element: Box<ElementError>

The element error encapsulating the failure

Encapsulates the ElementError that occurred during conversion

§

FromVariantError(Box<FromVariantError>)

[from_variant] call failed

Implementations§

source§

impl FromSafeArrayError

source

pub fn from_element_err<E: Into<ElementError>>( ee: E, index: usize ) -> FromSafeArrayError

Boxes an ElementError into a FromSafeArrayError.

Need the index so a From impl doesn’t apply.

Trait Implementations§

source§

impl Debug for FromSafeArrayError

source§

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

Formats the value using the given formatter. Read more
source§

impl Display for FromSafeArrayError

source§

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

Formats the value using the given formatter. Read more
source§

impl Fail for FromSafeArrayError

source§

fn name(&self) -> Option<&str>

Returns the “name” of the error. Read more
source§

fn cause(&self) -> Option<&dyn Fail>

Returns a reference to the underlying cause of this failure, if it is an error that wraps other errors. Read more
source§

fn backtrace(&self) -> Option<&Backtrace>

Returns a reference to the Backtrace carried by this failure, if it carries one. Read more
source§

fn context<D>(self, context: D) -> Context<D>where D: Display + Send + Sync + 'static, Self: Sized,

Provides context for this failure. Read more
source§

fn compat(self) -> Compat<Self>where Self: Sized,

Wraps this failure in a compatibility wrapper that implements std::error::Error. Read more
source§

impl From<FromSafeArrayError> for SafeArrayError

source§

fn from(fsae: FromSafeArrayError) -> SafeArrayError

Holds a FromSafeArrayError with a box. This means conversion is free.

source§

impl From<FromVariantError> for FromSafeArrayError

source§

fn from(fve: FromVariantError) -> Self

Boxes a FromVariantError into a FromSafeArrElemError which means the conversion is free.

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> AsFail for Twhere T: Fail,

source§

fn as_fail(&self) -> &(dyn Fail + 'static)

Converts a reference to Self into a dynamic trait object of Fail.
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, F> TryConvert<T, F> for Twhere T: From<T>, F: Fail,

source§

fn try_convert(val: T) -> Result<T, F>

Blanket TryConvert implementation wherever a From is implemented for T. (Which is all types.) This avoids repetitive code. The compiler monomorphizes the code for F. And because its always an Ok, should optimize this code away.

source§

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

§

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 Twhere U: TryFrom<T>,

§

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.