Skip to content

Releases: KeRNeLith/Here

0.9.0

16 Sep 07:02
Compare
Choose a tag to compare

Version 0.9.0

  • Option:

    • Extend support of TryParseEnum to every targets.
    • Extend support of NoneIfNullOrSpaces to every targets.
    • Add an If treatment with templated result.
    • Add NoneIf treatments.
    • WARNING: Rename NoneClass to NoneOption.
    • Add IfOfDefault and ElseOrDefault extensions.
  • Results:

    • Add an extension to throw the wrapped exception of a Result if there is one.
    • Results structure no longer throw NullPointerException when initialized by default rather than with factory methods.
    • Change some OnSuccess parameter to the wrapped value rather than result itself (for consistency).
    • Add an OnFailure extensions for results.
    • Add factory methods to create results from other failed results.
  • Either:

    • Fix a crash in the Equals for Either with direct comparison of a left or right value when null.
  • Misc:

    • Generate a documentation for the library via DocFX.
    • Make Option, results, eithers and Unit serializable types.

0.8.0

24 Jan 23:42
Compare
Choose a tag to compare

Version 0.8.0

  • General:

    • Library use C# 7.0 features.
    • Change target NetStandard 1.1 to NetStandard 1.0.
    • Adjust some annotations of library methods.
    • Add early throw for parameters that should not be null.
    • Add exception documentation on library functions.
  • Option:

    • Add extensions to Enum, DateTime, DateTimeOffset and Guid.
    • Replace methods returning void by Unit.
    • Transform conversions from Option to other library types to extensions.
    • Transform operations available for Option as extensions into instance methods.
  • Results:

    • Add extensions OnSuccessOrFailure.
    • Update some OnSuccess/OnFailure extensions to return the input result to make possible to chain them.
    • Add inputs parameters to lambda of some OnSuccess extensions.
    • Transform conversions from Results to other library types to extensions.
  • Unit:

    • Add an implementation of Unit type.
  • Either:

    • Add a first implementation Either monad.
      • Operations methods (IfLeft/IfRight/Match/Map, etc.).
      • Linq extensions.
      • Comparison helpers.
      • Conversions to other library types.

0.7.0

29 Nov 23:22
Compare
Choose a tag to compare

Version 0.7.0

  • General:

    • Clean the library documentation.
    • Documentation of the library is now packaged.
    • Add support of Source Link.
    • Remove dependency to Jetbrains.Annotations, embed the code of some attributes internally.
    • The library is ReSharper compliant (use internal annotations recognized by ReSharper).
    • Remove target .NET Framework 4.5.2.
    • Annotate with "in" all functions parameters that support it.
    • WARNING: All existing classes/structs have been moved from their own namespaces to the Here namespace, and extensions to the Here.Extensions namespace.
  • Maybe => Option:

    • Add extensions to unwrap the value embedded by Maybe<T>.
    • Add static helpers to check equality and compare Maybe<T> (allows custom comparer).
    • Maybe<T> is equatable with object of the wrapped type (also add a static helper for this).
    • Make structure readonly.
    • Rename Maybe<T> to Option<T>.
  • Results:

    • Add extensions to unwrap the value embedded by results structures.
    • Add extensions to Flatten results structures.
    • Rename SuccessEquals static helpers to SuccessEqual.
    • Add static helpers to check equality and compare results structures (allows custom comparer).
    • Result structures with value are equatable with object of the wrapped type (also add a static helper for this).
    • Add cast methods on Result with value that perform a cast with the "as" operator.
    • Add extensions OnSuccess/OnFailure allowing to return an output value other than a result structure.
    • Make structures readonly.
    • Add factory method to create a result from an exception.
  • ValueObject:

    • Add a first implementation of a base class for value objects.

0.6.1

21 Sep 07:14
Compare
Choose a tag to compare

Version 0.6.1

  • Maybe:

    • Add == and != operators to compare a value directly with the wrapped one.
    • Add extensions to unwrap the Maybe value.
    • Add Exists extension which is equivalent to Any with a predicate.
    • Add extension to extract values from an enumerable of Maybe.
    • Add extensions to convert a Maybe to Enumerable/Enumerator.
    • Add extensions SingleOrNone and ElementAt on IEnumerable.
    • Add an explicit Flatten extension.
    • Add extensions to perform treatments on Maybe that wrap an IEnumerable (for each, any, where, etc).
    • Make Maybe IComparable and IComparable<Maybe>.
  • Results:

    • Add == and != operators to compare a value directly with the wrapped one.
    • Implement equals, == and != operators to compare results with a result of same type.
    • WARNING: Remove implicit conversions to boolean that produce unwanted behaviors when trying to compare results.
    • Add a Result scope to run a simple action.
    • Add a SuccessEquals method for each result type and associated static helpers.
    • Make result structures IComparable and IComparable.

0.5.0

02 Sep 13:54
Compare
Choose a tag to compare

Version 0.5.0

  • General:

    • Extend library compatibility until .NET Framework 2.0.
  • Maybe:

    • Add implicit conversion to boolean to handle test like a simple boolean.
    • Remove true/false operators (replaced by the implicit conversion to boolean).
    • Add extension on string: NoneIfNullOrSpace.
    • Add extensions on Maybe<string>: NoneIfEmpty and NoneIfNullOrSpace.
  • Results:

    • Add implicit conversion to boolean to handle test like a simple boolean.
    • Add "Ensure" extensions that allow to check a predicate on each Result type.
    • Add cast methods on each Result type to create a Result of another type or with a different value type.

0.4.0

15 Aug 23:18
Compare
Choose a tag to compare

Version 0.4.0

  • General:

    • Update to latest JetBrains annotations package.
  • Results:

    • Add extensions OnSuccess.
    • Add extensions OnFailure.
    • Add extensions OnAny.

0.3.0

01 Aug 23:37
Compare
Choose a tag to compare

Version 0.3.0

  • General:

    • Add missing JetBrains annotations.
  • Maybe:

    • Add explicit and implicit converters to Result/Result<T>/CustomResult<TError>/Result<T, TError>.
  • Results:

    • Result can now always embed an Exception (for Warning and Failure).
    • Add scopes to safely return a Result of any type.
    • Add explicit and implicit converters to Maybe.

0.2.0

29 Jul 15:50
Compare
Choose a tag to compare

Version 0.2.0

  • Maybe:
    • Little optimizations
    • New IfOr and ElseOr extensions.
    • Easy conversions between numeric Maybe (ToInt(), ToLong(), ToDouble(), etc.)
    • Conversion from numeric Maybe to Maybe<bool>.
    • Try Get Value for dictionaries supports null key queries.
    • Try Get Value for dictionary<TKey, object> supports value cast to an expected type.

0.1.0

12 Jul 22:31
Compare
Choose a tag to compare

Version 0.1.0

  • General:

    • Add JetBrains annotations on many methods of the library to clarify them.
  • Maybe:

    • Supports bitwise and logical AND and OR operators.
    • New IfElse extensions.
    • New Linq extension (OfType) and simplify usage of Cast too.
    • Try parse now are available with custom arguments like those available in .NET Framework.
  • Result:

    • First implementation of Result.

0.0.1

28 Jun 22:41
Compare
Choose a tag to compare

Version 0.0.1

  • First implementation of Maybe (Monad):
    • Parse string to Maybe
    • Maybe Linq implementation like
    • Some useful extensions