about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--templates/src/assets.rs47
-rw-r--r--templates/src/lib.rs54
2 files changed, 48 insertions, 53 deletions
diff --git a/templates/src/assets.rs b/templates/src/assets.rs
new file mode 100644
index 0000000..493c14d
--- /dev/null
+++ b/templates/src/assets.rs
@@ -0,0 +1,47 @@
+use axum::extract::Path;
+use axum::http::header::{CACHE_CONTROL, CONTENT_ENCODING, CONTENT_TYPE, X_CONTENT_TYPE_OPTIONS};
+use axum::http::StatusCode;
+use axum::response::{IntoResponse, Response};
+
+const ASSETS: include_dir::Dir<'static> = include_dir::include_dir!("$OUT_DIR/");
+const CACHE_FOR_A_DAY: &str = "max-age=86400";
+const GZIP: &str = "gzip";
+
+pub async fn statics(Path(path): Path<String>) -> Response {
+    let content_type: &'static str = if path.ends_with(".js") {
+        "application/javascript"
+    } else if path.ends_with(".css") {
+        "text/css"
+    } else if path.ends_with(".html") {
+        "text/html; charset=\"utf-8\""
+    } else {
+        "application/octet-stream"
+    };
+
+    match ASSETS.get_file(path.clone() + ".gz") {
+        Some(file) => (
+            StatusCode::OK,
+            [
+                (CONTENT_TYPE, content_type),
+                (CONTENT_ENCODING, GZIP),
+                (CACHE_CONTROL, CACHE_FOR_A_DAY),
+                (X_CONTENT_TYPE_OPTIONS, "nosniff"),
+            ],
+            file.contents(),
+        )
+            .into_response(),
+        None => match ASSETS.get_file(path) {
+            Some(file) => (
+                StatusCode::OK,
+                [
+                    (CONTENT_TYPE, content_type),
+                    (CACHE_CONTROL, CACHE_FOR_A_DAY),
+                    (X_CONTENT_TYPE_OPTIONS, "nosniff"),
+                ],
+                file.contents(),
+            )
+                .into_response(),
+            None => StatusCode::NOT_FOUND.into_response(),
+        },
+    }
+}
diff --git a/templates/src/lib.rs b/templates/src/lib.rs
index fde0dab..0f9f7c6 100644
--- a/templates/src/lib.rs
+++ b/templates/src/lib.rs
@@ -8,60 +8,8 @@ mod login;
 pub use login::{LoginPage, LogoutPage};
 mod mf2;
 pub use mf2::{Entry, Feed, Food, VCard, POSTS_PER_PAGE};
-
 pub mod admin;
-
-pub mod assets {
-    use axum::extract::Path;
-    use axum::http::header::{
-        CACHE_CONTROL, CONTENT_ENCODING, CONTENT_TYPE, X_CONTENT_TYPE_OPTIONS,
-    };
-    use axum::http::StatusCode;
-    use axum::response::{IntoResponse, Response};
-
-    const ASSETS: include_dir::Dir<'static> = include_dir::include_dir!("$OUT_DIR/");
-    const CACHE_FOR_A_DAY: &str = "max-age=86400";
-    const GZIP: &str = "gzip";
-
-    pub async fn statics(Path(path): Path<String>) -> Response {
-        let content_type: &'static str = if path.ends_with(".js") {
-            "application/javascript"
-        } else if path.ends_with(".css") {
-            "text/css"
-        } else if path.ends_with(".html") {
-            "text/html; charset=\"utf-8\""
-        } else {
-            "application/octet-stream"
-        };
-
-        match ASSETS.get_file(path.clone() + ".gz") {
-            Some(file) => (
-                StatusCode::OK,
-                [
-                    (CONTENT_TYPE, content_type),
-                    (CONTENT_ENCODING, GZIP),
-                    (CACHE_CONTROL, CACHE_FOR_A_DAY),
-                    (X_CONTENT_TYPE_OPTIONS, "nosniff"),
-                ],
-                file.contents(),
-            )
-                .into_response(),
-            None => match ASSETS.get_file(path) {
-                Some(file) => (
-                    StatusCode::OK,
-                    [
-                        (CONTENT_TYPE, content_type),
-                        (CACHE_CONTROL, CACHE_FOR_A_DAY),
-                        (X_CONTENT_TYPE_OPTIONS, "nosniff"),
-                    ],
-                    file.contents(),
-                )
-                    .into_response(),
-                None => StatusCode::NOT_FOUND.into_response(),
-            },
-        }
-    }
-}
+pub mod assets;
 
 #[cfg(test)]
 mod tests {