aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/factoids/database.rs
diff options
context:
space:
mode:
authorJokler <jokler.contact@gmail.com>2017-10-29 17:09:04 +0100
committerJokler <jokler.contact@gmail.com>2017-12-24 00:21:43 +0100
commitf3d679da59a64711ef96042668b26dffd1e662d5 (patch)
tree1d24afeb7ab6a364b433e30bb23f821d19ccf90d /src/plugins/factoids/database.rs
parentaa2e6dc0103c303aac0dd688d90c8547b22f8a47 (diff)
downloadfrippy-f3d679da59a64711ef96042668b26dffd1e662d5.tar.gz
frippy-f3d679da59a64711ef96042668b26dffd1e662d5.zip
Add Database trait to be used by the Factoids plugin
Diffstat (limited to 'src/plugins/factoids/database.rs')
-rw-r--r--src/plugins/factoids/database.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/plugins/factoids/database.rs b/src/plugins/factoids/database.rs
new file mode 100644
index 0000000..7a6f568
--- /dev/null
+++ b/src/plugins/factoids/database.rs
@@ -0,0 +1,18 @@
+use std::fmt;
+
+use std::collections::HashMap;
+
+pub trait Database: Send + Sync + fmt::Debug {
+ fn insert(&mut self, name: String, content: String) -> Option<String>;
+ fn get(&self, name: &str) -> Option<&str>;
+}
+
+impl Database for HashMap<String, String> {
+ fn insert(&mut self, name: String, content: String) -> Option<String> {
+ self.insert(name, content)
+ }
+
+ fn get(&self, name: &str) -> Option<&str> {
+ self.get(name).map(String::as_str)
+ }
+}