(args: PyFuncCompressArgs, vm: &VirtualMachine)
| 91 | /// Returns a bytes object containing compressed data. |
| 92 | #[pyfunction] |
| 93 | fn compress(args: PyFuncCompressArgs, vm: &VirtualMachine) -> PyResult<PyBytesRef> { |
| 94 | let PyFuncCompressArgs { |
| 95 | data, |
| 96 | level, |
| 97 | ref wbits, |
| 98 | } = args; |
| 99 | let level = level.ok_or_else(|| new_zlib_error("Bad compression level", vm))?; |
| 100 | |
| 101 | let compress = InitOptions::new(wbits.value, vm)?.compress(level); |
| 102 | let mut encoder = ZlibEncoder::new_with_compress(Vec::new(), compress); |
| 103 | data.with_ref(|input_bytes| encoder.write_all(input_bytes).unwrap()); |
| 104 | let encoded_bytes = encoder.finish().unwrap(); |
| 105 | Ok(vm.ctx.new_bytes(encoded_bytes)) |
| 106 | } |
| 107 | |
| 108 | enum InitOptions { |
| 109 | Standard { |
nothing calls this directly
no test coverage detected