pub enum FaucetError {
Http(Error),
HttpStatus {
status: u16,
url: String,
body: String,
},
Json(Error),
JsonPath(String),
Auth(String),
RateLimited(Duration),
Url(String),
Transform(String),
Config(String),
Source(String),
Sink(String),
Custom(Box<dyn Error + Sync + Send>),
}Expand description
All possible errors returned by faucet-stream.
Variants§
Http(Error)
HttpStatus
An HTTP response with a non-success status code.
Contains the status code, URL, and (truncated) response body for
debugging. Whether this error is retriable depends on the status code
— see FaucetError::is_retriable.
Json(Error)
JsonPath(String)
Auth(String)
RateLimited(Duration)
The server responded with HTTP 429 Too Many Requests.
The inner value is the duration to wait before retrying,
parsed from the Retry-After response header (default: 60 s).
Url(String)
A URL could not be constructed or parsed.
Transform(String)
A record transform could not be compiled or applied (e.g. invalid regex).
Config(String)
A configuration or validation error (e.g. invalid endpoint, missing descriptor).
Source(String)
A source operation failed (e.g. database query error, file read error).
Sink(String)
A sink operation failed (e.g. BigQuery insert error).
Custom(Box<dyn Error + Sync + Send>)
A custom error from a third-party connector.
Use this to wrap your own error types without losing the error chain:
use faucet_core::FaucetError;
let err = FaucetError::Custom(Box::new(std::io::Error::new(
std::io::ErrorKind::Other,
"my connector failed",
)));Implementations§
Source§impl FaucetError
impl FaucetError
Sourcepub fn is_retriable(&self) -> bool
pub fn is_retriable(&self) -> bool
Whether this error is transient and the request should be retried.
Retriable errors:
- Network / connection errors (
Httpfrom reqwest) - Server errors (5xx status codes)
- Rate limiting (429 — handled separately with
Retry-After)
Non-retriable errors:
- Client errors (4xx except 429)
- JSON parse / JSONPath / auth / transform errors
Trait Implementations§
Source§impl Debug for FaucetError
impl Debug for FaucetError
Source§impl Display for FaucetError
impl Display for FaucetError
Source§impl Error for FaucetError
impl Error for FaucetError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<Error> for FaucetError
impl From<Error> for FaucetError
Source§fn from(source: Error) -> FaucetError
fn from(source: Error) -> FaucetError
Source§impl From<Error> for FaucetError
impl From<Error> for FaucetError
Source§fn from(source: Error) -> FaucetError
fn from(source: Error) -> FaucetError
Auto Trait Implementations§
impl Freeze for FaucetError
impl !RefUnwindSafe for FaucetError
impl Send for FaucetError
impl Sync for FaucetError
impl Unpin for FaucetError
impl UnsafeUnpin for FaucetError
impl !UnwindSafe for FaucetError
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> 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>
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>
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 moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.