xmtp_db/encrypted_store/group_intent/
error.rs1use thiserror::Error;
2use xmtp_common::RetryableError;
3use xmtp_proto::types::{CursorList, GroupId};
4
5use crate::group_intent::PayloadHash;
6
7#[derive(Debug, Error)]
8pub enum GroupIntentError {
9 #[error(
10 "intent {} for group {group_id} has invalid dependencies={}. one message cannot have more than 1 dependency in same epoch",
11 hex::encode(payload_hash),
12 cursors
13 )]
14 MoreThanOneDependency {
15 payload_hash: PayloadHash,
16 cursors: CursorList,
17 group_id: GroupId,
18 },
19 #[error("intent with hash {hash} has no known dependencies")]
20 NoDependencyFound { hash: PayloadHash },
21}
22
23impl RetryableError for GroupIntentError {
24 fn is_retryable(&self) -> bool {
25 match self {
26 Self::MoreThanOneDependency { .. } => true,
27 Self::NoDependencyFound { .. } => true,
28 }
29 }
30}