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.

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

Trait Implementations

impl Parse for File
[src]

impl ToTokens for File
[src]

Write self to the given TokenStream. Read more

Convert self directly into a TokenStream object. Read more

impl Debug for File
[src]

Formats the value using the given formatter. Read more

impl Eq for File
[src]

impl PartialEq for File
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Hash for File
[src]

Feeds this value into the given [Hasher]. Read more

Feeds a slice of this type into the given [Hasher]. Read more

impl Clone for File
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Auto Trait Implementations

impl !Send for File

impl !Sync for File