All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added agressive inlining for
Maybeprimitives. - Set
ToMaybeparameter as nullable.
- Added
Primitives::SafeInvokeoverload.
- Implemented
Primitives::SafeInvokemethod.
- Removed
Outcometype from class library. - Reorganized result types source files.
- Fixed compiler warnings in Maybe implementation.
- Fixed compiler warnings in Either implementation.
- Set Unit type as readonly struct.
- Fixed compiler warnings in Result implementation.
- Improved
LoggerExtensionsmethods. - Implemented
LoggerExtensions::WarnWithmethod. - Updated
LoggerExtensionsmethods signature and parameters validation. - Added
LoggerExtensionsmethods for handling booleans.
- Updated .NET targets and dependencies.
- Implemented
Guard::DisallowNothingmethod.
- Added
LoggerExtensionsclass. - Added
EnumerableExtensions::Batchmethod from MoreLINQ. - Implemented
UnitExtensions::Andmethod.
- Implemented string utility methods to remove diacritics.
- Renamed method
DisallowAnyEmptyWhitespaceasDisallowEmptyWhitespace. - Used
ArgumentOutOfRangeExceptioninGuardwhen appropriate. - Updated
Guard::DisallowMalformedGuidexception message. - Target set to .NET Standard 2.0.
- Fixed int genenation in
Primitives::GenerateSeq<T>method.
- Implemented
EnumerableExtensions::DistinctCountmethod. - Fixed missing
thisoperator inObjectExtensions::IsNumbermethod. - Implemented
StringExtensions::ToUrimethod. - Updated
EqualsIgnoreCaseto campare null values when safe mode is on. - Made parameter nullable in
StringExtensions::IsEmptymethod. - Implemented
Strings::ReverseCasemethod and relative extension method. - Implemented
Strings::RandomizeCasemethod and relative extension method. - Made parameter nullable in
StringExtensions::EqualsIgnoreCasemethod.
- Implemented
NormalizeToEmptymethod and extension method. - Implemented
IsNumbermethod and extension method. - Fix:
Arbitrary*types made public. - Fixed a test.
- Improved implementation of
Primitives::ChanceOf. - Improved
EnumerableExtensions::Intersperseto support randomness. - Improved
EnumerableExtensions::Intersperseto support nulls. - Moved FsCheck generators to main project.
- Implemented
Primitives::GenerateSeqmethod. - Refactored FsCheck generators for version 3.0.0-alpha4.
- Updated
Strings::Generateto function without length parameter. - Implemented
Primitives::GenerateSeqoverload for int, double and string. - Fixed
EnumerableExtensions::Choiceextension method. - Refactored
ArbitraryValueto generate default values. - Updated
ArbitraryStringgenerator to include null values. - Updated
ArbitraryStringSeqgenerator to include null values. - Updated
ArbitraryIntegerSeqgenerator implementation.
- Implemented
DisallowEmptyEnumerableguard method.
- Removed UnitExtensions class.
- Implemented
StringExtensions::ToGuidextension method. - Reimplemented
SafeSubstringasSubstringoverload.
- Restored target
netcoreapp3.1.
- Implemented
Primitives::ChanceOfmethod.
- Implemented
StringExtensions::IsEmptyextension method. - Implemented
EnumerableExtensions::IsEmptyextension method.
-
Set Maybe type as readonly struct.
-
Added
Maybe::DoAsyncextension overloads. -
Added
UnitExtensions::ToUnitextension method. -
Implemented
ObjectExtensions::ToUnit.
- Set target to .NET 6.0 only.
CryptoRandommarked obsolete.- Renamed
Guard::RestrictArraySizetoDisallowArraySize. - Renamed
Guard::AllowGuidOnlytoDisallowMalformedGuid.
- Implemented
StringExtensions::StartsWithIgnoreCase.
- Implemented
StringExtensions::EqualsIgnoreCase. - Implemented
StringExtensions::ContainsIgnoreCase.
- Implemented
EnumerableExtensions::Shufflemethod. - Fixed and improved
Strings::Generatemethod.
- Added
Strings::SafeSubstringmethod (and relative extension method). - Fixed
Strings::Generatemethod.
- Added
Strings::IsEmptyWhitespacemethod (and relative extension method). - Updated
WhiteSpacetoWhitespaceinGuardclass. - Updated
Strings::Mangleto use all special characters. - Allowed
Strings::Generatecustomization options and prefix input.
- Fixed name of
StringExtensions::IsWhitespacetoContainsWhitespace.
- Added
Primitives::ToEnumerablemethod (and relative extension method). - Added non-extension version of
ExceptionExtensions::FormattoPrimitivesclass. - Moved
ToEnumerablemethod toEnumerableExtensions. - Added
Unit::DoAsyncmethod. - Added
EnumerableExtensions::ForEachAsyncmethod.
- Updated
Strings::ContainsSpecialChar.
- Added
IsSpecialCharmethod toStringsandStringsExtensionsclasses. - Added
ContainsSpecialCharmethod toStringsandStringsExtensionsclasses.
- Renamed
IsWhitespaceto a more semantically correctContainsWhitespace.
- Moved
ToMaybeFirstOrNothing,LastOrNothing,SingleOrNothing,ElementAtOrNothingtoMaybeExtensionsin root namespace. - Updated
ToUpperFirstLetterandToLowerFirstLetterand renamed asToUpperFirstandToLowerFirst(Stringsclass). - Renamed
Strings::IsWhiteSpaceasIsWhitespace. - Added
MaybeExtensions::ToJustmethod. - Updated
Maybe::Equals(object)implementation. - Updated
Guard::DisallowDefault.
- Inverted oreder of members in
ResultType.
- Moved classes with extension methods to
SharpX.Extensionsnamespace. - Moved
StringUtil::Generateto newStringsclass. - Moved
CharExtensions::ReplicateasStrings::ReplicateChar - Moved
CharExtensions::ReplicatetoStringExtensions. - Removed
CharExtensionsclass. - All
StringExtensionsmethods are implemented inStringsclass. - Added
Guardclass. - Consumed
Guardclass extensively in the project.
- Renamed
StringExtensions::StripTagsasStripTag.
- Renamed
StringExtensions::StripMLasStripTags. - Updated implemetation of
Maybe::GetHashCode.