31 个版本 (17 个稳定版)

3.2.1 2024年7月31日
3.1.0 2024年2月4日
3.0.1 2023年7月29日
2.0.1 2023年6月19日
0.1.0 2020年3月21日

#290解析器实现

Download history 72712/week @ 2024-04-20 53922/week @ 2024-04-27 64914/week @ 2024-05-04 65979/week @ 2024-05-11 60168/week @ 2024-05-18 50601/week @ 2024-05-25 53519/week @ 2024-06-01 57266/week @ 2024-06-08 57920/week @ 2024-06-15 61370/week @ 2024-06-22 45540/week @ 2024-06-29 54302/week @ 2024-07-06 56184/week @ 2024-07-13 54021/week @ 2024-07-20 48363/week @ 2024-07-27 35303/week @ 2024-08-03

203,903 每月下载量
59 个crate中(8 个直接) 使用

MIT/Apache

96KB
1.5K SLoC

target-spec

target-spec on crates.io Documentation (latest release) Documentation (main) Changelog License License

针对平台三元组评估 Cargo.toml 目标规范。

Cargo 支持以下平台特定的依赖项

# 1. As Rust-like `#[cfg]` syntax.
[target.'cfg(all(unix, target_arch = "x86_64"))'.dependencies]
native = { path = "native/x86_64" }

# 2. Listing out the full target triple.
[target.x86_64-pc-windows-gnu.dependencies]
winhttp = "0.4.0"

target-spec 提供了 eval API,可以用来判断这样的依赖项是否会在特定平台上包含。

use target_spec::eval;

// Evaluate Rust-like `#[cfg]` syntax.
let cfg_target = "cfg(all(unix, target_arch = \"x86_64\"))";
assert_eq!(eval(cfg_target, "x86_64-unknown-linux-gnu").unwrap(), Some(true));
assert_eq!(eval(cfg_target, "i686-unknown-linux-gnu").unwrap(), Some(false));
assert_eq!(eval(cfg_target, "x86_64-pc-windows-msvc").unwrap(), Some(false));

// Evaluate a full target-triple.
assert_eq!(eval("x86_64-unknown-linux-gnu", "x86_64-unknown-linux-gnu").unwrap(), Some(true));
assert_eq!(eval("x86_64-unknown-linux-gnu", "x86_64-pc-windows-msvc").unwrap(), Some(false));

对于更高级的使用,请参阅 PlatformTargetSpec

可选特性

  • custom:通过 Platform::new_custom 添加对 自定义目标 的支持。
  • summaries:将 summaries 模块添加到其中,以启用 PlatformTargetFeatures 的序列化。
  • proptest1:启用使用 proptestPlatformTargetFeatures 进行属性测试的支持。

最低支持的 Rust 版本

最低支持的 Rust 版本 (MSRV) 是

  • 对于 target-spec 3.0.x: Rust 1.66
  • 对于 target-spec 3.1.x: Rust 1.73
  • 对于 target-spec 3.2.x: Rust 1.75

在 3.x 系列中,MSRV 的提升将伴随着次要版本更新。

为了美化打印目标规范错误,建议使用miette诊断库和target-spec-miette

贡献

有关如何帮助的说明,请参阅CONTRIBUTING文件。

许可证

该项目可在Apache 2.0许可证MIT许可证下使用。

依赖

~0.3–1.2MB
~25K SLoC