ktav 0.1.3

Ktav — a plain configuration format. Three rules, zero indentation, zero quoting. Serde-native.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//! Top-level entry: render a [`Value`] into a Ktav text document.

use crate::error::{Error, Result};
use crate::value::Value;

use super::object::render_object_body;

/// Serializes `value` as a top-level Ktav document. The top-level value
/// must be an object.
pub fn render(value: &Value) -> Result<String> {
    let obj = match value {
        Value::Object(o) => o,
        _ => return Err(Error::Message("top-level value must be an object".into())),
    };
    let mut out = String::new();
    render_object_body(obj, 0, &mut out)?;
    Ok(out)
}