sac/examples/example.rs
2024-09-10 22:56:38 -04:00

47 lines
2.0 KiB
Rust

use sac::model::Model;
use sac::modelA::ModelA;
const DATA: &[u8] = b"
I'd just like to interject for a moment. What you're refering to as Linux, is in fact, GNU/Linux, or as I've re
aken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free compo
a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components com
a full OS as defined by POSIX.
Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculia
f events, the version of GNU which is widely used today is often called Linux, and many of its users are not aw
it is basically the GNU system, developed by the GNU Project.
There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is
el: the program in the system that allocates the machine's resources to the other programs that you run. The ke
an essential part of an operating system, but useless by itself; it can only function in the context of a compl
ating system. Linux is normally used in combination with the GNU operating system: the whole system is basicall
th Linux added, or GNU/Linux. All the so-called Linux distributions are really distributions of GNU/Linux!
";
fn main() {
type CodeValue = u32;
println!(
"Using model: ModelA<{}>",
std::any::type_name::<CodeValue>()
);
let model: ModelA<CodeValue> = ModelA::default();
model.print_metrics();
println!("");
let mut compressed = Vec::new();
println!("compressing...");
model.compress(&DATA[..], &mut compressed).unwrap();
println!("ModelA compressed to {} bytes", compressed.len());
println!(
"Compression Ratio: {}",
DATA.len() as f64 / compressed.len() as f64
);
println!("");
println!("decompressing...");
let mut decompressed = Vec::new();
let model: ModelA<CodeValue> = ModelA::default();
model.decompress(&compressed, &mut decompressed).unwrap();
println!("{}", String::from_utf8_lossy(&decompressed));
}