aboutsummaryrefslogtreecommitdiff
path: root/src/format/mod.rs
blob: 2c271bd63ffcb1cdc73f838333aa857e3485fdc6 (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::{ self, 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;
}