http_type/utils/json/
fn.rs

1use crate::*;
2
3/// Parses a JSON value from a byte slice.
4///
5/// # Arguments
6/// - `data` - A byte slice containing JSON data
7///
8/// # Returns
9/// - `Ok(T)` if parsing succeeds, where T is the deserialized value
10/// - `Err(SerdeJsonError)` if parsing fails
11pub fn json_parse_from_slice<T>(data: &[u8]) -> ResultSerdeJsonError<T>
12where
13    T: DeserializeOwned,
14{
15    serde_json::from_slice(data)
16}
17
18/// Parses a JSON value from a string slice.
19///
20/// # Arguments
21/// - `data` - A string slice containing JSON data
22///
23/// # Returns
24/// - `Ok(T)` if parsing succeeds, where T is the deserialized value
25/// - `Err(SerdeJsonError)` if parsing fails
26pub fn json_parse_from_str<T>(data: &str) -> ResultSerdeJsonError<T>
27where
28    T: DeserializeOwned,
29{
30    serde_json::from_str(data)
31}
32
33/// Serializes a value to a JSON string.
34///
35/// # Arguments
36/// - `data` - The value to serialize
37///
38/// # Returns
39/// - `Ok(String)` containing the JSON text if serialization succeeds
40/// - `Err(SerdeJsonError)` if serialization fails
41pub fn json_stringify<T>(data: &T) -> ResultSerdeJsonError<String>
42where
43    T: ?Sized + Serialize,
44{
45    serde_json::to_string(data)
46}