use crate::{
JsonLdProcessingMode,
algorithms::{
context_processing::JsonLdContextProcessingOptions, expansion::JsonLdExpansionOptions,
},
};
#[derive(Clone, Copy)]
pub struct JsonLdCompactionOptions {
pub processing_mode: JsonLdProcessingMode,
pub compact_to_relative: bool,
pub compact_arrays: bool,
pub ordered: bool,
}
impl JsonLdCompactionOptions {
pub fn unordered(self) -> Self {
Self {
ordered: false,
..self
}
}
}
impl From<JsonLdCompactionOptions> for JsonLdContextProcessingOptions {
fn from(options: JsonLdCompactionOptions) -> Self {
Self {
processing_mode: options.processing_mode,
..Self::default()
}
}
}
impl From<JsonLdExpansionOptions> for JsonLdCompactionOptions {
fn from(options: JsonLdExpansionOptions) -> Self {
Self {
processing_mode: options.processing_mode,
ordered: options.ordered,
..Self::default()
}
}
}
impl Default for JsonLdCompactionOptions {
fn default() -> Self {
Self {
processing_mode: JsonLdProcessingMode::default(),
compact_to_relative: true,
compact_arrays: true,
ordered: false,
}
}
}