Wrap serde json errors

This commit is contained in:
Greg Heartsfield 2021-11-23 11:32:19 -06:00
parent 5224b9159e
commit 854531112d
2 changed files with 16 additions and 0 deletions

View File

@ -15,4 +15,12 @@ pub enum Error {
ReqParseFailed, ReqParseFailed,
#[error("parsing JSON->Close failed")] #[error("parsing JSON->Close failed")]
CloseParseFailed, CloseParseFailed,
#[error("JSON parsing failed")]
JsonParseFailed(serde_json::Error),
}
impl From<serde_json::Error> for Error {
fn from(r: serde_json::Error) -> Self {
Error::JsonParseFailed(r)
}
} }

View File

@ -1,3 +1,4 @@
use crate::error::{Error, Result};
use serde::{Deserialize, Deserializer, Serialize}; use serde::{Deserialize, Deserializer, Serialize};
//use serde_json::json; //use serde_json::json;
//use serde_json::Result; //use serde_json::Result;
@ -48,6 +49,13 @@ where
// Roundtrip from JSON-string to Event, and back to string. // Roundtrip from JSON-string to Event, and back to string.
// Perform validation on an Event to ensure the id and signature are correct. // Perform validation on an Event to ensure the id and signature are correct.
impl Event {
pub fn parse(json: &str) -> Result<Event> {
let e: Event = serde_json::from_str(json)?;
Err(Error::EventParseFailed)
}
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use crate::event::Event; use crate::event::Event;