aboutsummaryrefslogtreecommitdiff
path: root/src/format/mod.rs
blob: 9f6d30d59a6ee2e4c4ccb0b7d2cd3bfb9da3ee57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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;
}