Struct rustc_ap_rustc_ast::ast::Item [−][src]
pub struct Item<K = ItemKind> { pub attrs: Vec<Attribute>, pub id: NodeId, pub span: Span, pub vis: Visibility, pub ident: Ident, pub kind: K, pub tokens: Option<LazyTokenStream>, }
Expand description
An item definition.
Fields
attrs: Vec<Attribute>
id: NodeId
span: Span
vis: Visibility
ident: Ident
The name of the item. It might be a dummy name in case of anonymous items.
kind: K
tokens: Option<LazyTokenStream>
Original tokens this item was parsed from. This isn’t necessarily
available for all items, although over time more and more items should
have this be Some
. Right now this is primarily used for procedural
macros, notably custom attributes.
Note that the tokens here do not include the outer attributes, but will include inner attributes.
Implementations
impl Item
[src]
impl Item
[src]pub fn span_with_attributes(&self) -> Span
[src]
pub fn span_with_attributes(&self) -> Span
[src]Return the span that encompasses the attributes.
Trait Implementations
impl AstLike for Item
[src]
impl AstLike for Item
[src]const SUPPORTS_CUSTOM_INNER_ATTRS: bool
[src]
const SUPPORTS_CUSTOM_INNER_ATTRS: bool
[src]This is true
if this AstLike
might support ‘custom’ (proc-macro) inner
attributes. Attributes like #![cfg]
and #![cfg_attr]
are not
considered ‘custom’ attributes Read more
fn attrs(&self) -> &[Attribute]
[src]
fn visit_attrs(&mut self, f: impl FnOnce(&mut Vec<Attribute>))
[src]
fn tokens_mut(&mut self) -> Option<&mut Option<LazyTokenStream>>
[src]
Auto Trait Implementations
impl<K = ItemKind> !RefUnwindSafe for Item<K>
impl<K = ItemKind> !Send for Item<K>
impl<K = ItemKind> !Sync for Item<K>
impl<K> Unpin for Item<K> where
K: Unpin,
K: Unpin,
impl<K = ItemKind> !UnwindSafe for Item<K>
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Instrument for T
[src]
impl<T> Instrument for T
[src]fn instrument(self, span: Span) -> Instrumented<Self>
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
fn in_current_span(self) -> Instrumented<Self>
[src]
fn in_current_span(self) -> Instrumented<Self>
[src]impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<'a, T> Captures<'a> for T where
T: ?Sized,
[src]
T: ?Sized,