pub struct Encoder { /* private fields */ }Implementations§
Source§impl Encoder
impl Encoder
Sourcepub fn new(algorithm: Algorithm) -> Result<Self>
pub fn new(algorithm: Algorithm) -> Result<Self>
Examples found in repository?
examples/01_roundtrip.rs (line 10)
6fn main() -> Result<(), Box<dyn std::error::Error>> {
7 let input = pseudo_random_bytes(64 * 1024);
8 let split = input.len() / 2;
9
10 let mut encoder = Encoder::new(Algorithm::Lzfse)?;
11 let mut compressed = encoder.process(&input[..split])?;
12 compressed.extend(encoder.process(&input[split..])?);
13 compressed.extend(encoder.finish()?);
14
15 let mut decoder = Decoder::new(Algorithm::Lzfse)?;
16 let encoded_split = compressed.len() / 2;
17 let mut round_trip = decoder.process(&compressed[..encoded_split])?;
18 round_trip.extend(decoder.process(&compressed[encoded_split..])?);
19 round_trip.extend(decoder.finish()?);
20
21 assert_eq!(round_trip, input);
22 let input_len = input.len();
23 let compressed_len = compressed.len();
24 println!("input={input_len} compressed={compressed_len}");
25 println!("✅ compression stream round-trip OK");
26 Ok(())
27}Sourcepub fn process(&mut self, input: &[u8]) -> Result<Vec<u8>>
pub fn process(&mut self, input: &[u8]) -> Result<Vec<u8>>
Examples found in repository?
examples/01_roundtrip.rs (line 11)
6fn main() -> Result<(), Box<dyn std::error::Error>> {
7 let input = pseudo_random_bytes(64 * 1024);
8 let split = input.len() / 2;
9
10 let mut encoder = Encoder::new(Algorithm::Lzfse)?;
11 let mut compressed = encoder.process(&input[..split])?;
12 compressed.extend(encoder.process(&input[split..])?);
13 compressed.extend(encoder.finish()?);
14
15 let mut decoder = Decoder::new(Algorithm::Lzfse)?;
16 let encoded_split = compressed.len() / 2;
17 let mut round_trip = decoder.process(&compressed[..encoded_split])?;
18 round_trip.extend(decoder.process(&compressed[encoded_split..])?);
19 round_trip.extend(decoder.finish()?);
20
21 assert_eq!(round_trip, input);
22 let input_len = input.len();
23 let compressed_len = compressed.len();
24 println!("input={input_len} compressed={compressed_len}");
25 println!("✅ compression stream round-trip OK");
26 Ok(())
27}Sourcepub fn finish(&mut self) -> Result<Vec<u8>>
pub fn finish(&mut self) -> Result<Vec<u8>>
Examples found in repository?
examples/01_roundtrip.rs (line 13)
6fn main() -> Result<(), Box<dyn std::error::Error>> {
7 let input = pseudo_random_bytes(64 * 1024);
8 let split = input.len() / 2;
9
10 let mut encoder = Encoder::new(Algorithm::Lzfse)?;
11 let mut compressed = encoder.process(&input[..split])?;
12 compressed.extend(encoder.process(&input[split..])?);
13 compressed.extend(encoder.finish()?);
14
15 let mut decoder = Decoder::new(Algorithm::Lzfse)?;
16 let encoded_split = compressed.len() / 2;
17 let mut round_trip = decoder.process(&compressed[..encoded_split])?;
18 round_trip.extend(decoder.process(&compressed[encoded_split..])?);
19 round_trip.extend(decoder.finish()?);
20
21 assert_eq!(round_trip, input);
22 let input_len = input.len();
23 let compressed_len = compressed.len();
24 println!("input={input_len} compressed={compressed_len}");
25 println!("✅ compression stream round-trip OK");
26 Ok(())
27}Trait Implementations§
Auto Trait Implementations§
impl Freeze for Encoder
impl RefUnwindSafe for Encoder
impl !Send for Encoder
impl !Sync for Encoder
impl Unpin for Encoder
impl UnsafeUnpin for Encoder
impl UnwindSafe for Encoder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more