Generics
Updated SafeArrayExt
to be implemented on ExactSizeIterator<Item=SafeArrayElement>
This necessitated a change to the interfaces of .into_safearray
and .into_variant
from &mut self
to self
. This means the original value will be consumed.
Initial feature set released.
To/From BSTR
String
(throughU16String
from the widestring crate.)
To/From SAFEARRAY
Vec<T>
where T is:i16
i32
f32
f64
Currency
Date
String
Ptr<IDispatch>
SCode
bool
Variant<T>
whereT
is supported by VARIANTPtr<IUnknown>
Decimal
,DecWrapper
i8
u8
u16
u32
Int
UInt
To/From VARIANT
i64
i32
u8
i16
f32
f64
bool
SCode
Currency
Date
String
Ptr<IUnknown>
Ptr<IDispatch>
Box<u8>
Box<i16>
Box<i32>
Box<i64>
Box<f32>
Box<f64>
Box<bool>
Box<SCode>
Box<Currency>
Box<Date>
Box<String>
Box<Ptr<IUnknown>>
Box<Ptr<IDispatch>>
Variant<T>
whereT
is any of these supported typesVec<T>
whereT
is any of the SafeArray supported typesPtr<c_void>
i8
u16
u32
u32
Int
UInt
Box<Decimal>
Box<i8>
Box<u16>
Box<u32>
Box<u64>
Box<Int>
Box<UInt>
DecWrapper
,Decimal
New types for convenience usage
Ptr<T>
which encapsulates a pointer of type*mut T
Currency
which can be converted to and from the COM/OLE type CYDate
which can be converted to and from the COM/OLE type DATEDecWrapper
which wraps the typeDecimal
from the crate rust_decimal and converts into COM/OLE type DECIMALInt
which is used for VT_INT conversionsUInt
which is used for VT_UINT conversionsSCode
which is used for VT_ERROR conversionsVariantBool
which can convert between thebool
<==>VARIANT_BOOL
typesVariant<T>
holds a value of typeT
for VT_VARIANT conversionsVtEmpty
which is used for VT_EMPTY conversionsVtNull
which is used for VT_NULL conversions