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.


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 _ =; // executable name

    let filename = match (, {
        (Some(filename), None) => filename,
        _ => {
            eprintln!("Usage: dump-syntax path/to/");

    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: [
            ItemExternCrate {
                attrs: [],
                vis: Inherited,
                extern_token: Extern,
                crate_token: Crate,
                ident: Ident {
                    term: Term(
                    span: Span
                rename: None,
                semi_token: Semi


Trait Implementations

impl Synom for File

A short name of the type being parsed. Read more

impl ToTokens for File

Write self to the given TokenStream. Read more

Convert self directly into a TokenStream object. Read more

impl Debug for File

Formats the value using the given formatter. Read more

impl Eq for File

impl PartialEq for File

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

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

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