aboutsummaryrefslogtreecommitdiff
path: root/src/log.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/log.rs')
-rw-r--r--src/log.rs57
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
+ }
+}