pub struct ParseError {
pub code: ErrorCode,
pub message: String,
pub origin: ErrorOrigin,
pub info: ParseErrorInfo,
}Expand description
A Parse error: a code plus a message, plus how much of it may be seen.
No source chaining and no automatic From conversions from I/O or driver errors. That is
deliberate: mapping a storage failure onto a Parse code is a decision each adapter must make
explicitly, because picking the wrong code is a wire-compatibility bug that no type system
will catch.
Fields§
§code: ErrorCode§message: String§origin: ErrorOriginWhich envelope this becomes. See ErrorOrigin.
info: ParseErrorInfoData for the server, never for the client. See ParseErrorInfo.
Implementations§
Source§impl ParseError
impl ParseError
pub fn new(code: ErrorCode, message: impl Into<String>) -> Self
Sourcepub fn internal(detail: impl Into<String>) -> Self
pub fn internal(detail: impl Into<String>) -> Self
A failure upstream throws as a bare Error, so its detail never reaches a client.
The client sees {"code":1,"message":"Internal server error."} whatever detail says
(middlewares.js:636-644); detail is logged and is the only record of what happened.
Write it for an operator reading a log, not for an SDK.
Use this wherever upstream throws a plain Error, and new(ErrorCode::InternalServerError, ..) where upstream throws a Parse.Error carrying that code. The two are different bodies.
Sourcepub fn with_duplicated_field(self, field: impl Into<String>) -> Self
pub fn with_duplicated_field(self, field: impl Into<String>) -> Self
Record which field’s unique index collided, out of band.
Sourcepub fn duplicated_field(&self) -> Option<&str>
pub fn duplicated_field(&self) -> Option<&str>
The field whose unique index collided, if the adapter could recover it.
Source§impl ParseError
Denials whose detail is logged and, by default, withheld.
impl ParseError
Denials whose detail is logged and, by default, withheld.
Sourcepub fn sanitized(
code: ErrorCode,
detailed: impl Into<String>,
generic: &str,
detail: ErrorDetail,
) -> Self
pub fn sanitized( code: ErrorCode, detailed: impl Into<String>, generic: &str, detail: ErrorDetail, ) -> Self
createSanitizedError (Error.js:13-21): the single constructor for a denial whose
detailed message upstream replaces with a generic one.
The set of call sites is contract in both directions. Upstream routes a specific list of
errors through this function and leaves the rest alone, so an error parse-rust sanitizes
that upstream does not is as much a wire divergence as one it fails to sanitize. Adding a
call here means finding the matching createSanitizedError at the pin first.
generic is upstream’s sanitizedMessage parameter, which defaults to Permission denied and is overridden at exactly one call site (DatabaseController.js:1590-1595).
It is required here rather than defaulted, because the two upstream spellings are
different strings on the wire and picking the wrong one silently is the failure this
argument exists to prevent.
Sourcepub fn permission_denied(
code: ErrorCode,
detailed: impl Into<String>,
detail: ErrorDetail,
) -> Self
pub fn permission_denied( code: ErrorCode, detailed: impl Into<String>, detail: ErrorDetail, ) -> Self
The common case: upstream’s default sanitizedMessage.
Source§impl ParseError
Convenience constructors for the codes used most often in the core.
impl ParseError
Convenience constructors for the codes used most often in the core.
pub fn invalid_json(message: impl Into<String>) -> Self
pub fn incorrect_type(message: impl Into<String>) -> Self
pub fn invalid_key_name(message: impl Into<String>) -> Self
pub fn invalid_acl(message: impl Into<String>) -> Self
pub fn invalid_query(message: impl Into<String>) -> Self
Trait Implementations§
Source§impl Clone for ParseError
impl Clone for ParseError
Source§fn clone(&self) -> ParseError
fn clone(&self) -> ParseError
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 ParseError
impl Debug for ParseError
Source§impl Display for ParseError
impl Display for ParseError
impl Eq for ParseError
Source§impl Error for ParseError
impl Error for ParseError
1.30.0 · 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 PartialEq for ParseError
impl PartialEq for ParseError
impl StructuralPartialEq for ParseError
Auto Trait Implementations§
impl Freeze for ParseError
impl RefUnwindSafe for ParseError
impl Send for ParseError
impl Sync for ParseError
impl Unpin for ParseError
impl UnsafeUnpin for ParseError
impl UnwindSafe for ParseError
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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.