Skip to main content

xml_disassembler/transformers/
get_transformer.rs

1//! Get transformer for format - returns output string from XmlElement.
2
3use crate::transformers::{
4    transform_to_ini, transform_to_json, transform_to_json5, transform_to_toml, transform_to_yaml,
5};
6use crate::types::XmlElement;
7
8/// Transform XmlElement to string in the given format.
9/// Returns None if format is not supported (e.g. "xml" uses build_xml_string instead).
10pub async fn transform_format(format: &str, xml_content: &XmlElement) -> Option<String> {
11    let result = match format.to_lowercase().as_str() {
12        "yaml" | "yml" => transform_to_yaml(xml_content).await,
13        "json5" => transform_to_json5(xml_content).await,
14        "json" => transform_to_json(xml_content).await,
15        "toml" => transform_to_toml(xml_content).await,
16        "ini" => transform_to_ini(xml_content).await,
17        _ => return None,
18    };
19    Some(result)
20}