aboutsummaryrefslogtreecommitdiff
path: root/apps/koffice/libko/src/lib.rs
diff options
context:
space:
mode:
authorKaiden Fey <kookie@spacekookie.de>2021-02-21 14:56:11 +0100
committerKaiden Fey <kookie@spacekookie.de>2021-02-21 14:56:11 +0100
commitf186a7345dfc99347673f46e0daff0cb63ac8492 (patch)
tree5179ffd4654b80ea11a1656e28ef244439648ba4 /apps/koffice/libko/src/lib.rs
parenteffbdeed66e8de8e769b8ac069926ad1a9110e62 (diff)
k-office: initial code dumpk-office/init
Diffstat (limited to 'apps/koffice/libko/src/lib.rs')
-rw-r--r--apps/koffice/libko/src/lib.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/apps/koffice/libko/src/lib.rs b/apps/koffice/libko/src/lib.rs
new file mode 100644
index 000000000000..33d6b38ae1b1
--- /dev/null
+++ b/apps/koffice/libko/src/lib.rs
@@ -0,0 +1,35 @@
+//! A library that provides basic building blocks of k-office tools
+
+pub mod cass;
+
+mod client;
+pub use client::*;
+
+mod invoice;
+pub use invoice::*;
+
+mod proj;
+pub use proj::*;
+
+mod store;
+pub use store::*;
+
+use serde::{de::DeserializeOwned, Serialize};
+
+pub trait Io {
+ fn to_yaml(&self) -> String;
+ fn from_yaml(s: impl Into<String>) -> Self;
+}
+
+impl<T> Io for T
+where
+ T: Serialize + DeserializeOwned,
+{
+ fn to_yaml(&self) -> String {
+ serde_yaml::to_string(self).unwrap()
+ }
+
+ fn from_yaml(s: impl Into<String>) -> Self {
+ serde_yaml::from_str(s.into().as_str()).unwrap()
+ }
+}