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
sourceimpl Cfg
impl Cfg
sourcefn parse_nested(
nested_cfg: &NestedMetaItem,
exclude: &FxHashSet<Cfg>
) -> Result<Option<Cfg>, InvalidCfgError>
fn parse_nested(
nested_cfg: &NestedMetaItem,
exclude: &FxHashSet<Cfg>
) -> Result<Option<Cfg>, InvalidCfgError>
Parses a NestedMetaItem
into a Cfg
.
pub(crate) fn parse_without(
cfg: &MetaItem,
exclude: &FxHashSet<Cfg>
) -> Result<Option<Cfg>, InvalidCfgError>
sourcepub(crate) fn parse(cfg: &MetaItem) -> Result<Cfg, InvalidCfgError>
pub(crate) fn parse(cfg: &MetaItem) -> 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,
parse_sess: &ParseSess,
features: Option<&Features>
) -> bool
pub(crate) fn matches(
&self,
parse_sess: &ParseSess,
features: Option<&Features>
) -> 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.
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: &Cfg) -> Option<Cfg>
pub(crate) fn simplify_with(&self, assume: &Cfg) -> Option<Cfg>
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.
Trait Implementations
sourceimpl BitAndAssign<Cfg> for Cfg
impl BitAndAssign<Cfg> for Cfg
sourcefn bitand_assign(&mut self, other: Cfg)
fn bitand_assign(&mut self, other: Cfg)
&=
operation. Read moresourceimpl BitOrAssign<Cfg> for Cfg
impl BitOrAssign<Cfg> for Cfg
sourcefn bitor_assign(&mut self, other: Cfg)
fn bitor_assign(&mut self, other: Cfg)
|=
operation. Read moreimpl Eq for Cfg
impl StructuralEq for Cfg
impl StructuralPartialEq for Cfg
Auto Trait Implementations
impl RefUnwindSafe for Cfg
impl Send for Cfg
impl Sync for Cfg
impl Unpin for Cfg
impl UnwindSafe for Cfg
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn 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>,
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
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