use super::errors::*;
use kutil::std::error::*;
pub trait Resolve<ResolvedT, AnnotatedT>: Sized {
fn resolve_with_errors<ErrorReceiverT>(self, errors: &mut ErrorReceiverT) -> ResolveResult<ResolvedT, AnnotatedT>
where
ErrorReceiverT: ErrorReceiver<ResolveError<AnnotatedT>>;
fn resolve(self) -> Result<ResolvedT, ResolveError<AnnotatedT>> {
self.resolve_with_errors(&mut FailFastErrorReceiver)?.ok_or(ResolveError::Missing)
}
}