pub(crate) struct SyntheticAttrState {
cfg_trace: ThinVec<(CfgEntry, Span)>,
cfg_attr_trace: ThinVec<(CfgEntry, Span)>,
}Expand description
Contains the state necessary to convert synthetic attributes to parsed attributes.
The only conversion that really happens here is that multiple synthetic attributes are
merged into a single rustc_attr_ir::attribute, representing their combined state.
FIXME: We should make this a nice and extendable system if this is going to be used more often
Fields§
§cfg_trace: ThinVec<(CfgEntry, Span)>Attribute state for SyntheticAttr::CfgTrace attributes.
cfg_attr_trace: ThinVec<(CfgEntry, Span)>Attribute state for SyntheticAttr::CfgAttrTrace attributes.
Implementations§
Source§impl SyntheticAttrState
impl SyntheticAttrState
pub(crate) fn accept_synthetic_attr( &mut self, attr_span: Span, lower_span: impl Copy + Fn(Span) -> Span, synthetic: &SyntheticAttr, )
pub(crate) fn finalize_synthetic_attrs(self, attributes: &mut Vec<Attribute>)
Trait Implementations§
Source§impl Default for SyntheticAttrState
impl Default for SyntheticAttrState
Source§fn default() -> SyntheticAttrState
fn default() -> SyntheticAttrState
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl DynSend for SyntheticAttrState
impl DynSync for SyntheticAttrState
impl Freeze for SyntheticAttrState
impl RefUnwindSafe for SyntheticAttrState
impl Send for SyntheticAttrState
impl Sync for SyntheticAttrState
impl Unpin for SyntheticAttrState
impl UnsafeUnpin for SyntheticAttrState
impl UnwindSafe for SyntheticAttrState
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
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
Source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
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: 16 bytes