···2323}
24242525#[derive(Debug, Error)]
2626+pub enum SubscriberUpdateError {
2727+ #[error("failed to parse json for subscriber update: {0}")]
2828+ FailedToParseMessage(serde_json::Error),
2929+ #[error("more wantedSources were requested than allowed (max 1,000)")]
3030+ TooManySourcesWanted,
3131+ #[error("more wantedSubjectDids were requested than allowed (max 10,000)")]
3232+ TooManyDidsWanted,
3333+ #[error("more wantedSubjects were requested than allowed (max 50,000)")]
3434+ TooManySubjectsWanted,
3535+}
3636+3737+#[derive(Debug, Error)]
2638pub enum DelayError {
2739 #[error("delay ended")]
2840 DelayEnded,
+8-1
spacedust/src/lib.rs
···88use links::CollectedLink;
99use jetstream::events::CommitEvent;
1010use tokio_tungstenite::tungstenite::Message;
1111-use serde::Serialize;
1111+use serde::{Deserialize, Serialize};
1212+use server::MultiSubscribeQuery;
12131314#[derive(Debug)]
1415pub struct FilterableProperties {
···8485 // TODO: include the record too? would save clients a level of hydration
8586 // ^^ no, not for now. until we backfill + support broader deletes at *least*.
8687}
8888+8989+#[derive(Debug, Deserialize)]
9090+#[serde(tag = "type", content = "payload", rename_all = "snake_case")]
9191+pub enum SubscriberSourcedMessage {
9292+ OptionsUpdate(MultiSubscribeQuery),
9393+}