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(meta: MetaNameValue) -> Meta
fn from(meta: MetaNameValue) -> Meta
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 Freeze for Meta
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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
Span
covering the complete contents of this syntax tree
node, or Span::call_site()
if this node is empty.Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 232 bytes
Size for each variant:
Path
: 56 bytesList
: 104 bytesNameValue
: 232 bytes