musli_json/test.rs
1//! Helpers for writing tests.
2
3use core::fmt::Debug;
4
5use musli::mode::Text;
6use musli::{Decode, Encode};
7
8musli_utils::test_fns!("json", ::musli::mode::Text);
9
10/// Encode a type as one and decode as another.
11#[inline(never)]
12#[track_caller]
13pub fn transcode<T, O>(value: T) -> O
14where
15 T: Debug + PartialEq + Encode<Text>,
16 O: for<'de> Decode<'de, Text>,
17{
18 let out = crate::to_vec(&value).expect("failed to encode");
19 let buf = out.as_slice();
20 let value: O = crate::from_slice(buf).expect("failed to decode");
21 value
22}