Trait cpclib_asm::implementation::tokens::TokenExt

source ·
pub trait TokenExt:
    ListingElement
    + Debug
    + Visited {
    // Required methods
    fn estimated_duration(&self) -> Result<usize, AssemblerError>;
    fn unroll(&self, env: &Env) -> Option<Result<Vec<&Self>, AssemblerError>>;
    fn disassemble_data(&self) -> Result<Listing, String>;

    // Provided methods
    fn to_bytes_with_options(
        &self,
        option: EnvOptions,
    ) -> Result<Vec<u8>, AssemblerError> { ... }
    fn number_of_bytes(&self) -> Result<usize, String> { ... }
    fn number_of_bytes_with_context(
        &self,
        table: &mut SymbolsTableCaseDependent,
    ) -> Result<usize, String> { ... }
    fn to_bytes(&self) -> Result<Vec<u8>, AssemblerError> { ... }
    fn to_bytes_with_context(
        &self,
        table: &mut SymbolsTableCaseDependent,
    ) -> Result<Vec<u8>, AssemblerError> { ... }
    fn is_valid(&self) -> bool { ... }
}
Expand description

Needed methods for the Token defined in cpclib_tokens

Required Methods§

source

fn estimated_duration(&self) -> Result<usize, AssemblerError>

source

fn unroll(&self, env: &Env) -> Option<Result<Vec<&Self>, AssemblerError>>

Unroll the tokens when it represents a loop

source

fn disassemble_data(&self) -> Result<Listing, String>

Generate the listing of opcodes for directives that embed bytes

Provided Methods§

source

fn to_bytes_with_options( &self, option: EnvOptions, ) -> Result<Vec<u8>, AssemblerError>

source

fn number_of_bytes(&self) -> Result<usize, String>

source

fn number_of_bytes_with_context( &self, table: &mut SymbolsTableCaseDependent, ) -> Result<usize, String>

Return the number of bytes of the token given the provided context

source

fn to_bytes(&self) -> Result<Vec<u8>, AssemblerError>

Dummy version that assemble without taking into account the context TODO find a way to not build a symbol table each time

source

fn to_bytes_with_context( &self, table: &mut SymbolsTableCaseDependent, ) -> Result<Vec<u8>, AssemblerError>

Assemble the symbol taking into account some context, but never modify this context

source

fn is_valid(&self) -> bool

Check if the token is valid. We consider a token vlaid if it is possible to assemble it

Object Safety§

This trait is not object safe.

Implementors§