use jasn_core::ser;
use serde::Serialize;
use crate::{Value, formatter};
pub type Error = ser::Error;
pub type Result<T> = std::result::Result<T, Error>;
pub fn to_string<T>(value: &T) -> Result<String>
where
T: Serialize,
{
let jaml_value = ser::to_value(value)?;
Ok(formatter::format(&jaml_value))
}
pub fn to_string_pretty<T>(value: &T) -> Result<String>
where
T: Serialize,
{
to_string(value)
}
pub fn to_string_opts<T>(value: &T, options: &formatter::Options) -> Result<String>
where
T: Serialize,
{
let jaml_value = ser::to_value(value)?;
Ok(formatter::format_with_opts(&jaml_value, options))
}
pub fn to_value<T>(value: &T) -> Result<Value>
where
T: Serialize + ?Sized,
{
ser::to_value(value)
}