Struct syn::File
[−]
[src]
pub struct File { pub shebang: Option<String>, pub attrs: Vec<Attribute>, pub items: Vec<Item>, }
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.
extern crate syn; 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>
items: Vec<Item>
Trait Implementations
impl Synom for File
[src]
impl ToTokens for File
[src]
fn to_tokens(&self, tokens: &mut Tokens)
[src]
Write self
to the given Tokens
. Read more
fn into_tokens(self) -> Tokens
[src]
Convert self
directly into a Tokens
object. Read more
impl Debug for File
[src]
impl Eq for File
[src]
impl PartialEq for File
[src]
fn eq(&self, __arg_0: &File) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &File) -> bool
[src]
This method tests for !=
.
impl Hash for File
[src]
fn hash<__H: Hasher>(&self, __arg_0: &mut __H)
[src]
Feeds this value into the given [Hasher
]. Read more
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more