pub enum ValidationError {
Show 13 variants
MissingPayload,
MissingWelcomeVersion,
Protobuf(DecodeError),
Tls(Error),
Protocol(ProtocolMessageError),
InvalidTopic(ConversionError),
Inbox(FromHexError),
KeyPackage(KeyPackageVerificationError),
IdentityEncoding(ConversionError),
Association(AssociationError),
Signature(SignatureError),
StaleBlock(u64),
InvalidAccountId(ConversionError),
}Variants§
MissingPayload
The payload selection is absent. Not retryable.
MissingWelcomeVersion
The welcome version is absent. Not retryable.
Protobuf(DecodeError)
Protobuf framing is malformed. Not retryable.
Tls(Error)
MLS framing is malformed. Not retryable.
Protocol(ProtocolMessageError)
The MLS body is not a protocol message. Not retryable.
InvalidTopic(ConversionError)
The topic identifier has an invalid shape. Not retryable.
Inbox(FromHexError)
The inbox identifier is not hexadecimal. Not retryable.
KeyPackage(KeyPackageVerificationError)
The key package fails existing validation. Not retryable.
IdentityEncoding(ConversionError)
Identity fields cannot be decoded, for example a field is unset or unlisted, or an Ethereum identifier is not in its one form. Not retryable.
Association(AssociationError)
Identity state transition failed. Nested verifier failures can be retryable.
Signature(SignatureError)
Signature verification failed. Provider and I/O failures can be retryable.
StaleBlock(u64)
An ERC-6492 signature names a block after the chain head or more than
MAX_BLOCK_AGE_SECS before it. Not retryable.
InvalidAccountId(ConversionError)
An ERC-6492 signature’s account id is not a CAIP-10 account id, so the signature cannot be verified. Not retryable.
Implementations§
Source§impl ValidationError
impl ValidationError
Sourcepub fn reason(&self) -> Reason
pub fn reason(&self) -> Reason
Classify this error for the backend publish response.
The transport supplies the input index. Retryability is kept separate so
a provider failure can become UNAVAILABLE instead of a bad-payload
reason. An identity update is malformed only when its inbox id names no
topic; every other identity failure is a signature or identity reason.
Trait Implementations§
Source§impl Debug for ValidationError
impl Debug for ValidationError
Source§impl Display for ValidationError
impl Display for ValidationError
Source§impl Error for ValidationError
impl Error for ValidationError
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 ErrorCode for ValidationError
impl ErrorCode for ValidationError
Source§fn error_code(&self) -> &'static str
fn error_code(&self) -> &'static str
Source§impl From<AssociationError> for ValidationError
impl From<AssociationError> for ValidationError
Source§impl From<DecodeError> for ValidationError
impl From<DecodeError> for ValidationError
Source§fn from(source: DecodeError) -> Self
fn from(source: DecodeError) -> Self
Source§impl From<Error> for ValidationError
impl From<Error> for ValidationError
Source§impl From<FromHexError> for ValidationError
impl From<FromHexError> for ValidationError
Source§impl From<KeyPackageVerificationError> for ValidationError
impl From<KeyPackageVerificationError> for ValidationError
Source§impl From<ProtocolMessageError> for ValidationError
impl From<ProtocolMessageError> for ValidationError
Source§impl From<SignatureError> for ValidationError
impl From<SignatureError> for ValidationError
Source§impl RetryableError for ValidationError
impl RetryableError for ValidationError
fn is_retryable(&self) -> bool
Auto Trait Implementations§
impl Freeze for ValidationError
impl !RefUnwindSafe for ValidationError
impl Send for ValidationError
impl Sync for ValidationError
impl Unpin for ValidationError
impl UnsafeUnpin for ValidationError
impl !UnwindSafe for ValidationError
Blanket Implementations§
§impl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
§fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read more§fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL modifier for aggregate functions Read more§fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
§fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
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<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<T> IntoSql for T
impl<T> IntoSql for T
§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].