forked from
microcosm.blue/microcosm-rs
Constellation, Spacedust, Slingshot, UFOs: atproto crates and services for microcosm
1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum MainTaskError {
5 #[error(transparent)]
6 ConsumerTaskError(#[from] ConsumerError),
7 #[error(transparent)]
8 ServerTaskError(#[from] ServerError),
9 #[error(transparent)]
10 DelayTaskError(#[from] DelayError),
11}
12
13#[derive(Debug, Error)]
14pub enum ConsumerError {
15 #[error(transparent)]
16 JetstreamConnectionError(#[from] jetstream::error::ConnectionError),
17 #[error(transparent)]
18 JetstreamConfigValidationError(#[from] jetstream::error::ConfigValidationError),
19 #[error("jetstream ended")]
20 JetstreamEnded,
21 #[error("delay queue output dropped")]
22 DelayQueueOutputDropped,
23}
24
25#[derive(Debug, Error)]
26pub enum SubscriberUpdateError {
27 #[error("failed to parse json for subscriber update: {0}")]
28 FailedToParseMessage(serde_json::Error),
29 #[error("more wantedSources were requested than allowed (max 1,000)")]
30 TooManySourcesWanted,
31 #[error("more wantedSubjectDids were requested than allowed (max 10,000)")]
32 TooManyDidsWanted,
33 #[error("more wantedSubjects were requested than allowed (max 50,000)")]
34 TooManySubjectsWanted,
35}
36
37#[derive(Debug, Error)]
38pub enum DelayError {
39 #[error("delay ended")]
40 DelayEnded,
41}
42
43#[derive(Debug, Error)]
44pub enum ServerError {
45 #[error("failed to configure server logger: {0}")]
46 ConfigLogError(std::io::Error),
47 #[error("failed to render json for openapi: {0}")]
48 OpenApiJsonFail(serde_json::Error),
49 #[error(transparent)]
50 FailedToBuildServer(#[from] dropshot::BuildError),
51 #[error("server exited: {0}")]
52 ServerExited(String),
53 #[error("server closed badly: {0}")]
54 BadClose(String),
55}