diff --git a/src/event/event.rs b/src/event/event.rs index 6b1108d..1f33dc3 100644 --- a/src/event/event.rs +++ b/src/event/event.rs @@ -135,22 +135,20 @@ impl Event { } } - pub fn try_get_data, E: std::error::Error>( - &self, - ) -> Option> { + pub fn try_get_data>(&self) -> Result, T::Error> { match self.data.as_ref() { Some(d) => Some(T::try_from(d.clone())), None => None, } + .transpose() } - pub fn into_data, E: std::error::Error>( - self, - ) -> Option> { + pub fn into_data>(self) -> Result, T::Error> { match self.data { Some(d) => Some(T::try_from(d)), None => None, } + .transpose() } } @@ -189,9 +187,7 @@ mod tests { e.remove_data(); - assert!(e - .try_get_data::() - .is_none()); + assert!(e.try_get_data::().unwrap().is_none()); assert!(e.get_dataschema().is_none()); assert!(e.get_datacontenttype().is_none()); }