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 wantedSubjectPrefixes were requested than allowed (max 100)")]
34 TooManySubjectPrefixesWanted,
35 #[error("more wantedSubjects were requested than allowed (max 50,000)")]
36 TooManySubjectsWanted,
37}
38
39#[derive(Debug, Error)]
40pub enum DelayError {
41 #[error("delay ended")]
42 DelayEnded,
43}
44
45#[derive(Debug, Error)]
46pub enum ServerError {
47 #[error("failed to configure server logger: {0}")]
48 ConfigLogError(std::io::Error),
49 #[error("failed to render json for openapi: {0}")]
50 OpenApiJsonFail(serde_json::Error),
51 #[error(transparent)]
52 FailedToBuildServer(#[from] dropshot::BuildError),
53 #[error("server exited: {0}")]
54 ServerExited(String),
55 #[error("server closed badly: {0}")]
56 BadClose(String),
57}