From 63286fe5a0fbea1ecdb2d77791de268d657f3ebe Mon Sep 17 00:00:00 2001 From: lifegpc Date: Thu, 19 Jun 2025 14:27:19 +0800 Subject: [PATCH] Use generic types --- src/scripts/bgi/archive/dsc.rs | 2 +- src/scripts/bgi/image/cbg.rs | 4 ++-- src/scripts/escude/lzw.rs | 2 +- src/utils/bit_stream.rs | 10 +++++----- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/scripts/bgi/archive/dsc.rs b/src/scripts/bgi/archive/dsc.rs index 5879679..f9fbaf4 100644 --- a/src/scripts/bgi/archive/dsc.rs +++ b/src/scripts/bgi/archive/dsc.rs @@ -51,7 +51,7 @@ struct HuffmanNode { } pub struct DscDecoder<'a> { - stream: MsbBitStream<'a>, + stream: MsbBitStream>, key: u32, magic: u32, output_size: u32, diff --git a/src/scripts/bgi/image/cbg.rs b/src/scripts/bgi/image/cbg.rs index b85c3c6..f033483 100644 --- a/src/scripts/bgi/image/cbg.rs +++ b/src/scripts/bgi/image/cbg.rs @@ -166,7 +166,7 @@ impl Script for BgiCBG { } struct CbgDecoder<'a> { - stream: MsbBitStream<'a>, + stream: MsbBitStream>, info: &'a BgiCBGHeader, color_type: CbgColorType, key: u32, @@ -568,7 +568,7 @@ impl HuffmanTree { Self { nodes } } - fn decode_token(&self, stream: &mut MsbBitStream<'_>) -> Result { + fn decode_token(&self, stream: &mut MsbBitStream>) -> Result { let mut node_index = self.nodes.len() - 1; loop { let bit = stream.get_next_bit()?; diff --git a/src/scripts/escude/lzw.rs b/src/scripts/escude/lzw.rs index 848096e..9acdda9 100644 --- a/src/scripts/escude/lzw.rs +++ b/src/scripts/escude/lzw.rs @@ -4,7 +4,7 @@ use anyhow::Result; use std::io::Write; pub struct LZWDecoder<'a> { - m_input: MsbBitStream<'a>, + m_input: MsbBitStream>, m_output_size: u32, } diff --git a/src/utils/bit_stream.rs b/src/utils/bit_stream.rs index 9441068..ae015a1 100644 --- a/src/utils/bit_stream.rs +++ b/src/utils/bit_stream.rs @@ -1,15 +1,15 @@ use crate::ext::io::*; use anyhow::Result; -use std::io::Write; +use std::io::{Read, Write}; -pub struct MsbBitStream<'a> { - pub m_input: MemReaderRef<'a>, +pub struct MsbBitStream { + pub m_input: T, m_bits: u32, pub m_cached_bits: u32, } -impl<'a> MsbBitStream<'a> { - pub fn new(input: MemReaderRef<'a>) -> Self { +impl MsbBitStream { + pub fn new(input: T) -> Self { MsbBitStream { m_input: input, m_bits: 0,