Enum target_spec::TargetSpec [−][src]
pub enum TargetSpec {
Triple(Triple),
Expression(TargetExpression),
}
Expand description
A parsed target specification or triple, as found in a Cargo.toml
file.
Examples
use target_spec::{Platform, TargetFeatures, TargetSpec};
let i686_windows = Platform::new("i686-pc-windows-gnu", TargetFeatures::Unknown).unwrap();
let x86_64_mac = Platform::new("x86_64-apple-darwin", TargetFeatures::none()).unwrap();
let i686_linux = Platform::new(
"i686-unknown-linux-gnu",
TargetFeatures::features(["sse2"].iter().copied()),
).unwrap();
let spec: TargetSpec = "cfg(any(windows, target_arch = \"x86_64\"))".parse().unwrap();
assert_eq!(spec.eval(&i686_windows), Some(true), "i686 Windows");
assert_eq!(spec.eval(&x86_64_mac), Some(true), "x86_64 MacOS");
assert_eq!(spec.eval(&i686_linux), Some(false), "i686 Linux (should not match)");
let spec: TargetSpec = "cfg(any(target_feature = \"sse2\", target_feature = \"sse\"))".parse().unwrap();
assert_eq!(spec.eval(&i686_windows), None, "i686 Windows features are unknown");
assert_eq!(spec.eval(&x86_64_mac), Some(false), "x86_64 MacOS matches no features");
assert_eq!(spec.eval(&i686_linux), Some(true), "i686 Linux matches some features");
Variants
Triple(Triple)
Tuple Fields
0: Triple
An exact target parsed from a triple.
Parsed from strings like "i686-pc-windows-gnu"
.
Expression(TargetExpression)
Tuple Fields
A complex expression.
Parsed from strings like "cfg(any(windows, target_arch = \"x86_64\"))"
.
Implementations
Creates a new target from a string.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for TargetSpec
impl Send for TargetSpec
impl Sync for TargetSpec
impl Unpin for TargetSpec
impl UnwindSafe for TargetSpec
Blanket Implementations
Mutably borrows from an owned value. Read more