Struct syntax::print::pprust::State
[−]
[src]
pub struct State<'a> { pub s: Printer<'a>, // some fields omitted }
🔬 This is a nightly-only experimental API. (
rustc_private
)Fields
s: Printer<'a>
🔬 This is a nightly-only experimental API. (
rustc_private
)Methods
impl<'a> State<'a>
[src]
fn new_from_input(cm: &'a CodeMap,
sess: &ParseSess,
filename: String,
input: &mut Read,
out: Box<Write + 'a>,
ann: &'a PpAnn,
is_expanded: bool)
-> State<'a>
sess: &ParseSess,
filename: String,
input: &mut Read,
out: Box<Write + 'a>,
ann: &'a PpAnn,
is_expanded: bool)
-> State<'a>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn new(cm: &'a CodeMap,
out: Box<Write + 'a>,
ann: &'a PpAnn,
comments: Option<Vec<Comment>>,
literals: Option<Vec<Literal>>)
-> State<'a>
out: Box<Write + 'a>,
ann: &'a PpAnn,
comments: Option<Vec<Comment>>,
literals: Option<Vec<Literal>>)
-> State<'a>
🔬 This is a nightly-only experimental API. (
rustc_private
)impl<'a> State<'a>
[src]
fn cbox(&mut self, u: usize) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn word_nbsp(&mut self, w: &str) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn head(&mut self, w: &str) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn bopen(&mut self) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn bclose_(&mut self, span: Span, indented: usize) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn bclose_maybe_open(&mut self,
span: Span,
indented: usize,
close_box: bool)
-> Result<()>
span: Span,
indented: usize,
close_box: bool)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn bclose(&mut self, span: Span) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn in_cbox(&self) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn break_offset_if_not_bol(&mut self, n: usize, off: isize) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn synth_comment(&mut self, text: String) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn commasep_cmnt<T, F, G>(&mut self,
b: Breaks,
elts: &[T],
op: F,
get_span: G)
-> Result<()> where F: FnMut(&mut State, &T) -> Result<()>, G: FnMut(&T) -> Span
b: Breaks,
elts: &[T],
op: F,
get_span: G)
-> Result<()> where F: FnMut(&mut State, &T) -> Result<()>, G: FnMut(&T) -> Span
🔬 This is a nightly-only experimental API. (
rustc_private
)fn commasep_exprs(&mut self, b: Breaks, exprs: &[P<Expr>]) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_mod(&mut self, _mod: &Mod, attrs: &[Attribute]) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_foreign_mod(&mut self,
nmod: &ForeignMod,
attrs: &[Attribute])
-> Result<()>
nmod: &ForeignMod,
attrs: &[Attribute])
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_opt_lifetime(&mut self, lifetime: &Option<Lifetime>) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_type(&mut self, ty: &Ty) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_foreign_item(&mut self, item: &ForeignItem) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_item(&mut self, item: &Item) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)Pretty-print an item
fn print_enum_def(&mut self,
enum_definition: &EnumDef,
generics: &Generics,
ident: Ident,
span: Span,
visibility: &Visibility)
-> Result<()>
enum_definition: &EnumDef,
generics: &Generics,
ident: Ident,
span: Span,
visibility: &Visibility)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_variants(&mut self, variants: &[Variant], span: Span) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_visibility(&mut self, vis: &Visibility) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_struct(&mut self,
struct_def: &VariantData,
generics: &Generics,
ident: Ident,
span: Span,
print_finalizer: bool)
-> Result<()>
struct_def: &VariantData,
generics: &Generics,
ident: Ident,
span: Span,
print_finalizer: bool)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_tt(&mut self, tt: TokenTree) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)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.
fn print_tts(&mut self, tts: TokenStream) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_variant(&mut self, v: &Variant) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_method_sig(&mut self,
ident: Ident,
m: &MethodSig,
vis: &Visibility)
-> Result<()>
ident: Ident,
m: &MethodSig,
vis: &Visibility)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_trait_item(&mut self, ti: &TraitItem) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_impl_item(&mut self, ii: &ImplItem) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_stmt(&mut self, st: &Stmt) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_block(&mut self, blk: &Block) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_block_unclosed(&mut self, blk: &Block) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_block_unclosed_with_attrs(&mut self,
blk: &Block,
attrs: &[Attribute])
-> Result<()>
blk: &Block,
attrs: &[Attribute])
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_block_unclosed_indent(&mut self,
blk: &Block,
indented: usize)
-> Result<()>
blk: &Block,
indented: usize)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_block_with_attrs(&mut self,
blk: &Block,
attrs: &[Attribute])
-> Result<()>
blk: &Block,
attrs: &[Attribute])
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_block_maybe_unclosed(&mut self,
blk: &Block,
indented: usize,
attrs: &[Attribute],
close_box: bool)
-> Result<()>
blk: &Block,
indented: usize,
attrs: &[Attribute],
close_box: bool)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_if(&mut self,
test: &Expr,
blk: &Block,
elseopt: Option<&Expr>)
-> Result<()>
test: &Expr,
blk: &Block,
elseopt: Option<&Expr>)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_if_let(&mut self,
pat: &Pat,
expr: &Expr,
blk: &Block,
elseopt: Option<&Expr>)
-> Result<()>
pat: &Pat,
expr: &Expr,
blk: &Block,
elseopt: Option<&Expr>)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_mac(&mut self, m: &Mac, delim: DelimToken) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn check_expr_bin_needs_paren(&mut self, sub_expr: &Expr, binop: BinOp) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_expr_maybe_paren(&mut self, expr: &Expr) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_expr(&mut self, expr: &Expr) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_local_decl(&mut self, loc: &Local) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_ident(&mut self, ident: Ident) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_usize(&mut self, i: usize) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_name(&mut self, name: Name) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_for_decl(&mut self, loc: &Local, coll: &Expr) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_pat(&mut self, pat: &Pat) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_fn(&mut self,
decl: &FnDecl,
unsafety: Unsafety,
constness: Constness,
abi: Abi,
name: Option<Ident>,
generics: &Generics,
vis: &Visibility)
-> Result<()>
decl: &FnDecl,
unsafety: Unsafety,
constness: Constness,
abi: Abi,
name: Option<Ident>,
generics: &Generics,
vis: &Visibility)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_fn_args_and_ret(&mut self, decl: &FnDecl) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_fn_block_args(&mut self, decl: &FnDecl) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_capture_clause(&mut self, capture_clause: CaptureBy) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_bounds(&mut self, prefix: &str, bounds: &[TyParamBound]) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_lifetime(&mut self, lifetime: &Lifetime) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_lifetime_bounds(&mut self,
lifetime: &Lifetime,
bounds: &[Lifetime])
-> Result<()>
lifetime: &Lifetime,
bounds: &[Lifetime])
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_generics(&mut self, generics: &Generics) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_ty_param(&mut self, param: &TyParam) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_where_clause(&mut self, where_clause: &WhereClause) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_view_path(&mut self, vp: &ViewPath) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_mutability(&mut self, mutbl: Mutability) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_mt(&mut self, mt: &MutTy) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_arg(&mut self, input: &Arg, is_closure: bool) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_fn_output(&mut self, decl: &FnDecl) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_ty_fn(&mut self,
abi: Abi,
unsafety: Unsafety,
decl: &FnDecl,
name: Option<Ident>,
generics: &Generics)
-> Result<()>
abi: Abi,
unsafety: Unsafety,
decl: &FnDecl,
name: Option<Ident>,
generics: &Generics)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn maybe_print_trailing_comment(&mut self,
span: Span,
next_pos: Option<BytePos>)
-> Result<()>
span: Span,
next_pos: Option<BytePos>)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_remaining_comments(&mut self) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_opt_abi_and_extern_if_nondefault(&mut self,
opt_abi: Option<Abi>)
-> Result<()>
opt_abi: Option<Abi>)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_extern_opt_abi(&mut self, opt_abi: Option<Abi>) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_fn_header_info(&mut self,
unsafety: Unsafety,
constness: Constness,
abi: Abi,
vis: &Visibility)
-> Result<()>
unsafety: Unsafety,
constness: Constness,
abi: Abi,
vis: &Visibility)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_unsafety(&mut self, s: Unsafety) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)Trait Implementations
impl<'a> PrintState<'a> for State<'a>
[src]
fn writer(&mut self) -> &mut Printer<'a>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn boxes(&mut self) -> &mut Vec<Breaks>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn comments(&mut self) -> &mut Option<Vec<Comment>>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn cur_cmnt_and_lit(&mut self) -> &mut CurrentCommentAndLiteral
🔬 This is a nightly-only experimental API. (
rustc_private
)fn literals(&self) -> &Option<Vec<Literal>>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn word_space(&mut self, w: &str) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn popen(&mut self) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn pclose(&mut self) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_begin(&mut self) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_end(&mut self) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn is_bol(&mut self) -> bool
🔬 This is a nightly-only experimental API. (
rustc_private
)fn hardbreak_if_not_bol(&mut self) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn rbox(&mut self, u: usize, b: Breaks) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn ibox(&mut self, u: usize) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn end(&mut self) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn commasep<T, F>(&mut self, b: Breaks, elts: &[T], op: F) -> Result<()> where F: FnMut(&mut Self, &T) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn next_lit(&mut self, pos: BytePos) -> Option<Literal>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn maybe_print_comment(&mut self, pos: BytePos) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_comment(&mut self, cmnt: &Comment) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn next_comment(&mut self) -> Option<Comment>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_literal(&mut self, lit: &Lit) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_string(&mut self, st: &str, style: StrStyle) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_inner_attributes(&mut self, attrs: &[Attribute]) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_inner_attributes_no_trailing_hardbreak(&mut self,
attrs: &[Attribute])
-> Result<()>
attrs: &[Attribute])
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_outer_attributes(&mut self, attrs: &[Attribute]) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_inner_attributes_inline(&mut self, attrs: &[Attribute]) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_outer_attributes_inline(&mut self, attrs: &[Attribute]) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_either_attributes(&mut self,
attrs: &[Attribute],
kind: AttrStyle,
is_inline: bool,
trailing_hardbreak: bool)
-> Result<()>
attrs: &[Attribute],
kind: AttrStyle,
is_inline: bool,
trailing_hardbreak: bool)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_attribute(&mut self, attr: &Attribute) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_attribute_inline(&mut self,
attr: &Attribute,
is_inline: bool)
-> Result<()>
attr: &Attribute,
is_inline: bool)
-> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_meta_list_item(&mut self, item: &NestedMetaItem) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn print_meta_item(&mut self, item: &MetaItem) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn space_if_not_bol(&mut self) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn nbsp(&mut self) -> Result<()>
🔬 This is a nightly-only experimental API. (
rustc_private
)