This commit is contained in:
2025-06-11 21:39:13 +08:00
parent b4f806f5d5
commit d6b6ea32a7
2 changed files with 9 additions and 9 deletions

View File

@@ -4,7 +4,7 @@ use anyhow::Result;
use std::io::Write;
pub struct LZWDecoder<'a> {
m_input: BitStream<'a>,
m_input: MsbBitStream<'a>,
m_output_size: u32,
}
@@ -12,7 +12,7 @@ impl<'a> LZWDecoder<'a> {
pub fn new(input: &'a [u8]) -> Result<Self> {
let mut input_reader = MemReaderRef::new(input);
let size = input_reader.peek_u32_be_at(0x4)?;
let m_input = BitStream::new(MemReaderRef::new(&input[0x8..]));
let m_input = MsbBitStream::new(MemReaderRef::new(&input[0x8..]));
Ok(LZWDecoder {
m_input,
m_output_size: size,
@@ -85,7 +85,7 @@ impl LZWEncoder {
pub fn encode(mut self, input: &[u8], fake: bool) -> Result<Vec<u8>> {
self.buf.write_all(b"acp\0")?;
self.buf.write_u32_be(input.len() as u32)?;
let mut writer = BitWriter::new(&mut self.buf);
let mut writer = MsbBitWriter::new(&mut self.buf);
if fake {
for i in 0..input.len() {
if i > 0 && i % 0x4000 == 0 {

View File

@@ -2,15 +2,15 @@ use crate::ext::io::*;
use anyhow::Result;
use std::io::Write;
pub struct BitStream<'a> {
pub struct MsbBitStream<'a> {
m_input: MemReaderRef<'a>,
m_bits: u32,
m_cached_bits: u32,
}
impl<'a> BitStream<'a> {
impl<'a> MsbBitStream<'a> {
pub fn new(input: MemReaderRef<'a>) -> Self {
BitStream {
MsbBitStream {
m_input: input,
m_bits: 0,
m_cached_bits: 0,
@@ -30,15 +30,15 @@ impl<'a> BitStream<'a> {
}
}
pub struct BitWriter<'a, T: Write> {
pub struct MsbBitWriter<'a, T: Write> {
writer: &'a mut T,
buffer: u32,
buffer_size: u32,
}
impl<'a, T: Write> BitWriter<'a, T> {
impl<'a, T: Write> MsbBitWriter<'a, T> {
pub fn new(writer: &'a mut T) -> Self {
BitWriter {
MsbBitWriter {
writer,
buffer: 0,
buffer_size: 0,