Reworked try_get_data (#17)
Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
This commit is contained in:
parent
9e9122385e
commit
5766bb7d3c
|
@ -135,22 +135,20 @@ impl Event {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn try_get_data<T: Sized + TryFrom<Data, Error = E>, E: std::error::Error>(
|
||||
&self,
|
||||
) -> Option<Result<T, E>> {
|
||||
pub fn try_get_data<T: Sized + TryFrom<Data>>(&self) -> Result<Option<T>, T::Error> {
|
||||
match self.data.as_ref() {
|
||||
Some(d) => Some(T::try_from(d.clone())),
|
||||
None => None,
|
||||
}
|
||||
.transpose()
|
||||
}
|
||||
|
||||
pub fn into_data<T: Sized + TryFrom<Data, Error = E>, E: std::error::Error>(
|
||||
self,
|
||||
) -> Option<Result<T, E>> {
|
||||
pub fn into_data<T: Sized + TryFrom<Data>>(self) -> Result<Option<T>, 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::<serde_json::Value, serde_json::Error>()
|
||||
.is_none());
|
||||
assert!(e.try_get_data::<serde_json::Value>().unwrap().is_none());
|
||||
assert!(e.get_dataschema().is_none());
|
||||
assert!(e.get_datacontenttype().is_none());
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue