pub struct Path {
pub leading_colon: Option<PathSep>,
pub segments: Punctuated<PathSegment, PathSep>,
}
Expand description
A path at which a named item is exported (e.g. std::collections::HashMap
).
Fields§
§leading_colon: Option<PathSep>
§segments: Punctuated<PathSegment, PathSep>
Implementations§
source§impl Path
impl Path
sourcepub fn is_ident<I: ?Sized>(&self, ident: &I) -> boolwhere
Ident: PartialEq<I>,
pub fn is_ident<I: ?Sized>(&self, ident: &I) -> boolwhere
Ident: PartialEq<I>,
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.
Example
use proc_macro2::TokenStream;
use syn::{Attribute, Error, Meta, Result};
fn get_serde_meta_item(attr: &Attribute) -> Result<Option<&TokenStream>> {
if attr.path().is_ident("serde") {
match &attr.meta {
Meta::List(meta) => Ok(Some(&meta.tokens)),
bad => Err(Error::new_spanned(bad, "unrecognized attribute")),
}
} else {
Ok(None)
}
}