Struct rustc_ast_pretty::pprust::state::State
source · Fields
s: Printer
comments: Option<Comments<'a>>
ann: &'a (dyn PpAnn + 'a)
Implementations
sourceimpl<'a> State<'a>
impl<'a> State<'a>
fn print_else(&mut self, els: Option<&Expr>)
fn print_if(&mut self, test: &Expr, blk: &Block, elseopt: Option<&Expr>)
fn print_call_post(&mut self, args: &[P<Expr>])
fn print_expr_maybe_paren(&mut self, expr: &Expr, prec: i8)
sourcefn print_expr_as_cond(&mut self, expr: &Expr)
fn print_expr_as_cond(&mut self, expr: &Expr)
Prints an expr using syntax that’s acceptable in a condition position, such as the cond
in
if cond { ... }
.
pub(super) fn cond_needs_par(expr: &Expr) -> bool
sourcepub(super) fn print_expr_cond_paren(&mut self, expr: &Expr, needs_par: bool)
pub(super) fn print_expr_cond_paren(&mut self, expr: &Expr, needs_par: bool)
Prints expr
or (expr)
when needs_par
holds.
fn print_expr_vec(&mut self, exprs: &[P<Expr>])
pub(super) fn print_expr_anon_const(
&mut self,
expr: &AnonConst,
attrs: &[Attribute]
)
fn print_expr_repeat(&mut self, element: &Expr, count: &AnonConst)
fn print_expr_struct(
&mut self,
qself: &Option<QSelf>,
path: &Path,
fields: &[ExprField],
rest: &StructRest
)
fn print_expr_tup(&mut self, exprs: &[P<Expr>])
fn print_expr_call(&mut self, func: &Expr, args: &[P<Expr>])
fn print_expr_method_call(
&mut self,
segment: &PathSegment,
receiver: &Expr,
base_args: &[P<Expr>]
)
fn print_expr_binary(&mut self, op: BinOp, lhs: &Expr, rhs: &Expr)
fn print_expr_unary(&mut self, op: UnOp, expr: &Expr)
fn print_expr_addr_of(
&mut self,
kind: BorrowKind,
mutability: Mutability,
expr: &Expr
)
pub fn print_expr(&mut self, expr: &Expr)
pub(super) fn print_expr_outer_attr_style(&mut self, expr: &Expr, is_inline: bool)
fn print_arm(&mut self, arm: &Arm)
fn print_closure_binder(&mut self, binder: &ClosureBinder)
fn print_movability(&mut self, movability: Movability)
fn print_capture_clause(&mut self, capture_clause: CaptureBy)
sourceimpl<'a> State<'a>
impl<'a> State<'a>
fn print_foreign_mod(&mut self, nmod: &ForeignMod, attrs: &[Attribute])
pub(crate) fn print_foreign_item(&mut self, item: &ForeignItem)
fn print_item_const(
&mut self,
ident: Ident,
mutbl: Option<Mutability>,
ty: &Ty,
body: Option<&Expr>,
vis: &Visibility,
defaultness: Defaultness
)
fn print_associated_type(
&mut self,
ident: Ident,
generics: &Generics,
where_clauses: (TyAliasWhereClause, TyAliasWhereClause),
where_predicates_split: usize,
bounds: &GenericBounds,
ty: Option<&Ty>,
vis: &Visibility,
defaultness: Defaultness
)
sourcepub(crate) fn print_item(&mut self, item: &Item)
pub(crate) fn print_item(&mut self, item: &Item)
Pretty-prints an item.
fn print_enum_def(
&mut self,
enum_definition: &EnumDef,
generics: &Generics,
ident: Ident,
span: Span,
visibility: &Visibility
)
fn print_variants(&mut self, variants: &[Variant], span: Span)
pub(crate) fn print_visibility(&mut self, vis: &Visibility)
fn print_defaultness(&mut self, defaultness: Defaultness)
fn print_record_struct_body(&mut self, fields: &[FieldDef], span: Span)
fn print_struct(
&mut self,
struct_def: &VariantData,
generics: &Generics,
ident: Ident,
span: Span,
print_finalizer: bool
)
pub(crate) fn print_variant(&mut self, v: &Variant)
pub(crate) fn print_assoc_item(&mut self, item: &AssocItem)
fn print_fn_full(
&mut self,
sig: &FnSig,
name: Ident,
generics: &Generics,
vis: &Visibility,
defaultness: Defaultness,
body: Option<&Block>,
attrs: &[Attribute]
)
pub(crate) fn print_fn(
&mut self,
decl: &FnDecl,
header: FnHeader,
name: Option<Ident>,
generics: &Generics
)
pub(crate) fn print_fn_params_and_ret(&mut self, decl: &FnDecl, is_closure: bool)
fn print_where_clause(&mut self, where_clause: &WhereClause)
pub(crate) fn print_where_clause_parts(
&mut self,
has_where_token: bool,
predicates: &[WherePredicate]
)
pub fn print_where_predicate(&mut self, predicate: &WherePredicate)
fn print_use_tree(&mut self, tree: &UseTree)
sourceimpl<'a> State<'a>
impl<'a> State<'a>
pub fn new() -> State<'a>
pub(crate) fn commasep_cmnt<T, F, G>(
&mut self,
b: Breaks,
elts: &[T],
op: F,
get_span: G
)where
F: FnMut(&mut State<'_>, &T),
G: FnMut(&T) -> Span,
pub(crate) fn commasep_exprs(&mut self, b: Breaks, exprs: &[P<Expr>])
pub fn print_opt_lifetime(&mut self, lifetime: &Option<Lifetime>)
pub fn print_assoc_constraint(&mut self, constraint: &AssocConstraint)
pub fn print_generic_arg(&mut self, generic_arg: &GenericArg)
pub fn print_type(&mut self, ty: &Ty)
fn print_trait_ref(&mut self, t: &TraitRef)
fn print_formal_generic_params(&mut self, generic_params: &[GenericParam])
fn print_poly_trait_ref(&mut self, t: &PolyTraitRef)
pub(crate) fn print_stmt(&mut self, st: &Stmt)
pub(crate) fn print_block(&mut self, blk: &Block)
pub(crate) fn print_block_unclosed_indent(&mut self, blk: &Block)
pub(crate) fn print_block_with_attrs(&mut self, blk: &Block, attrs: &[Attribute])
pub(crate) fn print_block_maybe_unclosed(
&mut self,
blk: &Block,
attrs: &[Attribute],
close_box: bool
)
pub(crate) fn print_mac(&mut self, m: &MacCall)
fn print_inline_asm(&mut self, asm: &InlineAsm)
pub(crate) fn print_local_decl(&mut self, loc: &Local)
pub(crate) fn print_name(&mut self, name: Symbol)
fn print_qpath(&mut self, path: &Path, qself: &QSelf, colons_before_params: bool)
pub(crate) fn print_pat(&mut self, pat: &Pat)
fn print_explicit_self(&mut self, explicit_self: &ExplicitSelf)
pub(crate) fn print_asyncness(&mut self, asyncness: Async)
pub fn print_type_bounds(&mut self, bounds: &[GenericBound])
pub(crate) fn print_lifetime(&mut self, lifetime: Lifetime)
pub(crate) fn print_lifetime_bounds(&mut self, bounds: &GenericBounds)
pub(crate) fn print_generic_params(&mut self, generic_params: &[GenericParam])
pub fn print_mutability(&mut self, mutbl: Mutability, print_const: bool)
pub(crate) fn print_mt(&mut self, mt: &MutTy, print_const: bool)
pub(crate) fn print_param(&mut self, input: &Param, is_closure: bool)
pub(crate) fn print_fn_ret_ty(&mut self, fn_ret_ty: &FnRetTy)
pub(crate) fn print_ty_fn(
&mut self,
ext: Extern,
unsafety: Unsafe,
decl: &FnDecl,
name: Option<Ident>,
generic_params: &[GenericParam]
)
pub(crate) fn print_fn_header_info(&mut self, header: FnHeader)
pub(crate) fn print_unsafety(&mut self, s: Unsafe)
pub(crate) fn print_constness(&mut self, s: Const)
pub(crate) fn print_is_auto(&mut self, s: IsAuto)
Methods from Deref<Target = Printer>
pub fn word_space<W: Into<Cow<'static, str>>>(&mut self, w: W)
pub fn popen(&mut self)
pub fn pclose(&mut self)
pub fn hardbreak_if_not_bol(&mut self)
pub fn space_if_not_bol(&mut self)
pub fn nbsp(&mut self)
pub fn word_nbsp<S: Into<Cow<'static, str>>>(&mut self, w: S)
pub fn synth_comment(&mut self, text: impl Into<Cow<'static, str>>)
pub fn visual_align(&mut self)
pub fn break_offset(&mut self, n: usize, off: isize)
pub fn end(&mut self)
pub fn word<S: Into<Cow<'static, str>>>(&mut self, wrd: S)
fn spaces(&mut self, n: usize)
pub fn zerobreak(&mut self)
pub fn space(&mut self)
pub fn hardbreak(&mut self)
pub fn is_beginning_of_line(&self) -> bool
pub fn trailing_comma(&mut self)
pub fn trailing_comma_or_space(&mut self)
pub fn last_token(&self) -> Option<&Token>
pub fn last_token_still_buffered(&self) -> Option<&Token>
sourcepub fn replace_last_token_still_buffered(&mut self, token: Token)
pub fn replace_last_token_still_buffered(&mut self, token: Token)
Be very careful with this!
fn scan_eof(&mut self)
fn scan_begin(&mut self, token: BeginToken)
fn scan_end(&mut self)
fn scan_break(&mut self, token: BreakToken)
fn scan_string(&mut self, string: Cow<'static, str>)
pub fn offset(&mut self, offset: isize)
fn check_stream(&mut self)
fn advance_left(&mut self)
fn check_stack(&mut self, depth: usize)
fn get_top(&self) -> PrintFrame
fn print_begin(&mut self, token: BeginToken, size: isize)
fn print_end(&mut self)
fn print_break(&mut self, token: BreakToken, size: isize)
fn print_string(&mut self, string: &str)
Trait Implementations
sourceimpl<'a> PrintState<'a> for State<'a>
impl<'a> PrintState<'a> for State<'a>
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)
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_literal(&mut self, lit: &Lit)
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)
sourcefn print_tt(&mut self, tt: &TokenTree, convert_dollar_crate: bool)
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. Read more
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: Option<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
sourcefn token_kind_to_string(&self, tok: &TokenKind) -> Cow<'static, str>
fn token_kind_to_string(&self, tok: &TokenKind) -> Cow<'static, str>
Print the token kind precisely, without converting
$crate
into its respective crate name.fn token_kind_to_string_ext(
&self,
tok: &TokenKind,
convert_dollar_crate: Option<Span>
) -> Cow<'static, str>
sourcefn token_to_string(&self, token: &Token) -> Cow<'static, str>
fn token_to_string(&self, token: &Token) -> Cow<'static, str>
Print the token precisely, without converting
$crate
into its respective crate name.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 pat_to_string(&self, pat: &Pat) -> String
fn expr_to_string(&self, e: &Expr) -> String
fn literal_to_string(&self, lit: &Lit) -> 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
Auto Trait Implementations
impl<'a> !RefUnwindSafe for State<'a>
impl<'a> !Send for State<'a>
impl<'a> !Sync for State<'a>
impl<'a> Unpin for State<'a>
impl<'a> !UnwindSafe for State<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 248 bytes