pub struct Host {
pub key: HostKey,
/* private fields */
}Expand description
Represents a single host with its own rate limiting, concurrency control, HTTP client configuration, and request cache.
Each host maintains:
- A token bucket rate limiter using governor
- A semaphore for concurrency control
- A dedicated HTTP client with host-specific headers and cookies
- Statistics tracking for adaptive behavior
- A per-host cache to prevent duplicate requests
Fields§
§key: HostKeyThe hostname this instance manages
Implementations§
Source§impl Host
impl Host
Sourcepub fn new(
key: HostKey,
host_config: &HostConfig,
global_config: &RateLimitConfig,
client: ReqwestClient,
) -> Self
pub fn new( key: HostKey, host_config: &HostConfig, global_config: &RateLimitConfig, client: ReqwestClient, ) -> Self
Create a new Host instance for the given hostname
Sourcepub fn cache_size(&self) -> usize
pub fn cache_size(&self) -> usize
Get the current cache size (number of cached entries)
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Host
impl !RefUnwindSafe for Host
impl Send for Host
impl Sync for Host
impl Unpin for Host
impl !UnwindSafe for Host
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
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