pub enum Token {
CoreBasic(CoreBasic),
Array(Array),
Tuple(Tuple),
Composite(Composite),
GenericArg(String),
Function(Function),
}
Variants§
CoreBasic(CoreBasic)
Array(Array)
Tuple(Tuple)
Composite(Composite)
GenericArg(String)
Function(Function)
Implementations§
Source§impl Token
impl Token
pub fn parse(type_path: &str) -> CainomeResult<Self>
pub fn type_name(&self) -> String
pub fn type_path(&self) -> String
pub fn to_composite(&self) -> CainomeResult<&Composite>
pub fn to_function(&self) -> CainomeResult<&Function>
pub fn resolve_generic( &self, generic_name: &str, generic_type_path: &str, ) -> Self
pub fn apply_alias(&mut self, type_path: &str, alias: &str)
Sourcepub fn hydrate(
token: Self,
filtered: &HashMap<String, Token>,
recursion_max_depth: usize,
iteration_count: usize,
) -> Self
pub fn hydrate( token: Self, filtered: &HashMap<String, Token>, recursion_max_depth: usize, iteration_count: usize, ) -> Self
Recursively hydrates nested tokens
Once abi is parsed, a flat list of tokens defined in cairo code is generated from parsed json abi string. Then token list are filtered to only keep single copy of each token. Some tokens can have nested tokens that may not have inners defined inside thus leading to confusion while using tokens. i.e Enums does not have inner variants defined.
§Arguments
token
- The token to hydrate.filtered
- A map of type path to token that have already been hydrated.recursion_max_depth
- Max depth recursion for token to hydrate.iteration_count
- Current iteration count.
Trait Implementations§
Source§impl TryFrom<&AbiEventEnum> for Token
impl TryFrom<&AbiEventEnum> for Token
Source§impl TryFrom<&AbiEventStruct> for Token
impl TryFrom<&AbiEventStruct> for Token
Source§impl TryFrom<&RawLegacyEvent> for Token
impl TryFrom<&RawLegacyEvent> for Token
Source§impl TryFrom<&RawLegacyStruct> for Token
impl TryFrom<&RawLegacyStruct> for Token
impl StructuralPartialEq for Token
Auto Trait Implementations§
impl Freeze for Token
impl RefUnwindSafe for Token
impl Send for Token
impl Sync for Token
impl Unpin for Token
impl UnwindSafe for Token
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
Mutably borrows from an owned value. Read more