summaryrefslogtreecommitdiff
path: root/mingling_core/src/asset/chain.rs
blob: 70eda8c56960e3d84ea5624ce82c098ce71633d7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use std::fmt::Display;

use crate::ChainProcess;

#[doc(hidden)]
pub mod error;

/// Takes over a type (G: Previous) and converts it to another [AnyOutput](./struct.AnyOutput.html)
pub trait Chain<G>
where
    G: Display,
{
    /// The previous type in the chain
    type Previous;

    /// Process the previous value and return a future that resolves to a [`ChainProcess<G>`](./enum.ChainProcess.html)
    fn proc(p: Self::Previous) -> impl Future<Output = ChainProcess<G>> + Send;
}