Expand description
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
sourceimpl ToTokens for File
 
impl ToTokens for File
sourcefn to_tokens(&self, tokens: &mut TokenStream)
 
fn to_tokens(&self, tokens: &mut TokenStream)
Write self to the given TokenStream. Read more
sourcefn to_token_stream(&self) -> TokenStream
 
fn to_token_stream(&self) -> TokenStream
Convert self directly into a TokenStream object. Read more
sourcefn into_token_stream(self) -> TokenStream
 
fn into_token_stream(self) -> TokenStream
Convert self directly into a TokenStream object. Read more
Auto Trait Implementations
impl RefUnwindSafe for File
impl !Send for File
impl !Sync for File
impl Unpin for File
impl UnwindSafe for File
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
    T: ?Sized, 
 
impl<T> BorrowMut<T> for T where
    T: ?Sized, 
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Spanned for T where
    T: Spanned + ?Sized, 
 
impl<T> Spanned for T where
    T: Spanned + ?Sized, 
sourcefn span(&self) -> Span
 
fn span(&self) -> Span
Returns a Span covering the complete contents of this syntax tree
node, or Span::call_site() if this node is empty. Read more