use crate::{
config::JsonOptions,
error::{DataFusionError, Result},
parsers::CompressionTypeVariant,
};
#[derive(Clone, Debug)]
pub struct JsonWriterOptions {
pub compression: CompressionTypeVariant,
pub compression_level: Option<u32>,
}
impl JsonWriterOptions {
pub fn new(compression: CompressionTypeVariant) -> Self {
Self {
compression,
compression_level: None,
}
}
pub fn new_with_level(
compression: CompressionTypeVariant,
compression_level: u32,
) -> Self {
Self {
compression,
compression_level: Some(compression_level),
}
}
}
impl TryFrom<&JsonOptions> for JsonWriterOptions {
type Error = DataFusionError;
fn try_from(value: &JsonOptions) -> Result<Self> {
Ok(JsonWriterOptions {
compression: value.compression,
compression_level: value.compression_level,
})
}
}