use super::config::TileCompressionPreference;
use crate::compression::fastlz;
use crate::error::Result;
#[derive(Debug, Clone)]
pub struct CompressedTile {
pub data: Vec<u8>,
}
pub fn compress_tile(data: &[u8], preference: TileCompressionPreference) -> Result<CompressedTile> {
let data = match preference {
TileCompressionPreference::Raw => data.to_vec(),
TileCompressionPreference::FastLZ => compress_fastlz(data)?,
};
Ok(CompressedTile { data })
}
fn compress_fastlz(data: &[u8]) -> Result<Vec<u8>> {
fastlz::compress(data)
}