use std::fmt::Debug;
use p2panda_core::traits::{Author, OperationId};
pub trait Resolver<ID, OP, M, C>
where
ID: Author,
OP: OperationId,
{
type State;
type Error: Debug;
fn rebuild_required(y: &Self::State, msg: &M) -> Result<bool, Self::Error>;
fn process(y: Self::State) -> Result<Self::State, Self::Error>;
}