pub trait PrintState<'a>: Deref<Target = Printer> + DerefMut {
Show 63 methods // Required methods fn comments(&mut self) -> &mut Option<Comments<'a>>; fn print_ident(&mut self, ident: Ident); fn print_generic_args( &mut self, args: &GenericArgs, colons_before_params: bool ); // Provided methods fn strsep<T, F>( &mut self, sep: &'static str, space_before: bool, b: Breaks, elts: &[T], op: F ) where F: FnMut(&mut Self, &T) { ... } fn commasep<T, F>(&mut self, b: Breaks, elts: &[T], op: F) where F: FnMut(&mut Self, &T) { ... } fn maybe_print_comment(&mut self, pos: BytePos) -> bool { ... } fn print_comment(&mut self, cmnt: &Comment) { ... } fn next_comment(&mut self) -> Option<Comment> { ... } fn maybe_print_trailing_comment( &mut self, span: Span, next_pos: Option<BytePos> ) { ... } fn print_remaining_comments(&mut self) { ... } fn print_meta_item_lit(&mut self, lit: &MetaItemLit) { ... } fn print_token_literal(&mut self, token_lit: Lit, span: Span) { ... } fn print_string(&mut self, st: &str, style: StrStyle) { ... } fn print_symbol(&mut self, sym: Symbol, style: StrStyle) { ... } fn print_inner_attributes(&mut self, attrs: &[Attribute]) -> bool { ... } fn print_inner_attributes_no_trailing_hardbreak( &mut self, attrs: &[Attribute] ) -> bool { ... } fn print_outer_attributes(&mut self, attrs: &[Attribute]) -> bool { ... } fn print_inner_attributes_inline(&mut self, attrs: &[Attribute]) -> bool { ... } fn print_outer_attributes_inline(&mut self, attrs: &[Attribute]) -> bool { ... } fn print_either_attributes( &mut self, attrs: &[Attribute], kind: AttrStyle, is_inline: bool, trailing_hardbreak: bool ) -> bool { ... } fn print_attribute(&mut self, attr: &Attribute) { ... } fn print_attribute_inline(&mut self, attr: &Attribute, is_inline: bool) { ... } fn print_attr_item(&mut self, item: &AttrItem, span: Span) { ... } fn print_meta_list_item(&mut self, item: &NestedMetaItem) { ... } fn print_meta_item(&mut self, item: &MetaItem) { ... } fn print_tt(&mut self, tt: &TokenTree, convert_dollar_crate: bool) { ... } fn print_tts(&mut self, tts: &TokenStream, convert_dollar_crate: bool) { ... } fn print_mac_common( &mut self, header: Option<MacHeader<'_>>, has_bang: bool, ident: Option<Ident>, delim: Delimiter, tts: &TokenStream, convert_dollar_crate: bool, span: Span ) { ... } fn print_mac_def( &mut self, macro_def: &MacroDef, ident: &Ident, sp: Span, print_visibility: impl FnOnce(&mut Self) ) { ... } fn print_path( &mut self, path: &Path, colons_before_params: bool, depth: usize ) { ... } fn print_path_segment( &mut self, segment: &PathSegment, colons_before_params: bool ) { ... } fn head<S: Into<Cow<'static, str>>>(&mut self, w: S) { ... } fn bopen(&mut self) { ... } fn bclose_maybe_open(&mut self, span: Span, empty: bool, close_box: bool) { ... } fn bclose(&mut self, span: Span, empty: bool) { ... } fn break_offset_if_not_bol(&mut self, n: usize, off: isize) { ... } fn nonterminal_to_string(&self, nt: &Nonterminal) -> String { ... } fn token_kind_to_string(&self, tok: &TokenKind) -> Cow<'static, str> { ... } fn token_kind_to_string_ext( &self, tok: &TokenKind, convert_dollar_crate: Option<Span> ) -> Cow<'static, str> { ... } fn token_to_string(&self, token: &Token) -> Cow<'static, str> { ... } fn token_to_string_ext( &self, token: &Token, convert_dollar_crate: bool ) -> Cow<'static, str> { ... } fn ty_to_string(&self, ty: &Ty) -> String { ... } fn bounds_to_string(&self, bounds: &[GenericBound]) -> String { ... } fn where_bound_predicate_to_string( &self, where_bound_predicate: &WhereBoundPredicate ) -> String { ... } fn pat_to_string(&self, pat: &Pat) -> String { ... } fn expr_to_string(&self, e: &Expr) -> String { ... } fn meta_item_lit_to_string(&self, lit: &MetaItemLit) -> String { ... } fn tt_to_string(&self, tt: &TokenTree) -> String { ... } fn tts_to_string(&self, tokens: &TokenStream) -> String { ... } fn stmt_to_string(&self, stmt: &Stmt) -> String { ... } fn item_to_string(&self, i: &Item) -> String { ... } fn assoc_item_to_string(&self, i: &AssocItem) -> String { ... } fn foreign_item_to_string(&self, i: &ForeignItem) -> String { ... } fn generic_params_to_string( &self, generic_params: &[GenericParam] ) -> String { ... } fn path_to_string(&self, p: &Path) -> String { ... } fn path_segment_to_string(&self, p: &PathSegment) -> String { ... } fn vis_to_string(&self, v: &Visibility) -> String { ... } fn block_to_string(&self, blk: &Block) -> String { ... } fn meta_list_item_to_string(&self, li: &NestedMetaItem) -> String { ... } fn attr_item_to_string(&self, ai: &AttrItem) -> String { ... } fn attribute_to_string(&self, attr: &Attribute) -> String { ... } fn param_to_string(&self, arg: &Param) -> String { ... } fn to_string(f: impl FnOnce(&mut State<'_>)) -> String { ... }
}

