about summary refs log tree commit diff
path: root/src/database/settings.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/database/settings.rs')
-rw-r--r--src/database/settings.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/database/settings.rs b/src/database/settings.rs
index 792a155..77e5821 100644
--- a/src/database/settings.rs
+++ b/src/database/settings.rs
@@ -1,3 +1,5 @@
+pub use kittybox_frontend_renderer::themes::ThemeName;
+
 mod private {
     pub trait Sealed {}
 }
@@ -61,3 +63,20 @@ impl Setting for Webring {
         Self(data)
     }
 }
+
+#[derive(Debug, Default, serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq)]
+/// Theme setting for Kittybox, specifying the stylesheet used for laying out the website.
+pub struct Theme(ThemeName);
+impl private::Sealed for Theme {}
+impl Setting for Theme {
+    type Data = ThemeName;
+    const ID: &'static str = "theme";
+
+    fn into_inner(self) -> Self::Data {
+        self.0
+    }
+
+    fn new(data: Self::Data) -> Self {
+        Self(data)
+    }
+}