pub trait RawValConvertible: Into<RawVal> + TryFrom<RawVal> {
    fn is_val_type(v: RawVal) -> bool;
    unsafe fn unchecked_from_val(v: RawVal) -> Self;

    fn try_convert(v: RawVal) -> Option<Self> { ... }
}
Expand description

Trait abstracting over types that can be converted into RawVal, similar to TryFrom but with a different signature that enables generating slightly more efficient conversion code. An implementation of TryFrom<RawVal> is also provided for any type that implements RawValConvertible.

Required Methods

Returns true if v is in a union state compatible with Self.

Converts the bits making up a RawVal into Self without checking that the RawVal is tagged correctly, assuming that such a check has been performed elsewhere. It is the caller’s responsibility to arrange that such checks have occurred before calling unchecked_from_val, which is why it is marked as unsafe (it does not represent a risk of memory-unsafety, merely “serious logic errors”).

Provided Methods

Attempt a conversion from RawVal to Self, returning None if the provided RawVal is not tagged correctly. By default this calls Self::is_val_type and Self::unchecked_from_val, but it can be customized on a type-by-type basis to avoid redundant tag tests and produce more efficient code, as it is done for Static values like bool.

Implementations on Foreign Types

Implementors