into-a-byte

Crates.iointo-a-byte
lib.rsinto-a-byte
version1.0.1
sourcesrc
created_at2022-03-26 06:14:20.82398
updated_at2022-03-26 06:51:54.074374
descriptionBuild a byte from tuple of Into.
homepage
repository
max_upload_size
id556562
size6,390
mmmpa (mmmpa)

documentation

README

into-a-byte

Build ORed byte from members of tuple of Into that acts as a bit switch.

Example

Built byte is used to send to a I2C devise for example.

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,
    ));
}
Commit count: 0

cargo fmt