pdftract/test_flate.rs
jedarden 9aa26a449e docs(pdftract-49f8): establish Cargo.lock policy and documentation
This commit implements the Cargo.lock policy for reproducible builds
across all workspace members (pdftract-core, pdftract-cli, pdftract-py).

Changes:
- Add CONTRIBUTING.md with lockfile-update workflow documentation
- Add .renovaterc.json for weekly lockfile-only PRs (human-gated)
- Add crates/pdftract-core/README.md with rationale for checked-in lockfiles
- Add notes/pdftract-49f8.md with verification note

The Argo workflow updates (pdftract-ci.yaml) are committed separately
in the declarative-config repo.

Acceptance criteria:
- PASS: Cargo.lock tracked by git, not in .gitignore
- PASS: Argo workflow templates document --locked/--frozen requirements
- WARN: Enforcement to be completed when placeholder templates are implemented
- WARN: Binary reproducibility verification deferred to pdftract-build-binaries implementation

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 18:13:14 -04:00

32 lines
1.1 KiB
Rust

use flate2::write::ZlibEncoder;
use flate2::Compression;
use flate2::read::ZlibDecoder;
use std::io::{Write, Read};
fn main() {
let header = b"1 0 2 3";
let obj1 = b"42";
let obj2 = b"true";
let mut stream_data = Vec::new();
stream_data.extend_from_slice(header);
stream_data.extend_from_slice(obj1);
stream_data.extend_from_slice(obj2);
println!("Original data: {:?}", stream_data);
println!("Original data as string: {:?}", String::from_utf8_lossy(&stream_data));
let mut encoder = ZlibEncoder::new(Vec::new(), Compression::default());
encoder.write_all(&stream_data).unwrap();
let compressed = encoder.finish().unwrap();
println!("Compressed: {:?}", compressed);
println!("Compressed len: {}", compressed.len());
// Now try to decompress
let mut decoder = ZlibDecoder::new(&compressed[..]);
let mut decompressed = Vec::new();
decoder.read_to_end(&mut decompressed).unwrap();
println!("Decompressed: {:?}", decompressed);
println!("Decompressed as string: {:?}", String::from_utf8_lossy(&decompressed));
}