20 lines
347 B
Rust
20 lines
347 B
Rust
use std::convert::identity;
|
|
|
|
use conduit::Result;
|
|
use serde::Deserialize;
|
|
|
|
pub trait Deserialized {
|
|
fn map_de<T, U, F>(self, f: F) -> Result<U>
|
|
where
|
|
F: FnOnce(T) -> U,
|
|
T: for<'de> Deserialize<'de>;
|
|
|
|
#[inline]
|
|
fn deserialized<T>(self) -> Result<T>
|
|
where
|
|
T: for<'de> Deserialize<'de>,
|
|
Self: Sized,
|
|
{
|
|
self.map_de(identity::<T>)
|
|
}
|
|
}
|