public static bool IndicatesFailure(this PipState current) { Contract.Ensures(ContractUtilities.Static(IsTerminal(current))); switch (current) { case PipState.Ignored: case PipState.Waiting: case PipState.Ready: case PipState.Running: return(false); // Non-terminal case PipState.Done: return(false); // Terminal but successful case PipState.Skipped: return(false); // Terminal but not considered a failure case PipState.Failed: case PipState.Canceled: return(true); // Oh no! default: throw Contract.AssertFailure("Unhandled Pip State"); } }
public static bool IndicatesExecution(this PipResultStatus result) { Contract.Ensures(ContractUtilities.Static( !Contract.Result <bool>() || result == PipResultStatus.UpToDate || result == PipResultStatus.NotMaterialized || result == PipResultStatus.DeployedFromCache || result == PipResultStatus.Succeeded || result == PipResultStatus.Failed || result == PipResultStatus.Canceled)); return(result == PipResultStatus.UpToDate || result == PipResultStatus.NotMaterialized || result == PipResultStatus.DeployedFromCache || result == PipResultStatus.Succeeded || result == PipResultStatus.Failed || result == PipResultStatus.Canceled); }