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 Tokens. Read more


Convert self directly into a Tokens 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