aboutsummaryrefslogtreecommitdiff
path: root/src/routes/messages/mod.rs
diff options
context:
space:
mode:
authorKevin J Hoerr <kjhoerr@protonmail.com>2019-10-29 00:21:26 -0400
committerKevin J Hoerr <kjhoerr@protonmail.com>2019-10-29 00:21:26 -0400
commit067e9784b54e4645412e5e7d8d7d2bc70bdcf646 (patch)
tree08dfd1a323a88f5db41eb25b568fc9b9b88b0b03 /src/routes/messages/mod.rs
parent7fa4d1973e6f82551d842919e54629b9a7ab08f0 (diff)
downloadaugust-offensive-067e9784b54e4645412e5e7d8d7d2bc70bdcf646.tar.gz
august-offensive-067e9784b54e4645412e5e7d8d7d2bc70bdcf646.tar.bz2
august-offensive-067e9784b54e4645412e5e7d8d7d2bc70bdcf646.zip
Split messages into separate module; add unit tests for each message type
Diffstat (limited to 'src/routes/messages/mod.rs')
-rw-r--r--src/routes/messages/mod.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/routes/messages/mod.rs b/src/routes/messages/mod.rs
new file mode 100644
index 0000000..26ae1bb
--- /dev/null
+++ b/src/routes/messages/mod.rs
@@ -0,0 +1,23 @@
+use std::marker::Sized;
+
+pub mod callback;
+pub mod not_understood;
+
+#[derive(Serialize)]
+pub struct OutgoingMsg<T> {
+ pub result_type: String,
+ pub content: T,
+}
+
+pub trait Message {
+ fn name(&self) -> String;
+ fn as_outgoing(self) -> OutgoingMsg<Self>
+ where
+ Self: Sized,
+ {
+ OutgoingMsg {
+ result_type: self.name(),
+ content: self,
+ }
+ }
+}