#[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>
👎Deprecated since 0.17.13: this method has been renamed to build_target
pub fn current() -> Result<Self, TargetSpecError>
build_target
Previous name for Self::build_target
, renamed to clarify what
current
means.
This method is deprecated and will be removed in a future version.
Sourcepub fn build_target() -> Result<Self, TargetSpecError>
pub fn build_target() -> Result<Self, TargetSpecError>
Returns a PlatformSpec
corresponding to the target platform, as
determined at build time.
Returns an error if the build target 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 moreSource§impl Debug for PlatformSpec
impl Debug for PlatformSpec
Auto Trait Implementations§
impl Freeze for PlatformSpec
impl RefUnwindSafe for PlatformSpec
impl Send for PlatformSpec
impl Sync for PlatformSpec
impl Unpin for PlatformSpec
impl UnwindSafe for PlatformSpec
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,
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