From db49cf3c4b8485a04f613cfe3cdef180bd8a33ce Mon Sep 17 00:00:00 2001 From: William Casarin Date: Sat, 31 Aug 2024 08:08:17 -0700 Subject: [PATCH] tidy: move ColumnKind to its own file timeline file is starting to get messy Signed-off-by: William Casarin --- src/app.rs | 5 +++-- src/args.rs | 3 ++- src/column.rs | 45 +++++++++++++++++++++++++++++++++++++++++++++ src/lib.rs | 1 + src/timeline.rs | 45 +-------------------------------------------- 5 files changed, 52 insertions(+), 47 deletions(-) create mode 100644 src/column.rs diff --git a/src/app.rs b/src/app.rs index 9e0e175..9f74c4c 100644 --- a/src/app.rs +++ b/src/app.rs @@ -3,6 +3,7 @@ use crate::actionbar::BarResult; use crate::app_creation::setup_cc; use crate::app_style::user_requested_visuals_change; use crate::args::Args; +use crate::column::ColumnKind; use crate::draft::Drafts; use crate::frame_history::FrameHistory; use crate::imgcache::ImageCache; @@ -12,11 +13,11 @@ use crate::notecache::{CachedNote, NoteCache}; use crate::relay_pool_manager::RelayPoolManager; use crate::route::Route; use crate::thread::{DecrementResult, Threads}; -use crate::timeline::{ColumnKind, Timeline, TimelineSource, ViewFilter}; +use crate::timeline::{Timeline, TimelineSource, ViewFilter}; use crate::ui::note::PostAction; use crate::ui::{self, AccountSelectionWidget, DesktopGlobalPopup}; use crate::ui::{DesktopSidePanel, RelayView, View}; -use crate::{Result, filter}; +use crate::{filter, Result}; use egui_nav::{Nav, NavAction}; use enostr::{ClientMessage, RelayEvent, RelayMessage, RelayPool}; use std::cell::RefCell; diff --git a/src/args.rs b/src/args.rs index 379f3fa..d3ae59f 100644 --- a/src/args.rs +++ b/src/args.rs @@ -1,4 +1,5 @@ -use crate::timeline::{ColumnKind, ListKind, PubkeySource, Timeline}; +use crate::column::{ColumnKind, ListKind, PubkeySource}; +use crate::timeline::Timeline; use crate::Error; use enostr::{Filter, Keypair, Pubkey, SecretKey}; use nostrdb::{Ndb, Transaction}; diff --git a/src/column.rs b/src/column.rs new file mode 100644 index 0000000..b38e1de --- /dev/null +++ b/src/column.rs @@ -0,0 +1,45 @@ +use enostr::Pubkey; +use std::fmt::Display; + +#[derive(Clone, Debug)] +pub enum PubkeySource { + Explicit(Pubkey), + DeckAuthor, +} + +#[derive(Debug)] +pub enum ListKind { + Contact(PubkeySource), +} + +/// +/// What kind of column is it? +/// - Follow List +/// - Notifications +/// - DM +/// - filter +/// - ... etc +#[derive(Debug)] +pub enum ColumnKind { + List(ListKind), + Universe, + + /// Generic filter + Generic, +} + +impl Display for ColumnKind { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + ColumnKind::List(ListKind::Contact(_src)) => f.write_str("Contacts"), + ColumnKind::Generic => f.write_str("Timeline"), + ColumnKind::Universe => f.write_str("Universe"), + } + } +} + +impl ColumnKind { + pub fn contact_list(pk: PubkeySource) -> Self { + ColumnKind::List(ListKind::Contact(pk)) + } +} diff --git a/src/lib.rs b/src/lib.rs index 373994a..7894fee 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -10,6 +10,7 @@ pub mod app_creation; mod app_style; mod args; mod colors; +mod column; mod draft; mod filter; mod fonts; diff --git a/src/timeline.rs b/src/timeline.rs index f55615f..a8a87a8 100644 --- a/src/timeline.rs +++ b/src/timeline.rs @@ -1,4 +1,5 @@ use crate::app::{get_unknown_note_ids, UnknownId}; +use crate::column::{ColumnKind, PubkeySource}; use crate::error::Error; use crate::filter; use crate::note::NoteRef; @@ -12,54 +13,10 @@ use enostr::Pubkey; use nostrdb::{Filter, Note, Subscription, Transaction}; use std::cell::RefCell; use std::collections::HashSet; -use std::fmt::Display; use std::rc::Rc; use tracing::{debug, error}; -#[derive(Clone, Debug)] -pub enum PubkeySource { - Explicit(Pubkey), - DeckAuthor, -} - -#[derive(Debug)] -pub enum ListKind { - Contact(PubkeySource), -} - -/// -/// What kind of column is it? -/// - Follow List -/// - Notifications -/// - DM -/// - filter -/// - ... etc -#[derive(Debug)] -pub enum ColumnKind { - List(ListKind), - Universe, - - /// Generic filter - Generic, -} - -impl Display for ColumnKind { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - ColumnKind::List(ListKind::Contact(_src)) => f.write_str("Contacts"), - ColumnKind::Generic => f.write_str("Timeline"), - ColumnKind::Universe => f.write_str("Universe"), - } - } -} - -impl ColumnKind { - pub fn contact_list(pk: PubkeySource) -> Self { - ColumnKind::List(ListKind::Contact(pk)) - } -} - #[derive(Debug, Copy, Clone)] pub enum TimelineSource<'a> { Column { ind: usize },