using System; namespace Barotrauma { public sealed class Some : Option { public readonly T Value; private Some(T value) { if (value is null) { throw new ArgumentNullException(nameof(value), "Some cannot contain null"); } Value = value; } public static Option Create(T value) => new Some(value); public override Option Fallback(Option fallback) => this; public override T Fallback(T fallback) => Value; public override bool ValueEquals(T value) => Value.Equals(value); public override string ToString() => $"Some<{typeof(T).Name}>({Value})"; } }