pub trait Format<Context> {
    // Required method
    fn fmt(&self, f: &mut Formatter<'_, Context>) -> FormatResult<()>;
}
Expand description

Formatting trait for types that can create a formatted representation. The biome_formatter equivalent to std::fmt::Display.

§Example

Implementing Format for a custom struct

use biome_formatter::{format, write, IndentStyle, LineWidth};
use biome_formatter::prelude::*;
use biome_rowan::TextSize;

struct Paragraph(String);

impl Format<SimpleFormatContext> for Paragraph {
    fn fmt(&self, f: &mut Formatter<SimpleFormatContext>) -> FormatResult<()> {
        write!(f, [
            hard_line_break(),
            dynamic_text(&self.0, TextSize::from(0)),
            hard_line_break(),
        ])
    }
}

let paragraph = Paragraph(String::from("test"));
let formatted = format!(SimpleFormatContext::default(), [paragraph])?;

assert_eq!("test\n", formatted.print()?.as_code());

Required Methods§

source

fn fmt(&self, f: &mut Formatter<'_, Context>) -> FormatResult<()>

Formats the object using the given formatter.

Implementations on Foreign Types§

source§

impl<Context> Format<Context> for ()

source§

fn fmt(&self, _: &mut Formatter<'_, Context>) -> FormatResult<()>

source§

impl<L: Language, Context> Format<Context> for SyntaxTriviaPiece<L>

source§

fn fmt(&self, f: &mut Formatter<'_, Context>) -> FormatResult<()>

source§

impl<T, Context> Format<Context> for Option<T>
where T: Format<Context>,

source§

fn fmt(&self, f: &mut Formatter<'_, Context>) -> FormatResult<()>

source§

impl<T, Context> Format<Context> for &T
where T: ?Sized + Format<Context>,

source§

fn fmt(&self, f: &mut Formatter<'_, Context>) -> FormatResult<()>

source§

impl<T, Context> Format<Context> for &mut T
where T: ?Sized + Format<Context>,

source§

fn fmt(&self, f: &mut Formatter<'_, Context>) -> FormatResult<()>

source§

impl<T, Context> Format<Context> for SyntaxResult<T>
where T: Format<Context>,

source§

fn fmt(&self, f: &mut Formatter<'_, Context>) -> FormatResult<()>

Implementors§

source§

impl<'fmt, Context> Format<Context> for Argument<'fmt, Context>

source§

impl<C, L> Format<C> for FormatRemoved<'_, L>
where L: Language + 'static, C: CstFormatContext<Language = L>,

source§

impl<Context> Format<Context> for FormatDanglingComments<'_, Context::Language>
where Context: CstFormatContext,

source§

impl<Context> Format<Context> for FormatLeadingComments<'_, Context::Language>
where Context: CstFormatContext,

source§

impl<Context> Format<Context> for FormatTrailingComments<'_, Context::Language>
where Context: CstFormatContext,

source§

impl<Context> Format<Context> for Align<'_, Context>

source§

impl<Context> Format<Context> for BestFitting<'_, Context>

source§

impl<Context> Format<Context> for BlockIndent<'_, Context>

source§

impl<Context> Format<Context> for Dedent<'_, Context>

source§

impl<Context> Format<Context> for DynamicText<'_>

source§

impl<Context> Format<Context> for ExpandParent

source§

impl<Context> Format<Context> for FormatLabelled<'_, Context>

source§

impl<Context> Format<Context> for Group<'_, Context>

source§

impl<Context> Format<Context> for HardSpace

source§

impl<Context> Format<Context> for IfGroupBreaks<'_, Context>

source§

impl<Context> Format<Context> for Indent<'_, Context>

source§

impl<Context> Format<Context> for IndentIfGroupBreaks<'_, Context>

source§

impl<Context> Format<Context> for Line

source§

impl<Context> Format<Context> for LineSuffix<'_, Context>

source§

impl<Context> Format<Context> for LineSuffixBoundary

source§

impl<Context> Format<Context> for LocatedTokenText

source§

impl<Context> Format<Context> for Space

source§

impl<Context> Format<Context> for StaticText

source§

impl<Context> Format<Context> for Arguments<'_, Context>

source§

impl<Context> Format<Context> for FormatSkippedTokenTrivia<'_, Context::Language>
where Context: CstFormatContext,

source§

impl<Context, T> Format<Context> for FormatWith<Context, T>
where T: Fn(&mut Formatter<'_, Context>) -> FormatResult<()>,

source§

impl<F, Context> Format<Context> for Memoized<F, Context>
where F: Format<Context>,

source§

impl<L, C> Format<C> for CleanedNumberLiteralText<'_, L>
where L: Language + 'static, C: CstFormatContext<Language = L>,

source§

impl<L, C> Format<C> for FormatOnlyIfBreaks<'_, '_, L, C>
where L: Language + 'static, C: CstFormatContext<Language = L>,

source§

impl<L, C> Format<C> for FormatReplaced<'_, '_, L, C>
where L: Language + 'static, C: CstFormatContext<Language = L>,

source§

impl<L: Language + 'static, C> Format<C> for FormatTrimmedToken<'_, L>
where C: CstFormatContext<Language = L>,

source§

impl<L: Language, Context> Format<Context> for SyntaxTokenCowSlice<'_, L>

source§

impl<N, R, C> Format<C> for FormatSeparatedElement<N, R>
where N: AstNode, N::Language: 'static, R: FormatSeparatedElementRule<N, Context = C>, C: CstFormatContext<Language = N::Language>,

source§

impl<T, Context> Format<Context> for FormatOnce<T, Context>
where T: FnOnce(&mut Formatter<'_, Context>) -> FormatResult<()>,

source§

impl<T, R> Format<<R as FormatRule<T>>::Context> for FormatOwnedWithRule<T, R>
where R: FormatRule<T>,

source§

impl<T, R> Format<<R as FormatRule<T>>::Context> for FormatRefWithRule<'_, T, R>
where R: FormatRule<T>,