Skip to main content

camel_processor/data_format/
mod.rs

1mod json;
2mod xml;
3
4pub use json::JsonDataFormat;
5pub use xml::XmlDataFormat;
6
7use camel_api::DataFormat;
8use std::sync::Arc;
9
10pub fn builtin_data_format(name: &str) -> Option<Arc<dyn DataFormat>> {
11    match name {
12        "json" => Some(Arc::new(JsonDataFormat)),
13        "xml" => Some(Arc::new(XmlDataFormat)),
14        _ => None,
15    }
16}
17
18#[cfg(test)]
19mod tests {
20    use super::*;
21
22    #[test]
23    fn test_builtin_json() {
24        let df = builtin_data_format("json").unwrap();
25        assert_eq!(df.name(), "json");
26    }
27
28    #[test]
29    fn test_builtin_xml() {
30        let df = builtin_data_format("xml").unwrap();
31        assert_eq!(df.name(), "xml");
32    }
33
34    #[test]
35    fn test_builtin_unknown_returns_none() {
36        assert!(builtin_data_format("csv").is_none());
37        assert!(builtin_data_format("protobuf").is_none());
38        assert!(builtin_data_format("").is_none());
39    }
40}