pub enum Meta {
Path(Path),
List(MetaList),
NameValue(MetaNameValue),
}
full
or derive
only.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>
Available on crate feature parsing
only.
pub fn require_path_only(&self) -> Result<&Path>
parsing
only.Error if this is a Meta::List
or Meta::NameValue
.
Sourcepub fn require_list(&self) -> Result<&MetaList>
Available on crate feature parsing
only.
pub fn require_list(&self) -> Result<&MetaList>
parsing
only.Error if this is a Meta::Path
or Meta::NameValue
.
Sourcepub fn require_name_value(&self) -> Result<&MetaNameValue>
Available on crate feature parsing
only.
pub fn require_name_value(&self) -> Result<&MetaNameValue>
parsing
only.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 Parse for Meta
Available on crate feature parsing
only.
impl Parse for Meta
parsing
only.fn parse(input: ParseStream<'_>) -> Result<Self>
Source§impl ToTokens for Meta
Available on crate feature printing
only.
impl ToTokens for Meta
printing
only.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,
impl Eq for Meta
extra-traits
only.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
parsing
and printing
only.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