lzfse_rust/encode/
constants.rs

1use crate::ring::{RingBlock, RingSize, RingType};
2
3pub const GOOD_MATCH_LEN: u32 = 0x0028;
4
5pub const RAW_CUTOFF: u32 = 0x0014;
6
7// Conservative value.
8pub const RAW_LIMIT: u32 = 0x4000;
9
10pub const VN_CUTOFF: u32 = 0x1000;
11
12// Fixed constants. Do NOT change.
13// u32::MAX quarter bounds
14#[allow(dead_code)]
15pub const Q0: u32 = 0x0000_0000;
16pub const Q1: u32 = 0x4000_0000;
17pub const Q2: u32 = 0x8000_0000;
18pub const Q3: u32 = 0xC000_0000;
19
20#[derive(Copy, Clone, Debug)]
21pub struct Input;
22
23unsafe impl RingSize for Input {
24    const RING_SIZE: u32 = 0x0008_0000;
25}
26
27unsafe impl RingType for Input {
28    const RING_LIMIT: u32 = 0x0140;
29}
30
31unsafe impl RingBlock for Input {
32    const RING_BLK_SIZE: u32 = 0x0000_4000;
33}
34
35#[derive(Copy, Clone, Debug)]
36pub struct Output;
37
38unsafe impl RingSize for Output {
39    const RING_SIZE: u32 = 0x0002_0000;
40}
41
42unsafe impl RingType for Output {
43    const RING_LIMIT: u32 = 0x0400;
44}
45
46unsafe impl RingBlock for Output {
47    const RING_BLK_SIZE: u32 = 0x2000;
48}