Files
notedeck/src/subscriptions.rs
William Casarin 00091c5088 Switch to Columns
Also refactor damus app usage to only pass in things that we need in views.

Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-11 15:49:34 -07:00

28 lines
819 B
Rust

use crate::timeline::{TimelineId, TimelineKind};
use std::collections::HashMap;
#[derive(Debug, Clone)]
pub enum SubKind {
/// Initial subscription. This is the first time we do a remote subscription
/// for a timeline
Initial,
/// One shot requests, we can just close after we receive EOSE
OneShot,
Timeline(TimelineKind),
/// We are fetching a contact list so that we can use it for our follows
/// Filter.
// TODO: generalize this to any list?
FetchingContactList(TimelineId),
}
/// Subscriptions that need to be tracked at various stages. Sometimes we
/// need to do A, then B, then C. Tracking requests at various stages by
/// mapping uuid subids to explicit states happens here.
#[derive(Default)]
pub struct Subscriptions {
pub subs: HashMap<String, SubKind>,
}