pub struct Directive {
pub is_rustc_attr: bool,
pub condition: Option<OnUnimplementedCondition>,
pub subcommands: ThinVec<Directive>,
pub message: Option<(Span, FormatString)>,
pub label: Option<(Span, FormatString)>,
pub notes: ThinVec<FormatString>,
pub parent_label: Option<FormatString>,
pub append_const_msg: Option<AppendConstMessage>,
}Fields§
§is_rustc_attr: bool§condition: Option<OnUnimplementedCondition>§subcommands: ThinVec<Directive>§message: Option<(Span, FormatString)>§label: Option<(Span, FormatString)>§notes: ThinVec<FormatString>§parent_label: Option<FormatString>§append_const_msg: Option<AppendConstMessage>Implementations§
Source§impl Directive
impl Directive
Sourcepub fn visit_params(&self, visit: &mut impl FnMut(Symbol, Span))
pub fn visit_params(&self, visit: &mut impl FnMut(Symbol, Span))
Visit all the generic arguments used in the attribute, to see whether they are actually a
generic of the item. If not then visit must issue a diagnostic.
We can’t check this while parsing the attribute because rustc_attr_parsing doesn’t have
access to the item an attribute is on. Instead we later call this function in check_attr.
pub fn evaluate_directive( &self, trait_name: impl Debug, condition_options: &ConditionOptions, args: &FormatArgs, ) -> OnUnimplementedNote
Trait Implementations§
Source§impl<__D: SpanDecoder> Decodable<__D> for Directive
impl<__D: SpanDecoder> Decodable<__D> for Directive
Source§impl<__E: SpanEncoder> Encodable<__E> for Directive
impl<__E: SpanEncoder> Encodable<__E> for Directive
Source§impl<__CTX> HashStable<__CTX> for Directivewhere
__CTX: HashStableContext,
impl<__CTX> HashStable<__CTX> for Directivewhere
__CTX: HashStableContext,
fn hash_stable(&self, __hcx: &mut __CTX, __hasher: &mut StableHasher)
Source§impl PrintAttribute for Directive
impl PrintAttribute for Directive
Source§fn should_render(&self) -> bool
fn should_render(&self) -> bool
Whether or not this will render as something meaningful, or if it’s skipped
(which will force the containing struct to also skip printing a comma
and the field name).
fn print_attribute(&self, __p: &mut Printer)
Auto Trait Implementations§
impl DynSend for Directive
impl DynSync for Directive
impl Freeze for Directive
impl RefUnwindSafe for Directive
impl Send for Directive
impl Sync for Directive
impl Unpin for Directive
impl UnsafeUnpin for Directive
impl UnwindSafe for Directive
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§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>
impl<T> ErasedDestructor for Twhere
T: 'static,
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: 144 bytes