Trait genco::lang::Lang

source ·
pub trait Lang
where 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.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Lang for ()

Dummy implementation for a language.

§

type Config = ()

§

type Format = ()

§

type Item = ()

Implementors§