Abstract and simplify serde_json round-trip to Ruma Raw.

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-09-23 04:26:55 +00:00
parent 27222f23d2
commit f32b6ae17d
2 changed files with 19 additions and 9 deletions

View File

@@ -1,9 +1,17 @@
use std::{fmt, marker::PhantomData, str::FromStr};
use ruma::{CanonicalJsonError, CanonicalJsonObject, canonical_json::try_from_json_map};
use ruma::{
CanonicalJsonError, CanonicalJsonObject, canonical_json::try_from_json_map, serde::Raw,
};
use crate::Result;
/// Perform a round-trip through serde_json starting with a native type T and
/// ending with a Ruma Raw<U> which is usually just T.
pub fn to_raw<T: serde::Serialize, U>(input: T) -> Result<Raw<U>> {
Ok(serde_json::from_value(serde_json::to_value(input)?)?)
}
/// Fallible conversion from any value that implements `Serialize` to a
/// `CanonicalJsonObject`.
///