internal static IReadOnlyCollection <TEnum> GetValues <TEnum>( this RequiredMember <TEnum> instance, MissingMemberBehavior missingMemberBehavior ) where TEnum : struct, Enum => instance.SelectMany( value => missingMemberBehavior == MissingMemberBehavior.Error ? Parse <TEnum>(value.GetStringRequired()) : TryHardParse <TEnum>(value.GetStringRequired()) );
internal static DateTimeOffset GetValue(this RequiredMember <DateTimeOffset> instance) => instance.Select(json => json.GetDateTimeOffset());
internal static int GetValue(this RequiredMember <Coin> instance) => instance.Select(json => new Coin(json.GetInt32()));
internal static bool GetValue(this RequiredMember <bool> instance) => instance.Select(json => json.GetBoolean());
internal static string GetValue(this RequiredMember <string> instance) => instance.Select(json => json.GetStringRequired());
internal static double GetValue(this RequiredMember <double> instance) => instance.Select(json => json.GetDouble());
internal static long GetValue(this RequiredMember <long> instance) => instance.Select(json => json.GetInt64());
internal static int GetValue(this RequiredMember <int> instance) => instance.Select(json => json.GetInt32());