aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main.rs5
-rw-r--r--src/posts/mod.rs33
-rw-r--r--src/posts/note.rs1
3 files changed, 37 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs
index 8ad4bf4..833a7ae 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -3,11 +3,12 @@ use rocket::fs::{relative, FileServer};
use rocket::http::Status;
use rocket::State;
use rocket::{Build, Request, Rocket};
-use rocket_db_pools::sqlx::{self, database};
-use rocket_db_pools::{Connection, Database};
+use rocket_db_pools::sqlx;
+use rocket_db_pools::Database;
use rocket_dyn_templates::{context, Template};
use std::borrow::Cow;
+mod posts;
mod scrobbles;
mod skweets;
diff --git a/src/posts/mod.rs b/src/posts/mod.rs
index e69de29..b0c3749 100644
--- a/src/posts/mod.rs
+++ b/src/posts/mod.rs
@@ -0,0 +1,33 @@
+use chrono::{DateTime, Utc};
+use std::path::Path;
+
+enum PostType {
+ Article,
+ Note,
+}
+
+enum TextFormat {
+ Markdown,
+ Plaintext,
+ Html,
+}
+
+pub struct Post<T: Content> {
+ id: i64,
+ created_at: DateTime<Utc>,
+ updated_at: Option<DateTime<Utc>>,
+ post_type: PostType,
+ media: Option<Vec<Box<Path>>>,
+ content: Option<T>,
+ tags: Vec<String>,
+}
+
+pub trait Content {
+ fn render(&self) -> String;
+}
+
+// impl<T> Post<T> {
+// // renders as internal html (must sanitize)
+// fn new(type: PostType, ) -> Post<T> {
+// }
+// }
diff --git a/src/posts/note.rs b/src/posts/note.rs
index e69de29..95655d4 100644
--- a/src/posts/note.rs
+++ b/src/posts/note.rs
@@ -0,0 +1 @@
+struct note