#[non_exhaustive]pub enum PlatformSpec {
Always,
Platform(Arc<Platform>),
Any,
}
Expand description
A specifier for a single platform, or for a range of platforms.
Some uses of guppy
care about a single platform, and others care about queries against the
intersection of all hypothetical platforms, or against a union of any of them. PlatformSpec
handles the
PlatformSpec
does not currently support expressions, but it might in the future, using an
SMT solver.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Always
The intersection of all platforms.
Dependency queries performed against this variant will return EnabledTernary::Enabled
if
and only if a dependency is not platform-dependent. They can never return
EnabledTernary::Unknown
.
This variant does not currently understand expressions that always evaluate to true
(tautologies), like cfg(any(unix, not(unix)))
or cfg(all())
. In the future, an SMT
solver would be able to handle such expressions.
Platform(Arc<Platform>)
An individual platform.
Dependency queries performed against this variant will return EnabledTernary::Enabled
if
and only if a dependency is enabled on this platform. They may also return
EnabledTernary::Unknown
if a platform is not enabled.
Any
The union of all platforms.
Dependency queries performed against this variant will return EnabledTernary::Enabled
if
a dependency is enabled on any platform.
This variant does not currently understand expressions that always evaluate to false
(contradictions), like cfg(all(unix, not(unix)))
or cfg(any())
. In the future, an SMT
solver would be able to handle such expressions.
Implementations§
Source§impl PlatformSpec
impl PlatformSpec
Sourcepub fn current() -> Result<Self, TargetSpecError>
pub fn current() -> Result<Self, TargetSpecError>
Returns a PlatformSpec
corresponding to the current platform, as detected at build time.
Returns an error if the current platform was unknown to the version of target-spec
in
use.
Trait Implementations§
Source§impl Clone for PlatformSpec
impl Clone for PlatformSpec
Source§fn clone(&self) -> PlatformSpec
fn clone(&self) -> PlatformSpec
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more