mithril_common/messages/
interface.rs

1use serde::{Deserialize, Serialize};
2
3use crate::StdResult;
4
5/// From message adapter trait
6pub trait FromMessageAdapter<U, V> {
7    /// Adapt entity to message
8    fn adapt(from: U) -> V;
9}
10
11/// TryFrom message adapter trait
12pub trait TryFromMessageAdapter<U, V> {
13    /// Adapt entity to message
14    fn try_adapt(from: U) -> StdResult<V>;
15}
16
17/// To message adapter trait
18pub trait ToMessageAdapter<U, V>
19where
20    V: Serialize + for<'a> Deserialize<'a>,
21{
22    /// Adapt message to entity
23    fn adapt(from: U) -> V;
24}
25
26/// TryTo message adapter trait
27pub trait TryToMessageAdapter<U, V> {
28    /// Adapt message to entity
29    fn try_adapt(from: U) -> StdResult<V>;
30}