Enum target_spec::TargetSpec
source · [−]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)
An exact target parsed from a triple.
Parsed from strings like "i686-pc-windows-gnu"
.
Expression(TargetExpression)
A complex expression.
Parsed from strings like "cfg(any(windows, target_arch = \"x86_64\"))"
.
Implementations
sourceimpl TargetSpec
impl TargetSpec
Trait Implementations
sourceimpl Clone for TargetSpec
impl Clone for TargetSpec
sourcefn clone(&self) -> TargetSpec
fn clone(&self) -> TargetSpec
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for TargetSpec
impl Debug for TargetSpec
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
🔬 This is a nightly-only experimental API. (
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more