From 955d25d61a163b48056a2cc13b084c9afb2a9a94 Mon Sep 17 00:00:00 2001 From: Mike Dilger Date: Sun, 9 Jul 2023 00:35:22 +1200 Subject: [PATCH] Derive speedy serialization traits where we can (and serde where we missed) for stored data --- src/db/event_flags.rs | 3 ++- src/db/person_relay.rs | 3 ++- src/db/relay.rs | 3 ++- src/settings.rs | 3 ++- src/ui/theme/mod.rs | 5 +++-- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/db/event_flags.rs b/src/db/event_flags.rs index fdfb4198..7776e484 100644 --- a/src/db/event_flags.rs +++ b/src/db/event_flags.rs @@ -2,9 +2,10 @@ use crate::error::Error; use crate::globals::GLOBALS; use nostr_types::Id; use serde::{Deserialize, Serialize}; +use speedy::{Readable, Writable}; use tokio::task::spawn_blocking; -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize, Readable, Writable)] pub struct DbEventFlags { pub event: Id, pub viewed: bool, diff --git a/src/db/person_relay.rs b/src/db/person_relay.rs index 3b394af7..b38cd6f9 100644 --- a/src/db/person_relay.rs +++ b/src/db/person_relay.rs @@ -3,9 +3,10 @@ use crate::error::Error; use crate::globals::GLOBALS; use gossip_relay_picker::Direction; use nostr_types::{PublicKeyHex, RelayUrl, Unixtime}; +use speedy::{Readable, Writable}; use tokio::task::spawn_blocking; -#[derive(Debug)] +#[derive(Debug, Readable, Writable)] pub struct DbPersonRelay { // The person pub person: String, diff --git a/src/db/relay.rs b/src/db/relay.rs index 871be363..c4b5c334 100644 --- a/src/db/relay.rs +++ b/src/db/relay.rs @@ -1,9 +1,10 @@ use crate::error::Error; use crate::globals::GLOBALS; use nostr_types::{Id, RelayInformationDocument, RelayUrl}; +use serde::{Deserialize, Serialize}; use tokio::task::spawn_blocking; -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Serialize, Deserialize)] pub struct DbRelay { pub url: RelayUrl, pub success_count: u64, diff --git a/src/settings.rs b/src/settings.rs index 7b9a816b..56163567 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -4,8 +4,9 @@ use crate::ui::{Theme, ThemeVariant}; use nostr_types::{EventKind, PublicKey}; use rusqlite::params; use serde::{Deserialize, Serialize}; +use speedy::{Readable, Writable}; -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug, Serialize, Deserialize, Readable, Writable)] pub struct Settings { pub feed_chunk: u64, pub replies_chunk: u64, diff --git a/src/ui/theme/mod.rs b/src/ui/theme/mod.rs index 3865461b..515376bc 100644 --- a/src/ui/theme/mod.rs +++ b/src/ui/theme/mod.rs @@ -6,6 +6,7 @@ use eframe::egui::{ }; use eframe::epaint::{FontFamily, FontId, Shadow}; use serde::{Deserialize, Serialize}; +use speedy::{Readable, Writable}; use std::collections::BTreeMap; mod classic; @@ -26,14 +27,14 @@ pub fn apply_theme(theme: Theme, ctx: &Context) { } // note: if we store anything inside the variants, we can't use macro_rules. -#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, Serialize, Deserialize, Readable, Writable)] pub enum ThemeVariant { Classic, Default, Roundy, } -#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, Serialize, Deserialize, Readable, Writable)] pub struct Theme { pub variant: ThemeVariant, pub dark_mode: bool,