(data: &[u8])
| 2901 | } |
| 2902 | |
| 2903 | fn deflate_store(data: &[u8]) -> Vec<u8> { |
| 2904 | let mut out = Vec::new(); |
| 2905 | out.push(0x78); |
| 2906 | out.push(0x01); |
| 2907 | |
| 2908 | let mut remaining = data.len(); |
| 2909 | let mut offset = 0; |
| 2910 | while remaining > 0 { |
| 2911 | let block_size = remaining.min(65535); |
| 2912 | let is_last = remaining <= 65535; |
| 2913 | out.push(if is_last { 1 } else { 0 }); |
| 2914 | let len = block_size as u16; |
| 2915 | let nlen = !len; |
| 2916 | out.extend_from_slice(&len.to_le_bytes()); |
| 2917 | out.extend_from_slice(&nlen.to_le_bytes()); |
| 2918 | out.extend_from_slice(&data[offset..offset + block_size]); |
| 2919 | offset += block_size; |
| 2920 | remaining -= block_size; |
| 2921 | } |
| 2922 | |
| 2923 | let adler = adler32(data); |
| 2924 | out.extend_from_slice(&adler.to_be_bytes()); |
| 2925 | out |
| 2926 | } |
| 2927 | |
| 2928 | fn adler32(data: &[u8]) -> u32 { |
| 2929 | let mut a: u32 = 1; |
no test coverage detected