pub struct WireBudget { /* private fields */ }Expand description
Mutable accounting state shared by one complete wire decode.
Implementations§
Source§impl WireBudget
impl WireBudget
Sourcepub const fn limits(&self) -> WireLimits
pub const fn limits(&self) -> WireLimits
Returns the configured limits for this session.
Sourcepub fn check_node(&mut self) -> Result<(), ValueWireDecodeError>
pub fn check_node(&mut self) -> Result<(), ValueWireDecodeError>
Charges one decoded node.
Sourcepub fn check_depth(&self, depth: usize) -> Result<(), ValueWireDecodeError>
pub fn check_depth(&self, depth: usize) -> Result<(), ValueWireDecodeError>
Checks a recursive depth.
Sourcepub fn check_collection_items(
&self,
items: usize,
) -> Result<(), ValueWireDecodeError>
pub fn check_collection_items( &self, items: usize, ) -> Result<(), ValueWireDecodeError>
Checks one collection length.
Sourcepub fn check_map_entries(
&self,
entries: usize,
) -> Result<(), ValueWireDecodeError>
pub fn check_map_entries( &self, entries: usize, ) -> Result<(), ValueWireDecodeError>
Checks one map length.
Sourcepub fn check_string_bytes(
&self,
bytes: usize,
) -> Result<(), ValueWireDecodeError>
pub fn check_string_bytes( &self, bytes: usize, ) -> Result<(), ValueWireDecodeError>
Checks one decoded string length.
Sourcepub fn check_numeric_bytes(
&self,
bytes: usize,
) -> Result<(), ValueWireDecodeError>
pub fn check_numeric_bytes( &self, bytes: usize, ) -> Result<(), ValueWireDecodeError>
Checks one decoded numeric representation length in UTF-8 bytes.
Sourcepub fn check_container(
&mut self,
container: &ValueContainer,
) -> Result<(), ValueWireDecodeError>
pub fn check_container( &mut self, container: &ValueContainer, ) -> Result<(), ValueWireDecodeError>
Validates a decoded value container against the shared budget.
Sourcepub fn check_container_at(
&mut self,
container: &ValueContainer,
depth: usize,
) -> Result<(), ValueWireDecodeError>
pub fn check_container_at( &mut self, container: &ValueContainer, depth: usize, ) -> Result<(), ValueWireDecodeError>
Validates one decoded value container at depth.
Sourcepub fn check_value(&mut self, value: &Value) -> Result<(), ValueWireDecodeError>
pub fn check_value(&mut self, value: &Value) -> Result<(), ValueWireDecodeError>
Validates one scalar Value against the shared budget.
Sourcepub fn check_multi_values(
&mut self,
values: &MultiValues,
) -> Result<(), ValueWireDecodeError>
pub fn check_multi_values( &mut self, values: &MultiValues, ) -> Result<(), ValueWireDecodeError>
Sourcepub fn check_multi_values_at(
&mut self,
values: &MultiValues,
depth: usize,
) -> Result<(), ValueWireDecodeError>
pub fn check_multi_values_at( &mut self, values: &MultiValues, depth: usize, ) -> Result<(), ValueWireDecodeError>
Validates one homogeneous collection at an embedding depth.
§Parameters
values- Collection whose elements are charged to this budget.depth- Root-inclusive depth of the collection.
§Errors
Returns a resource-limit error when the collection exceeds the configured depth, node, item, string, map, or numeric limits.
Sourcepub fn check_named_value(
&mut self,
value: &NamedValue,
) -> Result<(), ValueWireDecodeError>
pub fn check_named_value( &mut self, value: &NamedValue, ) -> Result<(), ValueWireDecodeError>
Sourcepub fn check_named_value_at(
&mut self,
value: &NamedValue,
depth: usize,
) -> Result<(), ValueWireDecodeError>
pub fn check_named_value_at( &mut self, value: &NamedValue, depth: usize, ) -> Result<(), ValueWireDecodeError>
Sourcepub fn check_named_multi_values(
&mut self,
value: &NamedMultiValues,
) -> Result<(), ValueWireDecodeError>
pub fn check_named_multi_values( &mut self, value: &NamedMultiValues, ) -> Result<(), ValueWireDecodeError>
Sourcepub fn check_named_multi_values_at(
&mut self,
value: &NamedMultiValues,
depth: usize,
) -> Result<(), ValueWireDecodeError>
pub fn check_named_multi_values_at( &mut self, value: &NamedMultiValues, depth: usize, ) -> Result<(), ValueWireDecodeError>
Sourcepub fn check_value_at(
&mut self,
value: &Value,
depth: usize,
) -> Result<(), ValueWireDecodeError>
pub fn check_value_at( &mut self, value: &Value, depth: usize, ) -> Result<(), ValueWireDecodeError>
Validates one scalar value at an embedding depth.
Use this method when the scalar is nested inside an outer wire document. The depth is inclusive and should be supplied by the outer protocol’s accounting traversal.
§Parameters
value- Scalar value to validate.depth- Root-inclusive depth of the scalar in the complete document.
§Errors
Returns a resource-limit error when the value exceeds the configured depth, node, string, or numeric budget.