aboutsummaryrefslogtreecommitdiff
path: root/src/message.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/message.rs')
-rw-r--r--src/message.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/message.rs b/src/message.rs
index c0a766c..0617c4d 100644
--- a/src/message.rs
+++ b/src/message.rs
@@ -23,6 +23,15 @@ pub enum Message {
Push(Push)
}
+impl Message {
+ pub fn parse(message: &str) -> Option<Message> {
+ let json = json::Json::from_str(message).unwrap();
+ let mut decoder = json::Decoder::new(json);
+ let result : Result<Message, _> = Decodable::decode(&mut decoder);
+ result.ok()
+ }
+}
+
impl Decodable for Push {
fn decode<D: Decoder>(d: &mut D) -> Result<Push, D::Error> {
d.read_struct("root", 0, |d| {