Skip to content

Yortw/Maybe.Sharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Maybe.Sharp

A generic 'option' type for .Net, explicitly representing a value that is either 'something' or 'nothing'.

GitHub license Coverage Status Build status NuGet Badge

    PM> Install-Package Maybe.Sharp

Why ?

Yes there are plenty of maybe/option types for .Net, but I couldn't find one that met all my requirements, hence Maybe.Sharp exists.

Features

See the API Documentation for contents/help.

  • Struct/Value type

    • Instances of Maybe cannot be null
  • (In)Equality & GetHashCode overrides/implementation

  • > < >= <= operators for Maybe and T values.

  • Implements IComparable, IComparable<Maybe>, IComparable, IEquatable<Maybe>, IEquatable, IFormattable

  • Implict cast from T to Maybe

  • Explicit cast from Maybe to T (exception when 'nothing')

  • Bind method for piping Maybe through functions

  • Chainable WhenSomething/WhenNothing for control flow

  • Static Nothing value for each Maybe type.

  • Maybe of other value types (not just reference types), i.e Maybe of System.Guid is 'empty'/'nothing when the inner value is System.Guid.Empty. Same for DateTime when the value is DateTime.MinValue etc.

  • Cast/As methods for converting Maybe to Maybe

  • ToString override

  • TryGetValue extension for IDictionary<K, V>

  • Or method to Coalesce Maybe

  • ValueOr method for retrieving wrapped value or default value when empty

  • ToNullable to convert Maybe to a Nullable equivalent

  • ToMaybe extension for Nullable values.

  • LINQ support via where and select extensions

  • TryParse extensions for System.String

About

A generic 'option' type for .Net, explicitly representing a value that is either 'something' or 'nothing'.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published