Skip to main content

deserialize_with_limits

Function deserialize_with_limits 

Source
pub fn deserialize_with_limits<'de, D>(
    deserializer: D,
    limits: &Limits,
) -> Result<LimitedResult<WafObject>, D::Error>
where D: Deserializer<'de>,
Expand description

Deserialize a WafObject from a deserializer with the specified limits.

Returns a LimitedResult containing the deserialized value and whether truncation occurred.

§Example

use libddwaf::serde::{Limits, deserialize_with_limits};
use libddwaf::object::WafObject;

let json = r#"{"key": "value"}"#;
let limits = Limits {
    max_string_length: 3,
    max_depth: 10,
    max_elements: 100,
};
let mut deserializer = serde_json::Deserializer::from_str(json);
let result = deserialize_with_limits(&mut deserializer, &limits).unwrap();

assert!(result.truncated); // "value" was truncated to "val"

§Errors

Returns an error if the deserializer returns an error.