【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"
相关推荐
萧鼎14 小时前
用 Python 和 Rust 构建可微分的分子势能模型:深入解析 MOLPIPx 库
开发语言·python·rust
白总Server17 小时前
AxumStatusCode细化Rust Web标准格式响应
java·linux·运维·服务器·开发语言·http·rust
Humbunklung17 小时前
Rust 的Hello World
开发语言·后端·rust
2506_9188465417 小时前
Solana账户创建与Rust实践全攻略
开发语言·后端·rust
Tockm1 天前
mac 下安装Rust Toolchain(Nightly)
开发语言·macos·rust
Humbunklung1 天前
Rust编程环境安装
开发语言·后端·rust
ALex_zry1 天前
Rust并发编程实践指南
大数据·网络·rust
hdsoft_huge1 天前
VUE npm ERR! code ERESOLVE, npm ERR! ERESOLVE could not resolve, 错误有效解决
vue.js·rust·npm
无名之逆3 天前
WebSocket Broadcasting with hyperlane
网络·websocket·网络协议·http·rust
刃神太酷啦3 天前
类和对象(5)--《Hello C++ Wrold!》(7)--(C/C++)--构造函数的初始化列表,explicit关键词,友元,内部类和匿名对象
java·c语言·c++·算法·rust·动态规划