use super::bits::push_bits;
use super::mode::EncodeBits;
pub fn encode(input: &str, bits: &mut EncodeBits) {
encode_bytes(input.as_bytes(), bits);
}
pub fn encode_bytes(input: &[u8], bits: &mut EncodeBits) {
for &byte in input {
push_bits(bits, byte as u32, 8);
}
}
pub fn bit_length(input: &str) -> usize {
input.len() * 8
}
pub fn bit_length_bytes(input: &[u8]) -> usize {
input.len() * 8
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_bit_length() {
assert_eq!(bit_length("ABC"), 24);
}
#[test]
fn test_encode_bytes() {
let mut bits = EncodeBits::new();
encode("AB", &mut bits);
assert_eq!(bits.len(), 16);
}
}