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,
impl Eq for Meta
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.