private DrawnResult(Either <TFinalValue, Draw> outcomeOrDrawNeeded) { mOutcomeOrDrawNeeded = outcomeOrDrawNeeded; }
public static DrawnResult <TFinalValue, TDrawInput, TDrawResult> Create(TDrawInput drawInput, Func <TDrawResult, DrawnResult <TFinalValue, TDrawInput, TDrawResult> > getOutcomeFromDraw) => new DrawnResult <TFinalValue, TDrawInput, TDrawResult>(Either <TFinalValue, Draw> .FromRight(new Draw(drawInput, getOutcomeFromDraw)));
public static DrawnResult <TFinalValue, TDrawInput, TDrawResult> CreateToSingle(TDrawInput drawInput, Func <TDrawResult, TFinalValue> getKnownFromDraw) => new DrawnResult <TFinalValue, TDrawInput, TDrawResult>(Either <TFinalValue, Draw> .FromRight(new Draw(drawInput, new Func <TDrawResult, DrawnResult <TFinalValue, TDrawInput, TDrawResult> >(w => Return(getKnownFromDraw(w))))));
public static DrawnResult <TFinalValue, TDrawInput, TDrawResult> Return(TFinalValue t) => new DrawnResult <TFinalValue, TDrawInput, TDrawResult>(Either <TFinalValue, Draw> .FromLeft(t));