Required Methods§

source

fn comments(&mut self) -> &mut Option<Comments<'a>>

source

fn print_ident(&mut self, ident: Ident)

source

fn print_generic_args(&mut self, args: &GenericArgs, colons_before_params: bool)

Provided Methods§

source

fn strsep<T, F>( &mut self, sep: &'static str, space_before: bool, b: Breaks, elts: &[T], op: F )where F: FnMut(&mut Self, &T),

source

fn commasep<T, F>(&mut self, b: Breaks, elts: &[T], op: F)where F: FnMut(&mut Self, &T),

source

fn maybe_print_comment(&mut self, pos: BytePos) -> bool

source

fn print_comment(&mut self, cmnt: &Comment)

source

fn next_comment(&mut self) -> Option<Comment>

source

fn maybe_print_trailing_comment( &mut self, span: Span, next_pos: Option<BytePos> )

source

fn print_remaining_comments(&mut self)

source

fn print_meta_item_lit(&mut self, lit: &MetaItemLit)

source

fn print_token_literal(&mut self, token_lit: Lit, span: Span)

source

fn print_string(&mut self, st: &str, style: StrStyle)

source

fn print_symbol(&mut self, sym: Symbol, style: StrStyle)

source

fn print_inner_attributes(&mut self, attrs: &[Attribute]) -> bool

source

fn print_inner_attributes_no_trailing_hardbreak( &mut self, attrs: &[Attribute] ) -> bool

source

fn print_outer_attributes(&mut self, attrs: &[Attribute]) -> bool

source

fn print_inner_attributes_inline(&mut self, attrs: &[Attribute]) -> bool

source

fn print_outer_attributes_inline(&mut self, attrs: &[Attribute]) -> bool

source

fn print_either_attributes( &mut self, attrs: &[Attribute], kind: AttrStyle, is_inline: bool, trailing_hardbreak: bool ) -> bool

source

fn print_attribute(&mut self, attr: &Attribute)

source

fn print_attribute_inline(&mut self, attr: &Attribute, is_inline: bool)

source

fn print_attr_item(&mut self, item: &AttrItem, span: Span)

source

fn print_meta_list_item(&mut self, item: &NestedMetaItem)

source

fn print_meta_item(&mut self, item: &MetaItem)

source

fn print_tt(&mut self, tt: &TokenTree, convert_dollar_crate: bool)

This doesn’t deserve to be called “pretty” printing, but it should be meaning-preserving. A quick hack that might help would be to look at the spans embedded in the TTs to decide where to put spaces and newlines. But it’d be better to parse these according to the grammar of the appropriate macro, transcribe back into the grammar we just parsed from, and then pretty-print the resulting AST nodes (so, e.g., we print expression arguments as expressions). It can be done! I think.

source

fn print_tts(&mut self, tts: &TokenStream, convert_dollar_crate: bool)

source

fn print_mac_common( &mut self, header: Option<MacHeader<'_>>, has_bang: bool, ident: Option<Ident>, delim: Delimiter, tts: &TokenStream, convert_dollar_crate: bool, span: Span )

source

fn print_mac_def( &mut self, macro_def: &MacroDef, ident: &Ident, sp: Span, print_visibility: impl FnOnce(&mut Self) )

source

fn print_path(&mut self, path: &Path, colons_before_params: bool, depth: usize)

source

fn print_path_segment( &mut self, segment: &PathSegment, colons_before_params: bool )

source

fn head<S: Into<Cow<'static, str>>>(&mut self, w: S)

source

fn bopen(&mut self)

source

fn bclose_maybe_open(&mut self, span: Span, empty: bool, close_box: bool)

source

fn bclose(&mut self, span: Span, empty: bool)

source

fn break_offset_if_not_bol(&mut self, n: usize, off: isize)

source

fn nonterminal_to_string(&self, nt: &Nonterminal) -> String

source

fn token_kind_to_string(&self, tok: &TokenKind) -> Cow<'static, str>

Print the token kind precisely, without converting $crate into its respective crate name.

source

fn token_kind_to_string_ext( &self, tok: &TokenKind, convert_dollar_crate: Option<Span> ) -> Cow<'static, str>

source

fn token_to_string(&self, token: &Token) -> Cow<'static, str>

Print the token precisely, without converting $crate into its respective crate name.

source

fn token_to_string_ext( &self, token: &Token, convert_dollar_crate: bool ) -> Cow<'static, str>

source

fn ty_to_string(&self, ty: &Ty) -> String

source

fn bounds_to_string(&self, bounds: &[GenericBound]) -> String

source

fn where_bound_predicate_to_string( &self, where_bound_predicate: &WhereBoundPredicate ) -> String

source

fn pat_to_string(&self, pat: &Pat) -> String

source

fn expr_to_string(&self, e: &Expr) -> String

source

fn meta_item_lit_to_string(&self, lit: &MetaItemLit) -> String

source

fn tt_to_string(&self, tt: &TokenTree) -> String

source

fn tts_to_string(&self, tokens: &TokenStream) -> String

source

fn stmt_to_string(&self, stmt: &Stmt) -> String

source

fn item_to_string(&self, i: &Item) -> String

source

fn assoc_item_to_string(&self, i: &AssocItem) -> String

source

fn foreign_item_to_string(&self, i: &ForeignItem) -> String

source

fn generic_params_to_string(&self, generic_params: &[GenericParam]) -> String

source

fn path_to_string(&self, p: &Path) -> String

source

fn path_segment_to_string(&self, p: &PathSegment) -> String

source

fn vis_to_string(&self, v: &Visibility) -> String

source

fn block_to_string(&self, blk: &Block) -> String

source

fn meta_list_item_to_string(&self, li: &NestedMetaItem) -> String

source

fn attr_item_to_string(&self, ai: &AttrItem) -> String

source

fn attribute_to_string(&self, attr: &Attribute) -> String

source

fn param_to_string(&self, arg: &Param) -> String

source

fn to_string(f: impl FnOnce(&mut State<'_>)) -> String

Implementors§

source§

impl<'a> PrintState<'a> for State<'a>