oa_gateway_dds/
convert.rsuse oa_gateway_uci::validate::{Mode as ValidateMode, Violation};
use oa_gateway_uci::Schema;
pub(crate) fn violations_of(
payload: &[u8],
schema: Option<&Schema>,
mode: ValidateMode,
) -> Vec<Violation> {
if !mode.is_on() {
return Vec::new();
}
let Some(schema) = schema else {
return Vec::new();
};
let Ok(text) = std::str::from_utf8(payload) else {
return Vec::new();
};
let parsed = if oa_gateway_uci::looks_like_xml(payload) {
oa_gateway_uci::Message::from_xml(text, schema)
} else {
oa_gateway_uci::Message::from_json(text, schema)
};
parsed.map(|m| m.violations(schema)).unwrap_or_default()
}