2017-02-19 05:37:56 -06:00
|
|
|
use {Message, Channel, User};
|
2017-02-13 00:22:06 -06:00
|
|
|
|
2017-02-25 20:17:46 -06:00
|
|
|
use std::sync::Arc;
|
|
|
|
|
2017-02-15 23:41:29 -06:00
|
|
|
pub enum Event {
|
2017-02-19 18:21:11 -06:00
|
|
|
Message { message: Message }, // A user sends a message
|
|
|
|
|
|
|
|
SelfJoin { channel: Channel }, // We join a channel
|
|
|
|
SelfQuit { channel: Channel }, // We quit a channel
|
|
|
|
|
|
|
|
UserJoin { channel: Channel, user: User }, // A user joins a channel
|
|
|
|
UserQuit { channel: Channel, user: User } // A user quits a channel
|
2017-02-13 00:22:06 -06:00
|
|
|
}
|
2017-02-25 20:17:46 -06:00
|
|
|
|
|
|
|
pub struct Envelope {
|
|
|
|
pub from: Option<String>,
|
2017-02-25 20:33:47 -06:00
|
|
|
pub event: Event,
|
2017-02-25 20:17:46 -06:00
|
|
|
pub to: Vec<String>
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Envelope {
|
|
|
|
pub fn new (event: Event) -> Envelope {
|
|
|
|
Envelope {
|
|
|
|
from: None,
|
2017-02-25 20:33:47 -06:00
|
|
|
event: event,
|
2017-02-25 20:17:46 -06:00
|
|
|
to: vec![]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|