pub struct ResourceTracker {
current_depth: usize,
max_depth_seen: usize,
anchor_count: usize,
bytes_processed: usize,
alias_depth: usize,
complexity_score: usize,
collection_items: usize,
}Expand description
Tracks resource usage during parsing
Fields§
§current_depth: usize§max_depth_seen: usize§anchor_count: usize§bytes_processed: usize§alias_depth: usize§complexity_score: usize§collection_items: usizeImplementations§
Source§impl ResourceTracker
impl ResourceTracker
Sourcepub fn check_depth(&mut self, limits: &Limits, depth: usize) -> Result<()>
pub fn check_depth(&mut self, limits: &Limits, depth: usize) -> Result<()>
Checks if depth limit is exceeded
Sourcepub fn add_anchor(&mut self, limits: &Limits) -> Result<()>
pub fn add_anchor(&mut self, limits: &Limits) -> Result<()>
Increments and checks anchor count
Sourcepub fn add_bytes(&mut self, limits: &Limits, bytes: usize) -> Result<()>
pub fn add_bytes(&mut self, limits: &Limits, bytes: usize) -> Result<()>
Tracks bytes processed
Sourcepub fn check_string_length(&self, limits: &Limits, length: usize) -> Result<()>
pub fn check_string_length(&self, limits: &Limits, length: usize) -> Result<()>
Checks string length
Sourcepub fn enter_alias(&mut self, limits: &Limits) -> Result<()>
pub fn enter_alias(&mut self, limits: &Limits) -> Result<()>
Tracks alias expansion depth
Sourcepub fn exit_alias(&mut self)
pub fn exit_alias(&mut self)
Exits alias expansion
Sourcepub fn add_collection_item(&mut self, limits: &Limits) -> Result<()>
pub fn add_collection_item(&mut self, limits: &Limits) -> Result<()>
Tracks collection items
Sourcepub fn add_complexity(&mut self, limits: &Limits, score: usize) -> Result<()>
pub fn add_complexity(&mut self, limits: &Limits, score: usize) -> Result<()>
Adds to complexity score
Sourcepub fn stats(&self) -> ResourceStats
pub fn stats(&self) -> ResourceStats
Gets current statistics
Trait Implementations§
Source§impl Clone for ResourceTracker
impl Clone for ResourceTracker
Source§fn clone(&self) -> ResourceTracker
fn clone(&self) -> ResourceTracker
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ResourceTracker
impl Debug for ResourceTracker
Source§impl Default for ResourceTracker
impl Default for ResourceTracker
Source§fn default() -> ResourceTracker
fn default() -> ResourceTracker
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ResourceTracker
impl RefUnwindSafe for ResourceTracker
impl Send for ResourceTracker
impl Sync for ResourceTracker
impl Unpin for ResourceTracker
impl UnwindSafe for ResourceTracker
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more