//! Conversion among hini and other data exchange formats.
//!
//! ```
//! use hini_convert::convert;
//! use hini_convert::formats::DataFormat;
//!
//! let hini_data = "
//! [section]
//! some key = value...
//! ";
//! let json_data = convert(hini_data, DataFormat::Hini, DataFormat::Json).unwrap();
//! assert_eq!(json_data, r#"{"section":{"some key":"value..."}}"#);
//! ```
#[path = "formats.rs"] pub mod formats;
use formats::DataFormat;
use std::rc::Rc;
/// Convert the given string data between the given formats. Errors are reported as strings.
pub fn convert(data: &str, from: DataFormat, to: DataFormat) -> Result<String, String> {
let decoder = from.decoder();
let encoder = to.encoder();
let tree = decoder(data)?;
Ok(encoder(Rc::clone(&tree)))
}