mirror of
https://github.com/lifegpc/msg-tool.git
synced 2026-06-06 21:08:48 +08:00
Use generic types
This commit is contained in:
@@ -51,7 +51,7 @@ struct HuffmanNode {
|
||||
}
|
||||
|
||||
pub struct DscDecoder<'a> {
|
||||
stream: MsbBitStream<'a>,
|
||||
stream: MsbBitStream<MemReaderRef<'a>>,
|
||||
key: u32,
|
||||
magic: u32,
|
||||
output_size: u32,
|
||||
|
||||
@@ -166,7 +166,7 @@ impl Script for BgiCBG {
|
||||
}
|
||||
|
||||
struct CbgDecoder<'a> {
|
||||
stream: MsbBitStream<'a>,
|
||||
stream: MsbBitStream<MemReaderRef<'a>>,
|
||||
info: &'a BgiCBGHeader,
|
||||
color_type: CbgColorType,
|
||||
key: u32,
|
||||
@@ -568,7 +568,7 @@ impl HuffmanTree {
|
||||
Self { nodes }
|
||||
}
|
||||
|
||||
fn decode_token(&self, stream: &mut MsbBitStream<'_>) -> Result<usize> {
|
||||
fn decode_token(&self, stream: &mut MsbBitStream<MemReaderRef<'_>>) -> Result<usize> {
|
||||
let mut node_index = self.nodes.len() - 1;
|
||||
loop {
|
||||
let bit = stream.get_next_bit()?;
|
||||
|
||||
@@ -4,7 +4,7 @@ use anyhow::Result;
|
||||
use std::io::Write;
|
||||
|
||||
pub struct LZWDecoder<'a> {
|
||||
m_input: MsbBitStream<'a>,
|
||||
m_input: MsbBitStream<MemReaderRef<'a>>,
|
||||
m_output_size: u32,
|
||||
}
|
||||
|
||||
|
||||
@@ -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<T: Read> {
|
||||
pub m_input: T,
|
||||
m_bits: u32,
|
||||
pub m_cached_bits: u32,
|
||||
}
|
||||
|
||||
impl<'a> MsbBitStream<'a> {
|
||||
pub fn new(input: MemReaderRef<'a>) -> Self {
|
||||
impl<T: Read> MsbBitStream<T> {
|
||||
pub fn new(input: T) -> Self {
|
||||
MsbBitStream {
|
||||
m_input: input,
|
||||
m_bits: 0,
|
||||
|
||||
Reference in New Issue
Block a user