camel_processor/data_format/
mod.rs1mod 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}