use std::fmt;
use crate::common::{BitArray, Result};
#[derive(Debug, PartialEq, Eq, Clone)]
pub struct SimpleToken {
value: u16,
bit_count: u16,
}
impl SimpleToken {
pub fn new(value: i32, bitCount: u32) -> Self {
Self {
value: value as u16,
bit_count: bitCount as u16,
}
}
pub fn appendTo(&self, bit_array: &mut BitArray, _text: &[u8]) -> Result<()> {
bit_array.appendBits(self.value as u32, self.bit_count as usize)
}
}
impl fmt::Display for SimpleToken {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let mut value = self.value & ((1 << self.bit_count) - 1);
value |= 1 << self.bit_count;
write!(f, "<{:#016b}>", value | (1 << self.bit_count))
}
}