]> git.r.bdr.sh - rbdr/page/blobdiff - src/file_handler/file_strategies/gemini.rs
Add logic to read and assign files / layout
[rbdr/page] / src / file_handler / file_strategies / gemini.rs
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..905e1a9f07ecd7ba9a2dcc3efb07e928bfbaafb6 100644 (file)
@@ -0,0 +1,29 @@
+pub struct Strategy {}
+
+use std::path::PathBuf;
+
+use crate::file_handler::{File, FileType, FileHandlerStrategy};
+
+impl FileHandlerStrategy for Strategy {
+    fn is(&self, path: &PathBuf) -> bool {
+        if let Some(extension) = path.extension() {
+            return !path.is_dir() && extension == "gmi"
+        }
+        false
+    }
+
+    fn identify(&self) -> FileType {
+        FileType::Gemini
+    }
+
+    fn can_handle(&self, file_type: &FileType) -> bool {
+        match file_type {
+            FileType::Gemini => true,
+            _ => false,
+        }
+    }
+
+    fn handle(&self, file: &File) {
+        println!("Should parse and copy {}", file.path.display())
+    }
+}