【quantity】11 体积单位模块(volume.rs)
我们实现 volume.rs 文件,包含 d(分,deci)、c(厘,centi)、m(毫,milli) 前缀的体积单位。体积的基本单位是 立方米(CubicMeter),而常用的衍生单位包括 升(Liter)(即立方分米)。
一、实现 volume.rs:
/// Volume (cubic meter) / 体积 (立方米)
use super::{Quantity, prefix::*};
use crate::unit::CubicMeter;/// Generic volume with SI prefixes / 带SI前缀的通用体积量
pub type Volume<V, P = NoPrefix> = Quantity<V, P, CubicMeter>;/// Cubic meters / 立方米
pub type CubicMeters<V> = Volume<V, NoPrefix>;/// Cubic decimeters / 立方分米 (1 dm³ = 1 L)
pub type CubicDecimeters<V> = Volume<V, Deci>;/// Cubic centimeters / 立方厘米 (1 cm³ = 1 mL)
pub type CubicCentimeters<V> = Volume<V, Centi>;/// Cubic millimeters / 立方毫米
pub type CubicMillimeters<V> = Volume<V, Milli>;/// Liters / 升 (等同于立方分米)
pub type Liters<V> = CubicDecimeters<V>;/// Milliliters / 毫升 (等同于立方厘米)
pub type Milliliters<V> = CubicCentimeters<V>;
二、说明:
-
基本单位:CubicMeter(立方米)是体积的 SI 基本单位。
-
前缀单位:
-
CubicDecimeters(立方分米,d 前缀,Deci)→ 1 dm³ = 1 L(升)
-
CubicCentimeters(立方厘米,c 前缀,Centi)→ 1 cm³ = 1 mL(毫升)
-
CubicMillimeters(立方毫米,m 前缀,Milli)
- 额外别名:
-
Liters(升)是 CubicDecimeters 的别名,方便使用。
-
Milliliters(毫升)是 CubicCentimeters 的别名,符合常见用法。
三、使用示例:
let water_volume: Liters<f64> = Liters::new(2.0); // 2 升
let small_volume: Milliliters<f64> = Milliliters::new(500.0); // 500 毫升
println!("{} L = {} mL", water_volume, water_volume.into_milliliters());
这样,volume.rs 提供了 d、c、m 前缀的体积单位,并兼容升和毫升的常见用法。