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
Required Methods§
sourcefn is_val_type(v: RawVal) -> bool
fn is_val_type(v: RawVal) -> bool
Returns true if v is in a union state compatible with Self.
sourceunsafe fn unchecked_from_val(v: RawVal) -> Self
unsafe fn unchecked_from_val(v: RawVal) -> 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§
sourcefn try_convert(v: RawVal) -> Option<Self>
fn try_convert(v: RawVal) -> Option<Self>
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.