mirror of
https://github.com/lifegpc/msg-tool.git
synced 2026-07-08 01:31:53 +08:00
Rename
This commit is contained in:
@@ -4,7 +4,7 @@ use anyhow::Result;
|
|||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
|
|
||||||
pub struct LZWDecoder<'a> {
|
pub struct LZWDecoder<'a> {
|
||||||
m_input: BitStream<'a>,
|
m_input: MsbBitStream<'a>,
|
||||||
m_output_size: u32,
|
m_output_size: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@ impl<'a> LZWDecoder<'a> {
|
|||||||
pub fn new(input: &'a [u8]) -> Result<Self> {
|
pub fn new(input: &'a [u8]) -> Result<Self> {
|
||||||
let mut input_reader = MemReaderRef::new(input);
|
let mut input_reader = MemReaderRef::new(input);
|
||||||
let size = input_reader.peek_u32_be_at(0x4)?;
|
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 {
|
Ok(LZWDecoder {
|
||||||
m_input,
|
m_input,
|
||||||
m_output_size: size,
|
m_output_size: size,
|
||||||
@@ -85,7 +85,7 @@ impl LZWEncoder {
|
|||||||
pub fn encode(mut self, input: &[u8], fake: bool) -> Result<Vec<u8>> {
|
pub fn encode(mut self, input: &[u8], fake: bool) -> Result<Vec<u8>> {
|
||||||
self.buf.write_all(b"acp\0")?;
|
self.buf.write_all(b"acp\0")?;
|
||||||
self.buf.write_u32_be(input.len() as u32)?;
|
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 {
|
if fake {
|
||||||
for i in 0..input.len() {
|
for i in 0..input.len() {
|
||||||
if i > 0 && i % 0x4000 == 0 {
|
if i > 0 && i % 0x4000 == 0 {
|
||||||
|
|||||||
@@ -2,15 +2,15 @@ use crate::ext::io::*;
|
|||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
|
|
||||||
pub struct BitStream<'a> {
|
pub struct MsbBitStream<'a> {
|
||||||
m_input: MemReaderRef<'a>,
|
m_input: MemReaderRef<'a>,
|
||||||
m_bits: u32,
|
m_bits: u32,
|
||||||
m_cached_bits: u32,
|
m_cached_bits: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> BitStream<'a> {
|
impl<'a> MsbBitStream<'a> {
|
||||||
pub fn new(input: MemReaderRef<'a>) -> Self {
|
pub fn new(input: MemReaderRef<'a>) -> Self {
|
||||||
BitStream {
|
MsbBitStream {
|
||||||
m_input: input,
|
m_input: input,
|
||||||
m_bits: 0,
|
m_bits: 0,
|
||||||
m_cached_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,
|
writer: &'a mut T,
|
||||||
buffer: u32,
|
buffer: u32,
|
||||||
buffer_size: 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 {
|
pub fn new(writer: &'a mut T) -> Self {
|
||||||
BitWriter {
|
MsbBitWriter {
|
||||||
writer,
|
writer,
|
||||||
buffer: 0,
|
buffer: 0,
|
||||||
buffer_size: 0,
|
buffer_size: 0,
|
||||||
|
|||||||
Reference in New Issue
Block a user