use std::ffi::c_int;
use crate::bindings::{
xmlC14NMode_XML_C14N_1_0, xmlC14NMode_XML_C14N_1_1, xmlC14NMode_XML_C14N_EXCLUSIVE_1_0,
};
#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Default)]
pub struct CanonicalizationOptions {
pub mode: CanonicalizationMode,
pub with_comments: bool,
pub inclusive_ns_prefixes: Vec<String>,
}
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Default)]
pub enum CanonicalizationMode {
Canonical1_0,
#[default]
ExclusiveCanonical1_0,
Canonical1_1,
}
impl From<CanonicalizationMode> for c_int {
fn from(mode: CanonicalizationMode) -> Self {
let c14n_mode = match mode {
CanonicalizationMode::Canonical1_0 => xmlC14NMode_XML_C14N_1_0,
CanonicalizationMode::ExclusiveCanonical1_0 => xmlC14NMode_XML_C14N_EXCLUSIVE_1_0,
CanonicalizationMode::Canonical1_1 => xmlC14NMode_XML_C14N_1_1,
};
c_int::from(c14n_mode as i32)
}
}