pointer: Option, metaprotocol: Option, metadata: Option>, compress: bool, ) -> Result { let path = path.as_ref(); let body = fs::read(path).with_context(|| format!("io error reading {}", path.display()))?; let (content_type, compression_mode) = Media::content_type_for_path(path)?; let (body, content_encoding) = if compress { let mut compressed = Vec::new(); { CompressorWriter::with_params( &mut compressed, body.len(), &BrotliEncoderParams { lgblock: 24, lgwin: 24, mode: compression_mode, quality: 11, size_hint: body.len(), ..Default::default() }, ) .write_all(&body)?; let mut decompressor = brotli::Decompressor::new(compressed.as_slice(), compressed.len()); let mut decompressed = Vec::new(); decompressor.read_to_end(&mut decompressed)?; ensure!(decompressed == body, "decompression roundtrip failed");