12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- using System;
- using System.Collections.Generic;
- using System.Diagnostics.CodeAnalysis;
- using System.Text;
- namespace InABox.Core
- {
- public static class Result
- {
- public static Result<T, E> Ok<T, E>(T value)
- {
- return new Result<T, E>(value);
- }
- public static Result<T, E> Error<T, E>(E error)
- {
- return new Result<T, E>(error);
- }
- }
- public class Result<T, E>
- {
- public enum Status
- {
- Ok,
- Error
- }
- private T _value;
- private E _error;
- private Status _status;
- public Result(T value)
- {
- _value = value;
- _error = default;
- _status = Status.Ok;
- }
- public Result(E error)
- {
- _value = default;
- _error = error;
- _status = Status.Error;
- }
- public bool Get([NotNullWhen(true)][MaybeNull] out T value, [NotNullWhen(false)][MaybeNull] out E error)
- {
- value = _value;
- error = _error;
- return _status == Status.Ok;
- }
- }
- }
|