Trait genco::lang::Lang

source ·
pub trait Langwhere
    Self: 'static + Sized + Copy + Eq + Ord + Hash + Debug,{
    type Config;
    type Format: Default;
    type Item: LangItem<Self>;

    // Provided methods
    fn default_indentation() -> Indentation { ... }
    fn open_quote(
        out: &mut Formatter<'_>,
        _config: &Self::Config,
        _format: &Self::Format,
        _has_eval: bool
    ) -> Result { ... }
    fn close_quote(
        out: &mut Formatter<'_>,
        _config: &Self::Config,
        _format: &Self::Format,
        _has_eval: bool
    ) -> Result { ... }
    fn string_eval_literal(
        out: &mut Formatter<'_>,
        config: &Self::Config,
        format: &Self::Format,
        literal: &str
    ) -> Result { ... }
    fn start_string_eval(
        _out: &mut Formatter<'_>,
        _config: &Self::Config,
        _format: &Self::Format
    ) -> Result { ... }
    fn end_string_eval(
        _out: &mut Formatter<'_>,
        _config: &Self::Config,
        _format: &Self::Format
    ) -> Result { ... }
    fn write_quoted(out: &mut Formatter<'_>, input: &str) -> Result { ... }
    fn format_file(
        tokens: &Tokens<Self>,
        out: &mut Formatter<'_>,
        config: &Self::Config
    ) -> Result { ... }
}
Expand description

Trait to implement for language specialization.

The various language implementations can be found in the lang module.

Required Associated Types§

source

type Config

Configuration associated with building a formatting element.

source

type Format: Default

State being used during formatting.

source

type Item: LangItem<Self>

The type used when resolving imports.

Provided Methods§

source

fn default_indentation() -> Indentation

Provide the default indentation.

source

fn open_quote( out: &mut Formatter<'_>, _config: &Self::Config, _format: &Self::Format, _has_eval: bool ) -> Result

Start a string quote.

source

fn close_quote( out: &mut Formatter<'_>, _config: &Self::Config, _format: &Self::Format, _has_eval: bool ) -> Result

End a string quote.

source

fn string_eval_literal( out: &mut Formatter<'_>, config: &Self::Config, format: &Self::Format, literal: &str ) -> Result

A simple, single-literal string evaluation.

source

fn start_string_eval( _out: &mut Formatter<'_>, _config: &Self::Config, _format: &Self::Format ) -> Result

Start a string-interpolated eval.

source

fn end_string_eval( _out: &mut Formatter<'_>, _config: &Self::Config, _format: &Self::Format ) -> Result

End a string interpolated eval.

source

fn write_quoted(out: &mut Formatter<'_>, input: &str) -> Result

Performing string quoting according to language convention.

source

fn format_file( tokens: &Tokens<Self>, out: &mut Formatter<'_>, config: &Self::Config ) -> Result

Write a file according to the specified language convention.

Implementations on Foreign Types§

source§

impl Lang for ()

Dummy implementation for a language.

§

type Config = ()

§

type Format = ()

§

type Item = ()

Implementors§