Struct soroban_sdk::Symbol
source · pub struct Symbol { /* private fields */ }
Expand description
Symbol is a short string with a limited character set.
Valid characters are a-zA-Z0-9_
and maximum length is 32 characters.
Symbols are used for the for symbolic identifiers, such as function names and user-defined structure field/enum variant names. That’s why these idenfiers have limited length.
While Symbols up to 32 characters long are allowed, Symbols that are 9 characters long or shorter are more efficient at runtime and also can be computed at compile time.
Implementations§
source§impl Symbol
impl Symbol
sourcepub fn new(env: &Env, s: &str) -> Self
pub fn new(env: &Env, s: &str) -> Self
Creates a new Symbol given a string with valid characters.
Valid characters are a-zA-Z0-9_
and maximum string length is 32
characters.
Use symbol_short!
for constant symbols that are 9 characters or less.
Use Symbol::try_from_val(env, s)
/s.try_into_val(env)
in case if
failures need to be handled gracefully.
Panics
When the input string is not representable by Symbol.
pub fn as_val(&self) -> &Val
pub fn to_val(&self) -> Val
pub fn to_symbol_val(&self) -> SymbolVal
Trait Implementations§
source§impl Ord for Symbol
impl Ord for Symbol
source§impl PartialEq for Symbol
impl PartialEq for Symbol
source§impl PartialOrd for Symbol
impl PartialOrd for Symbol
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl SorobanArbitrary for Symbol
Available on crate feature testutils
only.
impl SorobanArbitrary for Symbol
testutils
only.§type Prototype = ArbitrarySymbol
type Prototype = ArbitrarySymbol
Arbitrary
and can be converted to this
SorobanArbitrary
type.source§impl TryFrom<&Symbol> for ScVal
impl TryFrom<&Symbol> for ScVal
§type Error = ConversionError
type Error = ConversionError
source§impl TryFrom<Symbol> for ScVal
impl TryFrom<Symbol> for ScVal
§type Error = ConversionError
type Error = ConversionError
source§impl TryFromVal<Env, &Symbol> for Val
impl TryFromVal<Env, &Symbol> for Val
type Error = ConversionError
fn try_from_val(_env: &Env, v: &&Symbol) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, &str> for Symbol
impl TryFromVal<Env, &str> for Symbol
type Error = ConversionError
fn try_from_val(env: &Env, val: &&str) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, ScSymbol> for Symbol
impl TryFromVal<Env, ScSymbol> for Symbol
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScSymbol) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, ScVal> for Symbol
impl TryFromVal<Env, ScVal> for Symbol
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, Symbol> for ScVal
impl TryFromVal<Env, Symbol> for ScVal
type Error = ConversionError
fn try_from_val(_e: &Env, v: &Symbol) -> Result<Self, ConversionError>
source§impl TryFromVal<Env, Symbol> for Symbol
impl TryFromVal<Env, Symbol> for Symbol
type Error = Infallible
fn try_from_val(env: &Env, val: &SymbolVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, Symbol> for Val
impl TryFromVal<Env, Symbol> for Val
type Error = ConversionError
fn try_from_val(_env: &Env, v: &Symbol) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, Val> for Symbol
impl TryFromVal<Env, Val> for Symbol
type Error = ConversionError
fn try_from_val(env: &Env, val: &Val) -> Result<Self, Self::Error>
impl Eq 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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§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>,
§impl<T, U, V, W, E, C> Compare<(T, U, V, W)> for Cwhere
C: Compare<T, Error = E, Error = E, Error = E, Error = E> + Compare<U> + Compare<V> + Compare<W>,
impl<T, U, V, W, E, C> Compare<(T, U, V, W)> for Cwhere
C: Compare<T, Error = E, Error = E, Error = E, Error = E> + Compare<U> + Compare<V> + Compare<W>,
type Error = E
fn compare( &self, a: &(T, U, V, W), b: &(T, U, V, W) ) -> Result<Ordering, <C as Compare<(T, U, V, W)>>::Error>
§impl<T, U, V, W, X, E, C> Compare<(T, U, V, W, X)> for Cwhere
C: Compare<T, Error = E, Error = E, Error = E, Error = E, Error = E> + Compare<U> + Compare<V> + Compare<W> + Compare<X>,
impl<T, U, V, W, X, E, C> Compare<(T, U, V, W, X)> for Cwhere
C: Compare<T, Error = E, Error = E, Error = E, Error = E, Error = E> + Compare<U> + Compare<V> + Compare<W> + Compare<X>,
type Error = E
fn compare( &self, a: &(T, U, V, W, X), b: &(T, U, V, W, X) ) -> Result<Ordering, <C as Compare<(T, U, V, W, X)>>::Error>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
&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)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.