Struct rustc_ast_pretty::pprust::state::State[−][src]

pub struct State<'a> {
    pub s: Printer,
    comments: Option<Comments<'a>>,
    ann: &'a (dyn PpAnn + 'a),
}

Fields

s: Printercomments: Option<Comments<'a>>ann: &'a (dyn PpAnn + 'a)

Implementations

impl<'a> State<'a>[src]

pub fn new() -> State<'a>[src]

pub fn synth_comment(&mut self, text: String)[src]

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, 
[src]

pub(crate) fn commasep_exprs(&mut self, b: Breaks, exprs: &[P<Expr>])[src]

pub(crate) fn print_foreign_mod(
    &mut self,
    nmod: &ForeignMod,
    attrs: &[Attribute]
)
[src]

pub fn print_opt_lifetime(&mut self, lifetime: &Option<Lifetime>)[src]

pub fn print_assoc_constraint(&mut self, constraint: &AssocTyConstraint)[src]

pub fn print_generic_arg(&mut self, generic_arg: &GenericArg)[src]

pub fn print_type(&mut self, ty: &Ty)[src]

pub(crate) fn print_foreign_item(&mut self, item: &ForeignItem)[src]

fn print_item_const(
    &mut self,
    ident: Ident,
    mutbl: Option<Mutability>,
    ty: &Ty,
    body: Option<&Expr>,
    vis: &Visibility,
    defaultness: Defaultness
)
[src]

fn print_associated_type(
    &mut self,
    ident: Ident,
    generics: &Generics,
    bounds: &GenericBounds,
    ty: Option<&Ty>,
    vis: &Visibility,
    defaultness: Defaultness
)
[src]

pub(crate) fn print_item(&mut self, item: &Item)[src]

Pretty-prints an item.

fn print_trait_ref(&mut self, t: &TraitRef)[src]

fn print_formal_generic_params(&mut self, generic_params: &[GenericParam])[src]

fn print_poly_trait_ref(&mut self, t: &PolyTraitRef)[src]

pub(crate) fn print_enum_def(
    &mut self,
    enum_definition: &EnumDef,
    generics: &Generics,
    ident: Ident,
    span: Span,
    visibility: &Visibility
)
[src]

pub(crate) fn print_variants(&mut self, variants: &[Variant], span: Span)[src]

pub(crate) fn print_visibility(&mut self, vis: &Visibility)[src]

pub(crate) fn print_defaultness(&mut self, defaultness: Defaultness)[src]

pub(crate) fn print_struct(
    &mut self,
    struct_def: &VariantData,
    generics: &Generics,
    ident: Ident,
    span: Span,
    print_finalizer: bool
)
[src]

pub(crate) fn print_variant(&mut self, v: &Variant)[src]

pub(crate) fn print_assoc_item(&mut self, item: &AssocItem)[src]

pub(crate) fn print_stmt(&mut self, st: &Stmt)[src]

pub(crate) fn print_block(&mut self, blk: &Block)[src]

pub(crate) fn print_block_unclosed_indent(&mut self, blk: &Block)[src]

pub(crate) fn print_block_with_attrs(
    &mut self,
    blk: &Block,
    attrs: &[Attribute]
)
[src]

pub(crate) fn print_block_maybe_unclosed(
    &mut self,
    blk: &Block,
    attrs: &[Attribute],
    close_box: bool
)
[src]

pub(crate) fn print_let(&mut self, pat: &Pat, scrutinee: &Expr)[src]

Print a let pat = scrutinee expression.

fn print_else(&mut self, els: Option<&Expr>)[src]

pub(crate) fn print_if(
    &mut self,
    test: &Expr,
    blk: &Block,
    elseopt: Option<&Expr>
)
[src]

pub(crate) fn print_mac(&mut self, m: &MacCall)[src]

fn print_call_post(&mut self, args: &[P<Expr>])[src]

pub(crate) fn print_expr_maybe_paren(&mut self, expr: &Expr, prec: i8)[src]

pub(crate) fn print_expr_as_cond(&mut self, expr: &Expr)[src]

Prints an expr using syntax that’s acceptable in a condition position, such as the cond in if cond { ... }.

fn cond_needs_par(expr: &Expr) -> bool[src]

Does expr need parenthesis when printed in a condition position?

fn print_expr_cond_paren(&mut self, expr: &Expr, needs_par: bool)[src]

Prints expr or (expr) when needs_par holds.

fn print_expr_vec(&mut self, exprs: &[P<Expr>])[src]

fn print_expr_anon_const(&mut self, expr: &AnonConst)[src]

fn print_expr_repeat(&mut self, element: &Expr, count: &AnonConst)[src]

fn print_expr_struct(
    &mut self,
    path: &Path,
    fields: &[ExprField],
    rest: &StructRest
)
[src]

fn print_expr_tup(&mut self, exprs: &[P<Expr>])[src]

fn print_expr_call(&mut self, func: &Expr, args: &[P<Expr>])[src]

fn print_expr_method_call(&mut self, segment: &PathSegment, args: &[P<Expr>])[src]

fn print_expr_binary(&mut self, op: BinOp, lhs: &Expr, rhs: &Expr)[src]

fn print_expr_unary(&mut self, op: UnOp, expr: &Expr)[src]

fn print_expr_addr_of(
    &mut self,
    kind: BorrowKind,
    mutability: Mutability,
    expr: &Expr
)
[src]

pub fn print_expr(&mut self, expr: &Expr)[src]

fn print_expr_outer_attr_style(&mut self, expr: &Expr, is_inline: bool)[src]

pub(crate) fn print_local_decl(&mut self, loc: &Local)[src]

pub(crate) fn print_name(&mut self, name: Symbol)[src]

fn print_qpath(
    &mut self,
    path: &Path,
    qself: &QSelf,
    colons_before_params: bool
)
[src]

pub(crate) fn print_pat(&mut self, pat: &Pat)[src]

fn print_arm(&mut self, arm: &Arm)[src]

fn print_explicit_self(&mut self, explicit_self: &ExplicitSelf)[src]

fn print_fn_full(
    &mut self,
    sig: &FnSig,
    name: Ident,
    generics: &Generics,
    vis: &Visibility,
    defaultness: Defaultness,
    body: Option<&Block>,
    attrs: &[Attribute]
)
[src]

pub(crate) fn print_fn(
    &mut self,
    decl: &FnDecl,
    header: FnHeader,
    name: Option<Ident>,
    generics: &Generics
)
[src]

pub(crate) fn print_fn_params_and_ret(
    &mut self,
    decl: &FnDecl,
    is_closure: bool
)
[src]

pub(crate) fn print_movability(&mut self, movability: Movability)[src]

pub(crate) fn print_asyncness(&mut self, asyncness: Async)[src]

pub(crate) fn print_capture_clause(&mut self, capture_clause: CaptureBy)[src]

pub fn print_type_bounds(
    &mut self,
    prefix: &'static str,
    bounds: &[GenericBound]
)
[src]

pub(crate) fn print_lifetime(&mut self, lifetime: Lifetime)[src]

pub(crate) fn print_lifetime_bounds(
    &mut self,
    lifetime: Lifetime,
    bounds: &GenericBounds
)
[src]

pub(crate) fn print_generic_params(&mut self, generic_params: &[GenericParam])[src]

pub(crate) fn print_where_clause(&mut self, where_clause: &WhereClause)[src]

pub(crate) fn print_use_tree(&mut self, tree: &UseTree)[src]

pub fn print_mutability(&mut self, mutbl: Mutability, print_const: bool)[src]

pub(crate) fn print_mt(&mut self, mt: &MutTy, print_const: bool)[src]

pub(crate) fn print_param(&mut self, input: &Param, is_closure: bool)[src]

pub(crate) fn print_fn_ret_ty(&mut self, fn_ret_ty: &FnRetTy)[src]

pub(crate) fn print_ty_fn(
    &mut self,
    ext: Extern,
    unsafety: Unsafe,
    decl: &FnDecl,
    name: Option<Ident>,
    generic_params: &[GenericParam]
)
[src]

pub(crate) fn maybe_print_trailing_comment(
    &mut self,
    span: Span,
    next_pos: Option<BytePos>
)
[src]

pub(crate) fn print_remaining_comments(&mut self)[src]

pub(crate) fn print_fn_header_info(&mut self, header: FnHeader)[src]

pub(crate) fn print_unsafety(&mut self, s: Unsafe)[src]

pub(crate) fn print_constness(&mut self, s: Const)[src]

pub(crate) fn print_is_auto(&mut self, s: IsAuto)[src]

Methods from Deref<Target = Printer>

pub fn word_space<W: Into<Cow<'static, str>>>(&mut self, w: W)[src]

pub fn popen(&mut self)[src]

pub fn pclose(&mut self)[src]

pub fn hardbreak_if_not_bol(&mut self)[src]

pub fn space_if_not_bol(&mut self)[src]

pub fn nbsp(&mut self)[src]

pub fn word_nbsp<S: Into<Cow<'static, str>>>(&mut self, w: S)[src]

pub fn last_token(&self) -> Token[src]

pub fn replace_last_token(&mut self, t: Token)[src]

Be very careful with this!

fn scan_eof(&mut self)[src]

fn scan_begin(&mut self, b: BeginToken)[src]

fn scan_end(&mut self)[src]

fn scan_break(&mut self, b: BreakToken)[src]

fn scan_string(&mut self, s: Cow<'static, str>)[src]

fn check_stream(&mut self)[src]

fn scan_push(&mut self, entry: BufEntry)[src]

fn scan_pop(&mut self) -> usize[src]

fn scan_top(&self) -> usize[src]

fn scan_pop_bottom(&mut self) -> usize[src]

fn advance_right(&mut self)[src]

fn advance_left(&mut self)[src]

fn check_stack(&mut self, k: usize)[src]

fn print_newline(&mut self, amount: isize)[src]

fn indent(&mut self, amount: isize)[src]

fn get_top(&self) -> PrintStackElem[src]

fn print_begin(&mut self, b: BeginToken, l: isize)[src]

fn print_end(&mut self)[src]

fn print_break(&mut self, b: BreakToken, l: isize)[src]

fn print_string(&mut self, s: Cow<'static, str>)[src]

fn print(&mut self, token: Token, l: isize)[src]

pub fn rbox(&mut self, indent: usize, b: Breaks)[src]

“raw box”

pub fn ibox(&mut self, indent: usize)[src]

Inconsistent breaking box

pub fn cbox(&mut self, indent: usize)[src]

Consistent breaking box

pub fn break_offset(&mut self, n: usize, off: isize)[src]

pub fn end(&mut self)[src]

pub fn word<S: Into<Cow<'static, str>>>(&mut self, wrd: S)[src]

fn spaces(&mut self, n: usize)[src]

pub(crate) fn zerobreak(&mut self)[src]

pub fn space(&mut self)[src]

pub fn hardbreak(&mut self)[src]

pub fn is_beginning_of_line(&self) -> bool[src]

Trait Implementations

impl Deref for State<'_>[src]

type Target = Printer

The resulting type after dereferencing.

fn deref(&self) -> &Self::Target[src]

Dereferences the value.

impl DerefMut for State<'_>[src]

fn deref_mut(&mut self) -> &mut Self::Target[src]

Mutably dereferences the value.

impl<'a> PrintState<'a> for State<'a>[src]

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

fn print_ident(&mut self, ident: Ident)[src]

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

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

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

fn maybe_print_comment(&mut self, pos: BytePos)[src]

fn print_comment(&mut self, cmnt: &Comment)[src]

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

fn print_literal(&mut self, lit: &Lit)[src]

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

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

fn print_inner_attributes(&mut self, attrs: &[Attribute])[src]

fn print_outer_attributes(&mut self, attrs: &[Attribute])[src]

fn print_inner_attributes_inline(&mut self, attrs: &[Attribute])[src]

fn print_outer_attributes_inline(&mut self, attrs: &[Attribute])[src]

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

fn print_attribute(&mut self, attr: &Attribute)[src]

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

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

fn print_meta_list_item(&mut self, item: &NestedMetaItem)[src]

fn print_meta_item(&mut self, item: &MetaItem)[src]

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

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)[src]

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

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

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

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

fn bopen(&mut self)[src]

fn bclose_maybe_open(&mut self, span: Span, close_box: bool)[src]

fn bclose(&mut self, span: Span)[src]

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

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

fn token_kind_to_string(&self, tok: &TokenKind) -> String[src]

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>
) -> String
[src]

fn token_to_string(&self, token: &Token) -> String[src]

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

fn token_to_string_ext(
    &self,
    token: &Token,
    convert_dollar_crate: bool
) -> String
[src]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

fn to_string(&self, f: impl FnOnce(&mut State<'_>)) -> String[src]

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

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.