aboutsummaryrefslogtreecommitdiff
path: root/src/format/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/format/mod.rs')
-rw-r--r--src/format/mod.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/format/mod.rs b/src/format/mod.rs
new file mode 100644
index 0000000..9f6d30d
--- /dev/null
+++ b/src/format/mod.rs
@@ -0,0 +1,17 @@
+//! Traits and structs for conversion between various formats.
+//! As the source format may not provide the same information as the
+//! target format, all formats must allow for omittable information.
+
+use std::io::{ self, BufRead, Write };
+
+use log::Event;
+
+pub mod weechat3;
+
+pub trait Encode<W> where W: Write {
+ fn encode(&self, output: W, event: &Event) -> io::Result<()>;
+}
+
+pub trait Decode<R, O> where R: BufRead, O: Iterator<Item = ::Result<Event>> {
+ fn decode(&mut self, input: R) -> O;
+}