diff options
Diffstat (limited to 'src/message.rs')
-rw-r--r-- | src/message.rs | 9 |
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| { |