diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-06-11 18:45:22 +0200 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2021-06-11 18:45:22 +0200 |
| commit | dcd70175a98c83a3334d7980e5196bc866e04efb (patch) | |
| tree | 2f4df938a1f8b28a454e1c66e6a991ebab9f8033 /mumlib | |
| parent | 904a27493eb3e292d9e2bdeb71ff35f14e6919b3 (diff) | |
| parent | 726ec68532dc964d5eea878e664875aa01ca08f6 (diff) | |
| download | mum-dcd70175a98c83a3334d7980e5196bc866e04efb.tar.gz | |
Merge branch 'default-message-target'
Diffstat (limited to 'mumlib')
| -rw-r--r-- | mumlib/src/command.rs | 15 | ||||
| -rw-r--r-- | mumlib/src/error.rs | 2 |
2 files changed, 14 insertions, 3 deletions
diff --git a/mumlib/src/command.rs b/mumlib/src/command.rs index c5d4676..8cb7cb9 100644 --- a/mumlib/src/command.rs +++ b/mumlib/src/command.rs @@ -77,7 +77,7 @@ pub enum Command { Ping, SendMessage { message: String, - targets: Vec<MessageTarget>, + targets: MessageTarget, }, ServerConnect { host: String, @@ -128,8 +128,17 @@ pub enum CommandResponse { }, } +/// Messages sent to channels can be sent either to a named channel or the +/// currently connected channel. +#[derive(Clone, Debug, Deserialize, Serialize)] +pub enum ChannelTarget { + Current, + Named(String) +} + +/// Messages can be sent to either channels or specific users. #[derive(Clone, Debug, Deserialize, Serialize)] pub enum MessageTarget { - Channel { recursive: bool, name: String }, - User { name: String }, + Channel(Vec<(ChannelTarget, bool)>), // (target, recursive) + User(Vec<String>), } diff --git a/mumlib/src/error.rs b/mumlib/src/error.rs index c492a5f..2cb3927 100644 --- a/mumlib/src/error.rs +++ b/mumlib/src/error.rs @@ -12,6 +12,7 @@ pub enum Error { InvalidUsername(String), InvalidServerPassword, Unimplemented, + NotConnectedToChannel, } impl std::error::Error for Error {} @@ -28,6 +29,7 @@ impl fmt::Display for Error { Error::InvalidUsername(username) => write!(f, "Invalid username: {}", username), Error::InvalidServerPassword => write!(f, "Invalid server password"), Error::Unimplemented => write!(f, "Unimplemented"), + Error::NotConnectedToChannel => write!(f, "Not connected to a channel"), } } } |
