2 个稳定版本
1.0.1 | 2022年3月26日 |
---|
#2580 in Rust 模式
7KB
117 行
into-a-byte
从作为位开关的元组成员构建 ORed 字节。
示例
构建的字节用于发送到 I2C 设备,例如。
use into_a_bit::*;
enum FunctionA {
Enabled = 1 << 3,
Disabled = 0,
}
enum FunctionB {
Enabled = 1 << 2,
Disabled = 0,
}
enum FunctionC {
Enabled = 1 << 1,
Disabled = 0,
}
enum FunctionD {
Enabled = 1,
Disabled = 0,
}
enums_into_u8!(FunctionA, FunctionB, FunctionC, FunctionD);
fn send_to_device(value: (FunctionA, FunctionB, FunctionC, FunctionD)) {
// A byte for send to a register for example.
let byte = value.into_a_byte();
// TODO
}
fn main() {
send_to_device((
FunctionA::Enabled,
FunctionB::Disabled,
FunctionC::Enabled,
FunctionD::Enabled,
));
}