| // Copyright 2019 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| use bit_field::*; |
| |
| #[bitfield] |
| #[bits = 5] |
| #[derive(Debug, PartialEq)] |
| pub struct FiveBits(u8); |
| |
| #[bitfield] |
| struct Struct { |
| prefix: BitField1, |
| five_bits: FiveBits, |
| suffix: BitField2, |
| } |
| |
| #[test] |
| fn test_enum() { |
| let mut s = Struct::new(); |
| assert_eq!(s.get(0, 8), 0b_0000_0000); |
| |
| s.set_five_bits(FiveBits(0b10101)); |
| assert_eq!(s.get(0, 8), 0b_0010_1010); |
| assert_eq!(s.get_five_bits(), FiveBits(0b10101)); |
| } |