public static IPossible <string> From(
            string value,
            StringValueParserStrategy stringValueParserStrategy = StringValueParserStrategy.NullEmptyOrWhitespaceIsNoValue
            )
        {
            if (stringValueParserStrategy == StringValueParserStrategy.NullOrEmptyIsNoValue)
            {
                return(From(value, s => !String.IsNullOrEmpty(s)));
            }

            return(From(value, s => !String.IsNullOrWhiteSpace(s)));
        }
        public void From_string_produces_correct_value_object(string value, bool expectedHasValue, StringValueParserStrategy stringValueParserStrategy)
        {
            var sut = Possible.From(value, stringValueParserStrategy);

            Assert.Equal(expectedHasValue, sut.HasValue);
        }
 public static IPossible <string> ToPossible(
     this string value,
     StringValueParserStrategy stringValueParserStrategy = StringValueParserStrategy.NullEmptyOrWhitespaceIsNoValue
     ) => Possible.From(value, stringValueParserStrategy);