Skip to main content

camel_processor/data_format/
mod.rs

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