#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum EntityPolicy {
RejectDtd,
#[default]
AllowDtdNoExternal,
WarnOnEntities,
}
#[derive(Debug, Clone)]
pub struct FromXmlConfig {
pub default_type_name: String,
pub version: (u32, u32),
pub infer_lists: bool,
pub entity_policy: EntityPolicy,
pub log_security_events: bool,
}
impl Default for FromXmlConfig {
fn default() -> Self {
Self {
default_type_name: "Item".to_string(),
version: (2, 0),
infer_lists: true,
entity_policy: EntityPolicy::default(),
log_security_events: false,
}
}
}
impl FromXmlConfig {
pub fn strict_security() -> Self {
Self {
entity_policy: EntityPolicy::RejectDtd,
log_security_events: true,
..Default::default()
}
}
}
impl hedl_core::convert::ImportConfig for FromXmlConfig {
fn default_type_name(&self) -> &str {
&self.default_type_name
}
fn version(&self) -> (u32, u32) {
self.version
}
}