noteref: move to note.rs
This doesn't need to be in timeline Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
@@ -6,11 +6,12 @@ use crate::error::Error;
|
|||||||
use crate::frame_history::FrameHistory;
|
use crate::frame_history::FrameHistory;
|
||||||
use crate::imgcache::ImageCache;
|
use crate::imgcache::ImageCache;
|
||||||
use crate::key_storage::KeyStorageType;
|
use crate::key_storage::KeyStorageType;
|
||||||
|
use crate::note::NoteRef;
|
||||||
use crate::notecache::{CachedNote, NoteCache};
|
use crate::notecache::{CachedNote, NoteCache};
|
||||||
use crate::relay_pool_manager::RelayPoolManager;
|
use crate::relay_pool_manager::RelayPoolManager;
|
||||||
use crate::route::Route;
|
use crate::route::Route;
|
||||||
use crate::timeline;
|
use crate::timeline;
|
||||||
use crate::timeline::{MergeKind, NoteRef, Timeline, ViewFilter};
|
use crate::timeline::{MergeKind, Timeline, ViewFilter};
|
||||||
use crate::ui::note::PostAction;
|
use crate::ui::note::PostAction;
|
||||||
use crate::ui::{self, AccountSelectionWidget, DesktopGlobalPopup};
|
use crate::ui::{self, AccountSelectionWidget, DesktopGlobalPopup};
|
||||||
use crate::ui::{DesktopSidePanel, RelayView, View};
|
use crate::ui::{DesktopSidePanel, RelayView, View};
|
||||||
|
|||||||
36
src/note.rs
36
src/note.rs
@@ -1 +1,37 @@
|
|||||||
|
use nostrdb::{NoteKey, QueryResult};
|
||||||
|
use std::cmp::Ordering;
|
||||||
|
|
||||||
|
#[derive(Debug, Eq, PartialEq, Copy, Clone)]
|
||||||
|
pub struct NoteRef {
|
||||||
|
pub key: NoteKey,
|
||||||
|
pub created_at: u64,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl NoteRef {
|
||||||
|
pub fn new(key: NoteKey, created_at: u64) -> Self {
|
||||||
|
NoteRef { key, created_at }
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn from_query_result(qr: QueryResult<'_>) -> Self {
|
||||||
|
NoteRef {
|
||||||
|
key: qr.note_key,
|
||||||
|
created_at: qr.note.created_at(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Ord for NoteRef {
|
||||||
|
fn cmp(&self, other: &Self) -> Ordering {
|
||||||
|
match self.created_at.cmp(&other.created_at) {
|
||||||
|
Ordering::Equal => self.key.cmp(&other.key),
|
||||||
|
Ordering::Less => Ordering::Greater,
|
||||||
|
Ordering::Greater => Ordering::Less,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl PartialOrd for NoteRef {
|
||||||
|
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
|
||||||
|
Some(self.cmp(other))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
use crate::draft::DraftSource;
|
use crate::draft::DraftSource;
|
||||||
|
use crate::note::NoteRef;
|
||||||
use crate::notecache::CachedNote;
|
use crate::notecache::CachedNote;
|
||||||
use crate::ui::note::PostAction;
|
use crate::ui::note::PostAction;
|
||||||
use crate::{ui, Damus};
|
use crate::{ui, Damus};
|
||||||
@@ -11,35 +12,12 @@ use crate::ui::BarAction;
|
|||||||
use egui_tabs::TabColor;
|
use egui_tabs::TabColor;
|
||||||
use egui_virtual_list::VirtualList;
|
use egui_virtual_list::VirtualList;
|
||||||
use enostr::{Filter, NoteId};
|
use enostr::{Filter, NoteId};
|
||||||
use nostrdb::{Note, NoteKey, Subscription, Transaction};
|
use nostrdb::{Note, Subscription, Transaction};
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::cmp::Ordering;
|
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
use tracing::{debug, info, warn};
|
use tracing::{debug, info, warn};
|
||||||
|
|
||||||
#[derive(Debug, Eq, PartialEq, Copy, Clone)]
|
|
||||||
pub struct NoteRef {
|
|
||||||
pub key: NoteKey,
|
|
||||||
pub created_at: u64,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Ord for NoteRef {
|
|
||||||
fn cmp(&self, other: &Self) -> Ordering {
|
|
||||||
match self.created_at.cmp(&other.created_at) {
|
|
||||||
Ordering::Equal => self.key.cmp(&other.key),
|
|
||||||
Ordering::Less => Ordering::Greater,
|
|
||||||
Ordering::Greater => Ordering::Less,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl PartialOrd for NoteRef {
|
|
||||||
fn partial_cmp(&self, other: &Self) -> Option<Ordering> {
|
|
||||||
Some(self.cmp(other))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Copy, Clone, Eq, PartialEq, Debug)]
|
#[derive(Copy, Clone, Eq, PartialEq, Debug)]
|
||||||
pub enum ViewFilter {
|
pub enum ViewFilter {
|
||||||
Notes,
|
Notes,
|
||||||
|
|||||||
Reference in New Issue
Block a user