Trait soroban_env_guest::RawValConvertible
source · 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
.