about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--finito-door/Cargo.toml4
-rw-r--r--finito-door/src/lib.rs7
2 files changed, 8 insertions, 3 deletions
diff --git a/finito-door/Cargo.toml b/finito-door/Cargo.toml
index 3497a1c04cca..ad1cf22d4229 100644
--- a/finito-door/Cargo.toml
+++ b/finito-door/Cargo.toml
@@ -3,5 +3,9 @@ name = "finito-door"
 version = "0.1.0"
 authors = ["Vincent Ambo <vincent@aprila.no>"]
 
+[dependencies]
+serde = "1.0"
+serde_derive = "1.0"
+
 [dependencies.finito]
 path = "../finito-core"
diff --git a/finito-door/src/lib.rs b/finito-door/src/lib.rs
index 296ce72b26d6..074556c76148 100644
--- a/finito-door/src/lib.rs
+++ b/finito-door/src/lib.rs
@@ -71,6 +71,7 @@
 //!
 //! Alright, enough foreplay, lets dive in!
 
+#[macro_use] extern crate serde_derive;
 extern crate finito;
 
 use finito::FSM;
@@ -89,7 +90,7 @@ type Attempts = usize;
 ///
 /// This type is the one for which `finito::FSM` will be implemented, making it
 /// the wooden (?) heart of our door.
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Serialize, Deserialize)]
 pub enum DoorState {
     /// In `Opened` state, the door is wide open and anyone who fits through can
     /// go through.
@@ -114,7 +115,7 @@ pub enum DoorState {
 
 /// This type represents the events that can occur in our door, i.e. the input
 /// and interactions it receives.
-#[derive(Debug)]
+#[derive(Debug, PartialEq, Serialize, Deserialize)]
 pub enum DoorEvent {
     /// `Open` means someone is opening the door!
     Open,
@@ -136,7 +137,7 @@ pub enum DoorEvent {
 /// **Note**: This type by itself *is not* a collection of side-effects, it
 /// merely describes the side-effects we want to occur (which are then
 /// interpreted by the machinery later).
-#[derive(Debug, PartialEq)]
+#[derive(Debug, PartialEq, Serialize, Deserialize)]
 pub enum DoorAction {
     /// `NotifyIRC` is used to display some kind of message on the
     /// aforementioned IRC channel that is, for some reason, very interested in