pub enum Meta {
Path(Path),
List(MetaList),
NameValue(MetaNameValue),
}
Expand description
Content of a compile-time structured attribute.
Path
A meta path is like the test
in #[test]
.
List
A meta list is like the derive(Copy)
in #[derive(Copy)]
.
NameValue
A name-value meta is like the path = "..."
in #[path = "sys/windows.rs"]
.
Syntax tree enum
This type is a syntax tree enum.
Variants§
Path(Path)
List(MetaList)
A structured list within an attribute, like derive(Copy, Clone)
.
NameValue(MetaNameValue)
A name-value pair within an attribute, like feature = "nightly"
.
Implementations§
source§impl Meta
impl Meta
sourcepub fn path(&self) -> &Path
pub fn path(&self) -> &Path
Returns the path that begins this structured meta item.
For example this would return the test
in #[test]
, the derive
in
#[derive(Copy)]
, and the path
in #[path = "sys/windows.rs"]
.
sourcepub fn require_path_only(&self) -> Result<&Path>
pub fn require_path_only(&self) -> Result<&Path>
Error if this is a Meta::List
or Meta::NameValue
.
sourcepub fn require_list(&self) -> Result<&MetaList>
pub fn require_list(&self) -> Result<&MetaList>
Error if this is a Meta::Path
or Meta::NameValue
.
sourcepub fn require_name_value(&self) -> Result<&MetaNameValue>
pub fn require_name_value(&self) -> Result<&MetaNameValue>
Error if this is a Meta::Path
or Meta::List
.
Trait Implementations§
source§impl From<MetaNameValue> for Meta
impl From<MetaNameValue> for Meta
source§fn from(e: MetaNameValue) -> Meta
fn from(e: MetaNameValue) -> Meta
Converts to this type from the input type.
source§impl ToTokens for Meta
impl ToTokens for Meta
source§fn to_tokens(&self, tokens: &mut TokenStream)
fn to_tokens(&self, tokens: &mut TokenStream)
source§fn to_token_stream(&self) -> TokenStream
fn to_token_stream(&self) -> TokenStream
source§fn into_token_stream(self) -> TokenStreamwhere
Self: Sized,
fn into_token_stream(self) -> TokenStreamwhere
Self: Sized,
Auto Trait Implementations§
impl RefUnwindSafe for Meta
impl !Send for Meta
impl !Sync for Meta
impl Unpin for Meta
impl UnwindSafe for Meta
Blanket Implementations§
source§impl<T> Spanned for Twhere
T: Spanned + ?Sized,
impl<T> Spanned for Twhere
T: Spanned + ?Sized,
source§fn 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.