langsmith_rust/utils/
serialization.rs1use serde::Serialize;
2use serde_json::Value;
3
4pub fn ensure_object<T: Serialize>(value: T, key: &str) -> Result<Value, serde_json::Error> {
8 let mut json_value = serde_json::to_value(value)?;
9
10 if !json_value.is_object() {
11 json_value = serde_json::json!({ key: json_value });
12 }
13
14 Ok(json_value)
15}
16
17pub fn ensure_inputs_object<T: Serialize>(value: T) -> Result<Value, serde_json::Error> {
19 ensure_object(value, "input")
20}
21
22pub fn ensure_outputs_object<T: Serialize>(value: T) -> Result<Value, serde_json::Error> {
24 ensure_object(value, "output")
25}
26