#byte #bit #tuple #i2c #enums #send #switch

into-a-byte

从 Into<u8> 元组的成员构建字节

2 个稳定版本

1.0.1 2022年3月26日

#2580 in Rust 模式

MIT 许可证

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,
    ));
}

无运行时依赖项