namespace SzCore; public class SzResult { public bool IsSuccess { get; } public T? Value { get; } public string? Error { get; } protected SzResult(T? value, bool success, string? error) => (Value, IsSuccess, Error) = (value, success, error); public static SzResult Success(T value) => new(value, true, null); public static SzResult Failure(string error) => new(default, false, error); }