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
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 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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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.