【quantity】0 README.md文件

PhysUnits · 物理单位库

Type-safe physical quantities with dimensional analysis
带量纲分析的类型安全物理量库

A Rust library for safe unit operations /

Rust实现的类型安全单位计算库

Core Design / 核心设计

1. Dimension / 量纲

rust 复制代码
/// Base SI dimensions / 国际单位制基本量纲
pub struct Dimension<
    L: Integer,  // Length (m) / 长度(米)
    M: Integer,  // Mass (kg) / 质量(千克)
    T: Integer,  // Time (s) / 时间(秒)
    I: Integer,  // Current (A) / 电流(安培)
    Th: Integer, // Temperature (K) / 温度(开尔文) 
    N: Integer,  // Amount (mol) / 物质的量(摩尔)
    J: Integer   // Luminosity (cd) / 发光强度(坎德拉)
>(PhantomData<(L, M, T, I, Th, N, J)>);

2. Unit / 单位

rust 复制代码
/// Unit conversion rules / 单位转换规则
pub trait Unit {
    type Dimension;
    
    /// Convert to base unit / 转换到基准单位
    fn to_base(value: f64) -> f64;
    
    /// Unit symbol / 单位符号
    const SYMBOL: &'static str;
}

3. Quantity / 物理量

rust 复制代码
/// Physical quantity with value and unit / 带单位和值的物理量
pub struct Quantity<V, U: Unit> {
    /// Scalar value / 标量值
    pub value: V,
    _unit: PhantomData<U>
}

impl<V, U: Unit> Quantity<V, U> {
    /// Create new quantity / 创建新物理量
    pub fn new(value: V) -> Self {
        Self { value, _unit: PhantomData }
    }
}

Usage / 使用示例

Basic Conversion / 基础转换

rust 复制代码
use physunits::{Meter, Inch, Quantity};

// Create length / 创建长度
let length = Quantity::<f64, Meter>::new(2.0);

// Convert units / 单位转换
let inches = length.convert::<Inch>();
println!("{} m = {} in", length.value, inches.value);

Temperature / 温度转换

rust 复制代码
use physunits::{Celsius, Fahrenheit};

let boiling = Quantity::<f64, Celsius>::new(100.0);
let fahr = boiling.convert::<Fahrenheit>();
println!("Water boils at {} °F", fahr.value); 

Force Calculation / 力的计算

rust 复制代码
use physunits::{kg, m, s, N};

let mass = 5.0 * kg;
let acceleration = 9.8 * m / (s * s);
let force: Quantity<f64, N> = mass * acceleration;
println!("Force: {} N", force.value);

Features / 特性

Feature 功能描述
📏 Compile-time dimensional safety 编译期量纲安全
⚡ Zero runtime overhead 零运行时开销
🔢 Integer & float support 支持整数和浮点数
🔄 Automatic unit conversion 自动单位转换

Installation / 安装

toml 复制代码
[dependencies]
physunits = "0.0.1"
相关推荐
ServBay34 分钟前
这9个高性能的Rust库不容错过
后端·rust
Rust研习社2 小时前
Rust 堆内存指针 Box 详解
开发语言·后端·rust
Jacky-0083 小时前
Rust安装(MinGw64编译器安装)
开发语言·后端·rust
咚为7 小时前
深入理解 Rust 的静态分发与动态分发:从 `impl Trait` 到 `dyn Trait`
开发语言·后端·rust
中国胖子风清扬7 小时前
基于GPUI框架构建现代化待办事项应用:从架构设计到业务落地
java·spring boot·macos·小程序·rust·uni-app·web app
爱分享的阿Q1 天前
RustWebAssembly商用元年从实验到生产完整迁移指南
rust·web·wasm
大卫小东(Sheldon)1 天前
Rudist v0.5.1 发布:AI 驱动的 Redis 客户端,更快、更直观
rust·rudist
潇洒畅想1 天前
1.2 希腊字母速查表 + 公式阅读实战
java·人工智能·python·算法·rust·云计算
刘彬_bing1 天前
Rust 锁的终极指南:为什么标准库不够用?第三方锁如何拯救你的并发性能!
rust