diff options
| author | Jokler <jokler.contact@gmail.com> | 2017-10-29 17:09:04 +0100 |
|---|---|---|
| committer | Jokler <jokler.contact@gmail.com> | 2017-12-24 00:21:43 +0100 |
| commit | f3d679da59a64711ef96042668b26dffd1e662d5 (patch) | |
| tree | 1d24afeb7ab6a364b433e30bb23f821d19ccf90d /src/plugins/factoids/database.rs | |
| parent | aa2e6dc0103c303aac0dd688d90c8547b22f8a47 (diff) | |
| download | frippy-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.rs | 18 |
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) + } +} |
