namespace MPF.Data { /// /// Generic success/failure result object, with optional message /// public class Result { /// /// Internal representation of success /// private readonly bool success; /// /// Optional message for the result /// public string Message { get; private set; } private Result(bool success, string message) { this.success = success; this.Message = message; } /// /// Create a default success result with no message /// public static Result Success() => new Result(true, ""); /// /// Create a success result with a custom message /// /// String to add as a message public static Result Success(string message) => new Result(true, message); /// /// Create a default failure result with no message /// /// public static Result Failure() => new Result(false, ""); /// /// Create a failure result with a custom message /// /// String to add as a message public static Result Failure(string message) => new Result(false, message); /// /// Results can be compared to boolean values based on the success value /// public static implicit operator bool(Result result) => result.success; } }