pub enum UncertainReason {
RateLimited,
CloudflareChallenge,
Captcha,
RobotsDisallowed,
Deadline,
SchedulerClosed,
Network(String),
BodyRead(String),
BrowserBudget,
UsernameNotAllowed,
BrowserFailed(String),
Other(String),
}Expand description
Why a probe was inconclusive.
Uncertain outcomes carry a typed reason rather than a free-form string,
so logic that reacts to specific cases (e.g. retry on a transient ban)
matches an enum variant instead of a fragile string. The fmt::Display
rendering is what the CLI prints; serialization is the externally-tagged
default (unit variants → a snake_case string, detail-carrying variants →
{ "network": "…" }).
Variants§
RateLimited
HTTP 429, or 503 with a Retry-After header.
CloudflareChallenge
A Cloudflare interstitial / “checking your browser” page.
Captcha
A captcha gate.
RobotsDisallowed
The path is disallowed by the host’s robots.txt (--respect-robots).
Deadline
The scan deadline elapsed before this site finished.
SchedulerClosed
The executor’s scheduler was closed (does not happen in practice).
Network(String)
A transport/network error while issuing the request.
BodyRead(String)
An error reading the response body.
BrowserBudget
A bot-protected site needed the browser backend but the per-scan
--browser-budget cap was already spent on earlier sites.
UsernameNotAllowed
The username doesn’t satisfy the site’s regex_check
(e.g. too short, contains forbidden characters). Reported
without issuing any HTTP request — saves both network and the
false-positive class where the site 404s on illegal usernames
in ways our signal can’t tell apart from a missing account.
BrowserFailed(String)
The browser backend itself failed (timeout, navigation error,
session drop, …) for a bot-protected site.
Other(String)
Any other reason (e.g. a doctor pre-flight skip).
Trait Implementations§
Source§impl Clone for UncertainReason
impl Clone for UncertainReason
Source§fn clone(&self) -> UncertainReason
fn clone(&self) -> UncertainReason
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for UncertainReason
impl Debug for UncertainReason
Source§impl<'de> Deserialize<'de> for UncertainReason
impl<'de> Deserialize<'de> for UncertainReason
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for UncertainReason
impl Display for UncertainReason
Source§impl PartialEq for UncertainReason
impl PartialEq for UncertainReason
Source§fn eq(&self, other: &UncertainReason) -> bool
fn eq(&self, other: &UncertainReason) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for UncertainReason
impl Serialize for UncertainReason
impl Eq for UncertainReason
impl StructuralPartialEq for UncertainReason
Auto Trait Implementations§
impl Freeze for UncertainReason
impl RefUnwindSafe for UncertainReason
impl Send for UncertainReason
impl Sync for UncertainReason
impl Unpin for UncertainReason
impl UnsafeUnpin for UncertainReason
impl UnwindSafe for UncertainReason
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.