7个版本 (稳定版)
2.0.0 | 2020年10月10日 |
---|---|
1.1.0 | 2020年5月18日 |
1.0.3 | 2020年3月27日 |
1.0.2 | 2020年3月26日 |
0.0.0 | 2020年3月25日 |
#590 in 数学
用于 osmgraphing
25KB
665 行
单位 保持小巧简单
欢迎! :)
此仓库的目标是提供一个简单且明确的单位实现,没有特殊功能或复杂/隐含的行为。
以下是一个示例,包括一个禁止隐式行为的示例代码片段
use kissunits::{
distance::{Kilometers, Meters},
time::{Hours, Seconds},
};
fn main() {
// use the struct directly
let m = Meters(72_000.0);
let h = Hours(2.0);
// compile-error since resulting unit is not clear
println!("{}", m / h); // ERROR
// prints 36 km/h
let km = Kilometers::from(m);
println!("{} / {} = {}", km, h, km / h);
// prints 10 m/s
let s = Seconds::from(h);
println!("{} / {} = {}", m, s, m / s);
}
有人可能会说,结果类型可以明确指定,例如
let mps: MetersPerSecond = m / h;
但这会导致隐式舍入误差。
设置和使用
Rust有一个名为cargo
的构建工具,可以用来运行除了scripts/
中的脚本之外的所有内容。
# Just executing some easy cargo-build-commands
./scripts/build.sh
# Run the example
cargo run --example basic
致谢
该项目始于2020年初。本节向该项目的工人和助手致敬,按姓氏排序。
Dominic Parga Cacheiro
编写了这些单位。