Result <Option <TValue[]>, ValidationError[]> IStateValidator <Option <TValue[]>, Option <TValue>[]> .Validate(Option <Option <Option <TValue>[]> > value)
        {
            if (value.TryGetValue(out var isSet))
            {
                if (isSet.TryGetValue(out var notNull))
                {
                    if (StateValidatorHelpers.ValidateCollectionNotNull(notNull).TryGetValue(out var success, out var failure))
                    {
                        return(Result.Success <Option <TValue[]>, ValidationError[]>(Option.Some(success)));
                    }

                    return(Result.Failure <Option <TValue[]>, ValidationError[]>(failure));
                }

                return(Result.Success <Option <TValue[]>, ValidationError[]>(Option.None <TValue[]>()));
            }

            return(Result.Success <Option <TValue[]>, ValidationError[]>(GetDefaultValue()));
        }
 public Result <Unit, ValidationError[]> IsValid(Option <object> model, Option <Option <TValue>[]> value)
 => StateValidatorHelpers.IsCollectionValid(_item, model, value);
 IStateDescriptor IStateValidator <Option <Option <TValue>[]>, Option <TValue>[]> .GetDescriptor()
 => new CollectionStateDescriptor(StateValidatorHelpers.GetDefaultValueForDescriptor(_defaultValue, _defaultValueFactory), _item.DataDescriptor);
 private Option <Option <TValue>[]> GetDefaultValue()
 => Option.Some(StateValidatorHelpers.GetDefaultValue(_defaultValue, _defaultValueFactory));
 private TValue[] GetDefaultValue()
 =>                                 StateValidatorHelpers.GetDefaultValue(_defaultValue, _defaultValueFactory);
 private Option <TValue>[] GetDefaultValue()
 => StateValidatorHelpers.GetDefaultValue(_defaultValue, _defaultValueFactory);