[][src]Struct syn::Path

pub struct Path {
    pub leading_colon: Option<Colon2>,
    pub segments: Punctuated<PathSegment, Colon2>,
}

A path at which a named item is exported: std::collections::HashMap.

This type is available if Syn is built with the "derive" or "full" feature.

Fields

leading_colon: Option<Colon2>segments: Punctuated<PathSegment, Colon2>

Methods

impl Path
[src]

pub fn parse_mod_style(input: ParseStream) -> Result<Self>
[src]

Parse a Path containing no path arguments on any of its segments.

This function is available if Syn is built with the "parsing" feature.

Example

This code runs with edition 2018
use syn::{Path, Result, Token};
use syn::parse::{Parse, ParseStream};

// A simplified single `use` statement like:
//
//     use std::collections::HashMap;
//
// Note that generic parameters are not allowed in a `use` statement
// so the following must not be accepted.
//
//     use a::<b>::c;
struct SingleUse {
    use_token: Token![use],
    path: Path,
}

impl Parse for SingleUse {
    fn parse(input: ParseStream) -> Result<Self> {
        Ok(SingleUse {
            use_token: input.parse()?,
            path: input.call(Path::parse_mod_style)?,
        })
    }
}

pub fn is_ident<I>(&self, ident: I) -> bool where
    Ident: PartialEq<I>, 
[src]

Determines whether this is a path of length 1 equal to the given ident.

For them to compare equal, it must be the case that:

  • the path has no leading colon,
  • the number of path segments is 1,
  • the first path segment has no angle bracketed or parenthesized path arguments
  • and the ident of the first path segment is equal to the given one.

Trait Implementations

impl Parse for Path
[src]

impl<T> From<T> for Path where
    T: Into<PathSegment>, 
[src]

impl Eq for Path
[src]

impl PartialEq<Path> for Path
[src]

impl Clone for Path
[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for Path
[src]

impl Hash for Path
[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

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

impl ToTokens for Path
[src]

fn into_token_stream(self) -> TokenStream
[src]

Convert self directly into a TokenStream object. Read more

Auto Trait Implementations

impl !Send for Path

impl !Sync for Path

Blanket Implementations

impl<T> Spanned for T where
    T: ToTokens
[src]

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]