diff options
Diffstat (limited to 'src/log.rs')
-rw-r--r-- | src/log.rs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/log.rs b/src/log.rs new file mode 100644 index 0000000..3079b38 --- /dev/null +++ b/src/log.rs @@ -0,0 +1,57 @@ +//! Common structures to represent the actual log data in memory. +//! These will be used by all formats for encoding and decoding. + +/// A whole log, in memory. This structure does not specify its +/// use. It may represent a private query, or the log of a channel. +pub struct Log { + pub entries: Vec<Event> +} + +/// All representable events, such as messages, quits, joins +/// and topic changes. +#[derive(Debug)] +pub enum Event { + Msg { + from: String, + content: String, + time: i64 + }, + Action { + from: String, + content: String, + time: i64 + }, + Join { + nick: String, + mask: String, + time: i64 + }, + Quit { + nick: String, + mask: String, + time: i64 + }, + Nick { + old: String, + new: String, + time: i64 + }, + Notice { + nick: String, + content: String, + time: i64 + }, + Kick { + kicked_nick: String, + kicking_nick: String, + kick_message: String, + time: i64 + }, + Topic { + new_topic: String, + time: i64 + }, + Mode { + time: i64 + } +} |