zparse 2.0.5

High-performance JSON/TOML/YAML/XML parser with zero-allocation support
Documentation
use zparse::{Format, convert};

#[test]
fn test_json_to_toml() -> Result<(), Box<dyn std::error::Error>> {
    let input = r#"{"name":"test","value":42}"#;
    let output = convert(input, Format::Json, Format::Toml)?;
    if !output.contains("name") {
        return Err("missing name in toml output".into());
    }
    if !output.contains("value") {
        return Err("missing value in toml output".into());
    }
    Ok(())
}

#[test]
fn test_toml_to_json() -> Result<(), Box<dyn std::error::Error>> {
    let input = "name = \"test\"\nvalue = 42\n";
    let output = convert(input, Format::Toml, Format::Json)?;
    if !output.contains("\"name\"") {
        return Err("missing name in json output".into());
    }
    if !output.contains("\"value\"") {
        return Err("missing value in json output".into());
    }
    Ok(())
}

#[test]
fn test_yaml_to_json() -> Result<(), Box<dyn std::error::Error>> {
    let input = "name: test\nvalue: 42\n";
    let output = convert(input, Format::Yaml, Format::Json)?;
    if !output.contains("\"name\"") {
        return Err("missing name in json output".into());
    }
    if !output.contains("\"value\"") {
        return Err("missing value in json output".into());
    }
    Ok(())
}

#[test]
fn test_xml_to_json() -> Result<(), Box<dyn std::error::Error>> {
    let input = "<root><name>test</name><value>42</value></root>";
    let output = convert(input, Format::Xml, Format::Json)?;
    if !output.contains("\"root\"") {
        return Err("missing root in json output".into());
    }
    if !output.contains("\"name\"") {
        return Err("missing name in json output".into());
    }
    Ok(())
}