3个不稳定版本
0.2.1 | 2022年7月15日 |
---|---|
0.2.0 | 2022年7月15日 |
0.1.0 | 2022年7月14日 |
#143 in #quick
24 每月下载量
用于 separable
8KB
139 行
将枚举分离的特质
一个帮助将枚举向量拆分成具有每个变体的向量的元组的特质。请告诉我是否可以在不使用宏的情况下在Rust中实现此功能。
use separable::Separable;
#[derive(Separable)]
enum Temperature {
Celsius(f64),
Fahrenheit(f64),
Kelvin(f64)
}
fn main() {
// A bunch of measurements...
let measurements = vec![
Temperature::Celsius(23.0),
Temperature::Fahrenheit(2.0),
Temperature::Celsius(22.5),
Temperature::Kelvin(288.0),
Temperature::Celsius(23.1),
Temperature::Fahrenheit(5.0)
];
// We separate all the variants, in order
let (celsius, fahrenheit, kelvin) = measurements.into_iter().collect();
// Quick verification
assert_eq!(celsius, vec![23.0f64, 22.5f64, 23.1f64]);
assert_eq!(fahrenheit, vec![2.0f64, 5.0f64]);
assert_eq!(kelvin, vec![288.0f64]);
}
依赖项
~1.5MB
~35K SLoC