Struct syn::File [−][src]
A complete file of Rust source code.
This type is available only 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"); // Debug impl is available if Syn is built with "extra-traits" feature. println!("{:#?}", syntax); }
Running with its own source code as input, this program prints output that begins with:
File {
    shebang: None,
    attrs: [],
    items: [
        Use(
            ItemUse {
                attrs: [],
                vis: Inherited,
                use_token: Use,
                leading_colon: None,
                tree: Path(
                    UsePath {
                        ident: Ident(
                            std,
                        ),
                        colon2_token: Colon2,
                        tree: Name(
                            UseName {
                                ident: Ident(
                                    env,
                                ),
                            },
                        ),
                    },
                ),
                semi_token: Semi,
            },
        ),
...
Fields
shebang: Option<String>attrs: Vec<Attribute>items: Vec<Item>Trait Implementations
impl Clone for File[src]
impl Clone for File[src]fn clone(&self) -> Self[src]
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
impl ToTokens for File[src]
impl ToTokens for File[src]