Files
NixOS_WindowsWrapper/src/NixWslWrapper.Core/Domain/ExecutionResult.cs
T

37 lines
1.1 KiB
C#

using System;
namespace NixWslWrapper.Core.Domain
{
public class ExecutionResult
{
public int ExitCode { get; }
public bool IsSuccess => ExitCode == 0;
public string? ErrorMessage { get; }
public ExecutionResult(int exitCode, string? errorMessage = null)
{
ExitCode = exitCode;
ErrorMessage = errorMessage;
}
public static ExecutionResult Success() => new ExecutionResult(0);
public static ExecutionResult Failure(int exitCode, string errorMessage) => new ExecutionResult(exitCode, errorMessage);
public override bool Equals(object? obj)
{
if (obj is not ExecutionResult other) return false;
return ExitCode == other.ExitCode && string.Equals(ErrorMessage, other.ErrorMessage, StringComparison.Ordinal);
}
public override int GetHashCode()
{
return HashCode.Combine(ExitCode, ErrorMessage);
}
public override string ToString()
{
return IsSuccess ? "Success" : $"Failed with Exit Code {ExitCode}. Error: {ErrorMessage}";
}
}
}