tiff/encoder/compression/
uncompressed.rs1use crate::encoder::compression::*;
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
5pub struct Uncompressed;
6
7impl Compression for Uncompressed {
8 const COMPRESSION_METHOD: CompressionMethod = CompressionMethod::None;
9
10 fn get_algorithm(&self) -> Compressor {
11 Compressor::Uncompressed(*self)
12 }
13}
14
15impl CompressionAlgorithm for Uncompressed {
16 fn write_to<W: Write>(&mut self, writer: &mut W, bytes: &[u8]) -> Result<u64, io::Error> {
17 writer.write(bytes).map(|byte_count| byte_count as u64)
18 }
19}
20
21#[cfg(test)]
22mod tests {
23 use super::*;
24 use crate::encoder::compression::tests::TEST_DATA;
25 use std::io::Cursor;
26
27 #[test]
28 fn test_no_compression() {
29 let mut compressed_data = Vec::<u8>::new();
30 let mut writer = Cursor::new(&mut compressed_data);
31 Uncompressed.write_to(&mut writer, TEST_DATA).unwrap();
32 assert_eq!(TEST_DATA, compressed_data);
33 }
34}