#temperature #celsius #fahrenheit #kelvin #temp

无需std simmer

Rust的温度单位库。它旨在最小化、嵌入式系统友好,且易于使用!

3个版本 (重大更新)

0.3.0 2023年12月18日
0.2.0 2023年12月2日
0.1.0 2023年11月30日

#611 in 数学


2 个软件包中使用

MIT 许可证

41KB
465

Simmer

一个Rust库包,用于表示一些标准的温度单位。它与嵌入式系统兼容,可以轻松地在单位之间转换,并在你准备好离开时解开内部值。

功能

  • Temperature,一个存储某些温度的浮点数包装器
  • CheckedTemperature 类型,仅允许 '正确' 的温度
  • DisplayDebug 和对应的 ufmt
  • 支持 f32f64
  • 嵌入式系统友好并经过测试

用法

这个库包没有太多细节。你可以从下面的代码开始!

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