mirror of
https://github.com/aljazceru/notedeck.git
synced 2026-01-15 06:14:20 +01:00
Also refactor damus app usage to only pass in things that we need in views. Signed-off-by: William Casarin <jb55@jb55.com>
28 lines
819 B
Rust
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>,
|
|
}
|