#[non_exhaustive]pub enum BraidError {
Show 19 variants
Http(String),
Io(Error),
HeaderParse(String),
BodyParse(String),
InvalidVersion(String),
Subscription(String),
Json(Error),
SubscriptionClosed,
InvalidSubscriptionStatus(u16),
Protocol(String),
Timeout,
Aborted,
Fs(String),
InvalidUtf8(FromUtf8Error),
Config(String),
Internal(String),
HistoryDropped,
MergeConflict(String),
Anyhow(String),
}Expand description
Errors that can occur during Braid HTTP operations.
Each variant represents a different failure mode when working with Braid protocol. Use pattern matching to handle specific errors appropriately.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Http(String)
HTTP request failed with a given error message.
Io(Error)
Network I/O error (connection failed, read/write error, etc.).
These errors are typically retryable.
HeaderParse(String)
Failed to parse Braid protocol headers.
BodyParse(String)
Failed to parse protocol body.
InvalidVersion(String)
Invalid version format (not a valid version identifier).
Subscription(String)
Subscription-specific error.
Json(Error)
JSON serialization or deserialization error.
SubscriptionClosed
Subscription closed unexpectedly.
InvalidSubscriptionStatus(u16)
Invalid subscription status (expected 209)
Protocol(String)
Protocol violation error
Timeout
Operation timed out.
Aborted
Request was aborted.
Fs(String)
Filesystem error (notify, mapping, etc.)
InvalidUtf8(FromUtf8Error)
Invalid UTF-8 sequence in response.
Config(String)
Configuration error in Braid setup.
Internal(String)
Internal error in the library.
HistoryDropped
Server has dropped version history (HTTP 410 Gone - Section 4.5).
MergeConflict(String)
Conflicting versions detected in merge (HTTP 293 - Section 2.2).
Anyhow(String)
Generic anyhow error (temporary for conversion).
Implementations§
Source§impl BraidError
impl BraidError
Sourcepub fn is_retryable(&self) -> bool
pub fn is_retryable(&self) -> bool
Check if this error is retryable.
Returns true for transient errors that may succeed on retry:
- Network timeouts
- I/O errors
- HTTP 408, 425, 429, 502, 503, 504
Returns false for permanent errors.
Sourcepub fn is_access_denied(&self) -> bool
pub fn is_access_denied(&self) -> bool
Check if this is an access denied error.
Returns true for HTTP 401 (Unauthorized) or 403 (Forbidden).
Trait Implementations§
Source§impl Debug for BraidError
impl Debug for BraidError
Source§impl Display for BraidError
impl Display for BraidError
Source§impl Error for BraidError
impl Error for BraidError
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
Source§impl From<Error> for BraidError
impl From<Error> for BraidError
Source§impl From<Error> for BraidError
impl From<Error> for BraidError
Source§impl From<FromUtf8Error> for BraidError
impl From<FromUtf8Error> for BraidError
Source§fn from(source: FromUtf8Error) -> Self
fn from(source: FromUtf8Error) -> Self
Auto Trait Implementations§
impl Freeze for BraidError
impl !RefUnwindSafe for BraidError
impl Send for BraidError
impl Sync for BraidError
impl Unpin for BraidError
impl !UnwindSafe for BraidError
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> 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.