pub struct UserAgentRotator { /* private fields */ }Expand description
User-agent rotator that cycles through a list of user-agent strings.
Thread-safe rotation using atomic operations. Useful for distributing requests across multiple identity strings to avoid detection.
§Examples
use crawlkit_engine::http::UserAgentRotator;
let rotator = UserAgentRotator::new(vec![
"bot/1.0".to_string(),
"bot/2.0".to_string(),
]);
assert_eq!(rotator.next(), "bot/1.0");
assert_eq!(rotator.next(), "bot/2.0");
assert_eq!(rotator.next(), "bot/1.0"); // wraps aroundImplementations§
Trait Implementations§
Source§impl Debug for UserAgentRotator
impl Debug for UserAgentRotator
Auto Trait Implementations§
impl !Freeze for UserAgentRotator
impl RefUnwindSafe for UserAgentRotator
impl Send for UserAgentRotator
impl Sync for UserAgentRotator
impl Unpin for UserAgentRotator
impl UnsafeUnpin for UserAgentRotator
impl UnwindSafe for UserAgentRotator
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