Struct soroban_env_host::Symbol
source · pub struct Symbol(_);
Expand description
Symbol reprents strings up to 10 characters long with a a-zA-Z0-9_
alphabet encoded into a 60-bit space between 10 characters long.
Wrapper for a RawVal that is tagged with Tag::Symbol, interpreting the
RawVal’s body as a 60-bit small “string-like” object, 10 characters or
less and with characters drawn from the 64-character repertoire
a-zA-Z0-9_
.
Implementations§
Trait Implementations§
source§impl FromIterator<char> for Symbol
impl FromIterator<char> for Symbol
source§impl IntoIterator for Symbol
impl IntoIterator for Symbol
source§impl Ord for Symbol
impl Ord for Symbol
source§impl PartialEq<Symbol> for Symbol
impl PartialEq<Symbol> for Symbol
source§impl PartialOrd<Symbol> for Symbol
impl PartialOrd<Symbol> for Symbol
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl RawValConvertible for Symbol
impl RawValConvertible for Symbol
source§fn 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
.source§unsafe fn unchecked_from_val(v: RawVal) -> Symbol
unsafe fn unchecked_from_val(v: RawVal) -> Symbol
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”).source§fn 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
.source§impl TryFrom<&[u8]> for Symbol
impl TryFrom<&[u8]> for Symbol
§type Error = SymbolError
type Error = SymbolError
The type returned in the event of a conversion error.
source§impl<E> TryFromVal<E, RawVal> for Symbolwhere
E: Env,
impl<E> TryFromVal<E, RawVal> for Symbolwhere
E: Env,
type Error = ConversionError
fn try_from_val(
_env: &E,
val: RawVal
) -> Result<Symbol, <Symbol as TryFromVal<E, RawVal>>::Error>
source§impl<E> TryIntoVal<E, RawVal> for Symbolwhere
E: Env,
impl<E> TryIntoVal<E, RawVal> for Symbolwhere
E: Env,
type Error = ConversionError
fn try_into_val(
self,
_env: &E
) -> Result<RawVal, <Symbol as TryIntoVal<E, RawVal>>::Error>
source§impl<E> TryIntoVal<E, Symbol> for RawValwhere
E: Env,
impl<E> TryIntoVal<E, Symbol> for RawValwhere
E: Env,
type Error = ConversionError
fn try_into_val(
self,
env: &E
) -> Result<Symbol, <RawVal as TryIntoVal<E, Symbol>>::Error>
impl Copy for Symbol
impl Eq for Symbol
impl Val for Symbol
Auto Trait Implementations§
impl RefUnwindSafe for Symbol
impl Send for Symbol
impl Sync for Symbol
impl Unpin for Symbol
impl UnwindSafe for Symbol
Blanket Implementations§
source§impl<T, U, V, E, C> Compare<(T, U, V)> for Cwhere
C: Compare<T, Error = E, Error = E, Error = E> + Compare<U> + Compare<V>,
impl<T, U, V, E, C> Compare<(T, U, V)> for Cwhere
C: Compare<T, Error = E, Error = E, Error = E> + Compare<U> + Compare<V>,
source§impl<T, U, E, C> Compare<(T, U)> for Cwhere
C: Compare<T, Error = E, Error = E> + Compare<U>,
impl<T, U, E, C> Compare<(T, U)> for Cwhere
C: Compare<T, Error = E, Error = E> + Compare<U>,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.