3个版本 (重大更新)
0.3.0 | 2023年12月18日 |
---|---|
0.2.0 | 2023年12月2日 |
0.1.0 | 2023年11月30日 |
#611 in 数学
在 2 个软件包中使用
41KB
465 行
Simmer
一个Rust库包,用于表示一些标准的温度单位。它与嵌入式系统兼容,可以轻松地在单位之间转换,并在你准备好离开时解开内部值。
功能
Temperature
,一个存储某些温度的浮点数包装器CheckedTemperature
类型,仅允许 '正确' 的温度Display
、Debug
和对应的ufmt
- 支持
f32
和f64
- 嵌入式系统友好并经过测试
用法
这个库包没有太多细节。你可以从下面的代码开始!
use simmer::Temperature;
fn main() {
let ice = Temperature::Fahrenheit(32.0);
println!("water freezes at {ice} degrees fahrenheit");
let ice_c = ice.to_celsius();
println!("water freezes at {ice_c} degrees celsius");
let ice_raw_c: f64 = ice_c.into();
println!("here's a number: {ice_raw_c}");
}
已验证
还有一个 CheckedTemperature 类型,用于安全地存储和使用温度。以下是一个快速示例:
fn main() -> anyhow::Result<()> {
let ice = CheckedTemperature::new(Temperature::Fahrenheit(32.0))?;
println!("water freezes at {ice} degrees fahrenheit");
let ice_c = ice.to_celsius()?;
let ice_raw_c: f64 = ice_c.into(); // can also use `f32` 😄
println!("here's a number: {ice_raw_c}");
Ok(())
}
贡献
如果你觉得某些内容不合适(或者你有新的功能),请随时提交拉取请求!尤其是对于错误,你不需要浪费任何时间。
另一方面,请在添加任何新功能之前创建一个问题。感谢你帮助使这个库包变得更好!🤩
依赖关系
~1.5MB
~37K SLoC