Struct syn::Path [−][src]
pub struct Path {
pub leading_colon: Option<Colon2>,
pub segments: Punctuated<PathSegment, Colon2>,
}Expand description
A path at which a named item is exported (e.g. std::collections::HashMap).
This type is available only if Syn is built with the "derive" or "full"
feature.
Fields
leading_colon: Option<Colon2>segments: Punctuated<PathSegment, Colon2>Implementations
impl Path[src]
impl Path[src]pub fn parse_mod_style(input: ParseStream<'_>) -> Result<Self>[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 only if Syn is built with the "parsing"
feature.
Example
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: ?Sized>(&self, ident: &I) -> bool where
Ident: PartialEq<I>, [src]
pub fn is_ident<I: ?Sized>(&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.
This function is available only if Syn is built with the "parsing"
feature.
Example
use syn::{Attribute, Error, Meta, NestedMeta, Result}; fn get_serde_meta_items(attr: &Attribute) -> Result<Vec<NestedMeta>> { if attr.path.is_ident("serde") { match attr.parse_meta()? { Meta::List(meta) => Ok(Vec::from_iter(meta.nested)), bad => Err(Error::new_spanned(bad, "unrecognized attribute")), } } else { Ok(Vec::new()) } }
pub fn get_ident(&self) -> Option<&Ident>[src]
pub fn get_ident(&self) -> Option<&Ident>[src]If this path consists of a single ident, returns the ident.
A path is considered an ident if:
- the path has no leading colon,
- the number of path segments is 1, and
- the first path segment has no angle bracketed or parenthesized path arguments.
This function is available only if Syn is built with the "parsing"
feature.
Trait Implementations
impl<T> From<T> for Path where
T: Into<PathSegment>, [src]
impl<T> From<T> for Path where
T: Into<PathSegment>, [src]impl ToTokens for Path[src]
impl ToTokens for Path[src]fn to_tokens(&self, tokens: &mut TokenStream)[src]
fn to_tokens(&self, tokens: &mut TokenStream)[src]Write self to the given TokenStream. Read more
fn to_token_stream(&self) -> TokenStream[src]
fn to_token_stream(&self) -> TokenStream[src]Convert self directly into a TokenStream object. Read more
fn into_token_stream(self) -> TokenStream[src]
fn into_token_stream(self) -> TokenStream[src]Convert self directly into a TokenStream object. Read more
impl Eq for Path[src]
Auto Trait Implementations
impl RefUnwindSafe for Path
impl !Send for Path
impl !Sync for Path
impl Unpin for Path
impl UnwindSafe for Path
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone, [src]
impl<T> ToOwned for T where
T: Clone, [src]type Owned = T
type Owned = TThe resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn to_owned(&self) -> T[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)[src]
pub fn clone_into(&self, target: &mut T)[src]🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more