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]
fn clone(&self) -> Self
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for File
[src]
impl Eq for File
[src]
impl Hash for File
[src]
fn hash<H>(&self, state: &mut H) where
H: Hasher,
[src]
H: Hasher,
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl Parse for File
[src]
fn parse(input: ParseStream<'_>) -> Result<Self>
[src]
impl PartialEq<File> for File
[src]
impl ToTokens for File
[src]
fn to_tokens(&self, tokens: &mut TokenStream)
[src]
pub fn to_token_stream(&self) -> TokenStream
[src]
pub fn into_token_stream(self) -> TokenStream
[src]
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
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Spanned for T where
T: Spanned + ?Sized,
[src]
T: Spanned + ?Sized,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,