aboutsummaryrefslogtreecommitdiff
path: root/src/format/mod.rs
blob: 0716dba8f49ed9cd0848c09eea7f56be079ac153 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//! 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::{ BufRead, Write };

use log::Event;

pub mod weechat3;
pub mod binary;

pub trait Encode<W> where W: Write {
    fn encode(&self, output: W, event: &Event) -> ::Result<()>;
}

pub trait Decode<R, O> where R: BufRead, O: Iterator<Item = ::Result<Event>> {
    fn decode(&mut self, input: R) -> O;
}