pub struct ResourceMonitor { /* private fields */ }Expand description
Resource monitor for tracking and enforcing limits.
Thread-safe monitor that tracks resource usage and compares against
configured limits. Use is_over_limit
to check if the crawl should be terminated.
§Examples
use crawlkit_engine::{ResourceMonitor, ResourceLimits};
let limits = ResourceLimits { max_pages: Some(10), ..Default::default() };
let monitor = ResourceMonitor::new(limits);
monitor.record_page();
assert!(!monitor.is_over_limit());Implementations§
Source§impl ResourceMonitor
impl ResourceMonitor
Sourcepub fn new(limits: ResourceLimits) -> Self
pub fn new(limits: ResourceLimits) -> Self
Create a new resource monitor.
Sourcepub fn with_default_limits() -> Self
pub fn with_default_limits() -> Self
Create with default limits.
Sourcepub fn update(&self, usage: ResourceUsage)
pub fn update(&self, usage: ResourceUsage)
Update current usage.
Sourcepub fn record_page(&self)
pub fn record_page(&self)
Record a page processed.
Sourcepub fn current_usage(&self) -> ResourceUsage
pub fn current_usage(&self) -> ResourceUsage
Get current usage.
Sourcepub fn is_over_limit(&self) -> bool
pub fn is_over_limit(&self) -> bool
Check if any limit is exceeded.
Sourcepub fn exceeded_limits(&self) -> Vec<String>
pub fn exceeded_limits(&self) -> Vec<String>
Get which limits are exceeded.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for ResourceMonitor
impl !UnwindSafe for ResourceMonitor
impl Freeze for ResourceMonitor
impl Send for ResourceMonitor
impl Sync for ResourceMonitor
impl Unpin for ResourceMonitor
impl UnsafeUnpin for ResourceMonitor
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more