Struct devise::syn::File [−][src]
pub struct File {
pub shebang: Option<String>,
pub attrs: Vec<Attribute, Global>,
pub items: Vec<Item, Global>,
}
Expand description
A complete file of Rust source code.
This type is available if Syn is built with the "full"
feature.
Example
Parse a Rust source file into a syn::File
and print out a debug
representation of the syntax tree.
ⓘ
use std::env;
use std::fs::File;
use std::io::Read;
use std::process;
fn main() {
let mut args = env::args();
let _ = args.next(); // executable name
let filename = match (args.next(), args.next()) {
(Some(filename), None) => filename,
_ => {
eprintln!("Usage: dump-syntax path/to/filename.rs");
process::exit(1);
}
};
let mut file = File::open(&filename).expect("Unable to open file");
let mut src = String::new();
file.read_to_string(&mut src).expect("Unable to read file");
let syntax = syn::parse_file(&src).expect("Unable to parse file");
println!("{:#?}", syntax);
}
Running with its own source code as input, this program prints output that begins with:
File {
shebang: None,
attrs: [],
items: [
ExternCrate(
ItemExternCrate {
attrs: [],
vis: Inherited,
extern_token: Extern,
crate_token: Crate,
ident: Ident {
term: Term(
"syn"
),
span: Span
},
rename: None,
semi_token: Semi
}
),
...
Fields
shebang: Option<String>
attrs: Vec<Attribute, Global>
items: Vec<Item, Global>
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for File
impl UnwindSafe for File
Blanket Implementations
Mutably borrows from an owned value. Read more
Returns a Span
covering the complete contents of this syntax tree
node, or Span::call_site()
if this node is empty. Read more