use crate::transform::request::TransformRequest;
pub trait TransformAttempt: Eq + Send + Sync
where
<Self as TransformAttempt>::TransformRequest: TransformRequest + Send,
<Self as TransformAttempt>::AttemptInput: Send,
<Self as TransformAttempt>::AttemptOutput: Send, {
type TransformRequest;
type AttemptCallContext: Send;
type AttemptReturnContext: Send;
type AttemptIdentifier: Send;
type AttemptError: Send;
type AttemptInput = (
Self::AttemptIdentifier,
<Self::TransformRequest as TransformRequest>::Input,
Self::AttemptCallContext,
);
type AttemptOutput = (
Self::AttemptIdentifier,
<Self::TransformRequest as TransformRequest>::Output,
Self::AttemptReturnContext,
);
}
pub enum TransformAttemptStatus {
Pending,
DTUAssigned,
Resolved,
Failed(String), }