Как я могу установить переменную для использования ровно X бит?

Я пишу эмулятор MOS6502 на Rust и хочу представить коды условий в виде структуры.

поэтому у меня есть следующая структура:

pub struct conditionCodes
{
    c: u8,
    z: u8,
    i: u8,
    d: u8,
    b: u8,
    pad: u8,
    v: u8,
    n: u8
}

Я уже написал аналогичный эмулятор на C и использовал этот метод:

typedef strcut conditionCodes
{
    char c: 1;
    char z: 1;
    char i: 1;
    char d: 1;
    char b: 1;
    char pad: 1;
    char v: 1;
    char n: 1;
} conditionCodes;

Сделать каждую переменную ровно 1 битом и сделать структуру в целом ровно 1 байтом. Я хотел бы использовать ту же логику в Rust, и я хотел спросить, есть ли способ сделать это в Rust.


person Tomdrc1    schedule 08.01.2020    source источник
comment
Взгляните на ящик bitflags, возможно, это то, что вам нужно.   -  person user2722968    schedule 08.01.2020
comment
Если вы знаете название техники, которую используете в C, будет полезнее найти эквиваленты. Это называется битовые поля.   -  person Shepmaster    schedule 08.01.2020