pub(crate) enum Cfg {
True,
False,
Cfg(Symbol, Option<Symbol>),
Not(Box<Cfg>),
Any(Vec<Cfg>),
All(Vec<Cfg>),
}Variants§
True
Accepts all configurations.
False
Denies all configurations.
Cfg(Symbol, Option<Symbol>)
A generic configuration option, e.g., test or target_os = "linux".
Not(Box<Cfg>)
Negates a configuration requirement, i.e., not(x).
Any(Vec<Cfg>)
Union of a list of configuration requirements, i.e., any(...).
All(Vec<Cfg>)
Intersection of a list of configuration requirements, i.e., all(...).
Implementations§
Source§impl Cfg
impl Cfg
Sourcefn parse_nested(
nested_cfg: &MetaItemInner,
exclude: &FxHashSet<Cfg>,
) -> Result<Option<Cfg>, InvalidCfgError>
fn parse_nested( nested_cfg: &MetaItemInner, exclude: &FxHashSet<Cfg>, ) -> Result<Option<Cfg>, InvalidCfgError>
Parses a MetaItemInner into a Cfg.
pub(crate) fn parse_without( cfg: &MetaItem, exclude: &FxHashSet<Cfg>, ) -> Result<Option<Cfg>, InvalidCfgError>
Sourcepub(crate) fn parse(cfg: &MetaItemInner) -> Result<Cfg, InvalidCfgError>
pub(crate) fn parse(cfg: &MetaItemInner) -> Result<Cfg, InvalidCfgError>
Parses a MetaItem into a Cfg.
The MetaItem should be the content of the #[cfg(...)], e.g., unix or
target_os = "redox".
If the content is not properly formatted, it will return an error indicating what and where the error is.
Sourcepub(crate) fn matches(&self, psess: &ParseSess) -> bool
pub(crate) fn matches(&self, psess: &ParseSess) -> bool
Checks whether the given configuration can be matched in the current session.
Equivalent to attr::cfg_matches.
Sourcepub(crate) fn render_short_html(&self) -> String
pub(crate) fn render_short_html(&self) -> String
Renders the configuration for human display, as a short HTML description.
fn render_long_inner(&self, format: Format) -> String
Sourcepub(crate) fn render_long_html(&self) -> String
pub(crate) fn render_long_html(&self) -> String
Renders the configuration for long display, as a long HTML description.
Sourcepub(crate) fn render_long_plain(&self) -> String
pub(crate) fn render_long_plain(&self) -> String
Renders the configuration for long display, as a long plain text description.
fn should_capitalize_first_letter(&self) -> bool
fn should_append_only_to_description(&self) -> bool
fn should_use_with_in_description(&self) -> bool
Sourcepub(crate) fn simplify_with(&self, assume: &Self) -> Option<Self>
pub(crate) fn simplify_with(&self, assume: &Self) -> Option<Self>
Attempt to simplify this cfg by assuming that assume is already known to be true, will
return None if simplification managed to completely eliminate any requirements from this
Cfg.
See tests::test_simplify_with for examples.
fn omit_preposition(&self) -> bool
Trait Implementations§
Source§impl BitAndAssign for Cfg
impl BitAndAssign for Cfg
Source§fn bitand_assign(&mut self, other: Cfg)
fn bitand_assign(&mut self, other: Cfg)
&= operation. Read moreSource§impl BitOrAssign for Cfg
impl BitOrAssign for Cfg
Source§fn bitor_assign(&mut self, other: Cfg)
fn bitor_assign(&mut self, other: Cfg)
|= operation. Read moreimpl Eq for Cfg
impl StructuralPartialEq for Cfg
Auto Trait Implementations§
impl Freeze for Cfg
impl RefUnwindSafe for Cfg
impl Send for Cfg
impl Sync for Cfg
impl Unpin for Cfg
impl UnwindSafe for Cfg
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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>
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 more§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§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: 32 bytes
Size for each variant:
True: 0 bytesFalse: 0 bytesCfg: 8 bytesNot: 12 bytesAny: 28 bytesAll: 28 bytes