Skip to main content

Parsable

Trait Parsable 

Source
pub trait Parsable<C: Context>: Sized {
    // Provided methods
    fn parse_symbol(_name: Box<str>, _span: Span, _context: &C) -> Result<Self> { ... }
    fn parse_list(_parser: &mut Parser, _context: &C) -> Result<Self> { ... }
}
Expand description

This trait needs to be implemented for every struct which can be parsed using the token parser.

Provided Methods§

Source

fn parse_symbol(_name: Box<str>, _span: Span, _context: &C) -> Result<Self>

When a symbol is found by the parser, this will be called.

§Errors

The default implementation always returns ErrorKind::SymbolNotAllowed; implementors override this for types parsable from a symbol.

Source

fn parse_list(_parser: &mut Parser, _context: &C) -> Result<Self>

When a subparser is found by the parser, this will be called.

§Errors

The default implementation always returns ErrorKind::ListNotAllowed; implementors override this for types parsable from a sublist.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<C: Context, T: Parsable<C>> Parsable<C> for Arc<T>

Source§

fn parse_symbol(name: Box<str>, span: Span, context: &C) -> Result<Self>

Source§

fn parse_list(parser: &mut Parser, context: &C) -> Result<Self>

Source§

impl<C: Context, T: Parsable<C>> Parsable<C> for Box<T>

Source§

fn parse_symbol(name: Box<str>, span: Span, context: &C) -> Result<Self>

Source§

fn parse_list(parser: &mut Parser, context: &C) -> Result<Self>

Source§

impl<C: Context, T: Parsable<C>> Parsable<C> for Rc<T>

Source§

fn parse_symbol(name: Box<str>, span: Span, context: &C) -> Result<Self>

Source§

fn parse_list(parser: &mut Parser, context: &C) -> Result<Self>

Source§

impl<C: Context, T: Parsable<C>> Parsable<C> for Vec<T>

Source§

fn parse_list(parser: &mut Parser, context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for Box<str>

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for PathBuf

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for String

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for bool

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for f32

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for f64

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for i8

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for i16

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for i32

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for i64

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for i128

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for u8

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for u16

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for u32

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for u64

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for u128

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Source§

impl<C: Context> Parsable<C> for usize

Source§

fn parse_symbol(name: Box<str>, _span: Span, _context: &C) -> Result<Self>

Implementors§

Source§

impl<C: Context> Parsable<C> for Unit