Show / Hide Table of Contents

Struct Maybe<T>

Represents a single possibly absent value. Like Nullable but works for reference types as well as value types.

Implements
IEquatable<Maybe<T>>
Namespace: Pidgin
Assembly: Pidgin.dll
Syntax
public struct Maybe<T> : IEquatable<Maybe<T>>
Type Parameters
Name Description
T

The type of the contained value

Constructors

| Improve this Doc View Source

Maybe(T)

Create a Maybe<T> containing a value

Declaration
public Maybe(T value)
Parameters
Type Name Description
T value

The value

Properties

| Improve this Doc View Source

HasValue

Does the Maybe<T> contain a value?

Declaration
public bool HasValue { get; }
Property Value
Type Description
Boolean

True if and only if the Maybe<T> contains a value.

| Improve this Doc View Source

Value

Get the value from the Maybe<T>, throwing if the value is absent.

Declaration
public T Value { get; }
Property Value
Type Description
T

The value

Methods

| Improve this Doc View Source

Cast<U>()

Cast the value contained in the Maybe<T> to the specified result type

Declaration
public Maybe<U> Cast<U>()
Returns
Type Description
Maybe<U>

A Maybe<T> containing this Maybe<T>'s value casted to U, if the HasValue property returns true, or Nothing<T>().

Type Parameters
Name Description
U

The type to cast the contained value to

| Improve this Doc View Source

Equals(Maybe<T>)

Declaration
public bool Equals(Maybe<T> other)
Parameters
Type Name Description
Maybe<T> other
Returns
Type Description
Boolean
| Improve this Doc View Source

Equals(Nullable<Object>)

Declaration
public override bool Equals(object? other)
Parameters
Type Name Description
Nullable<Object> other
Returns
Type Description
Boolean
| Improve this Doc View Source

GetHashCode()

Declaration
public override int GetHashCode()
Returns
Type Description
Int32
| Improve this Doc View Source

GetValueOrDefault()

Get the value from the Maybe<T>, or return a default value.

Declaration
public T GetValueOrDefault()
Returns
Type Description
T

The value if HasValue is true, or a default value.

| Improve this Doc View Source

GetValueOrDefault(T)

Get the value from the Maybe<T>, or return value.

Declaration
public T GetValueOrDefault(T value)
Parameters
Type Name Description
T value

The default value to return, if the Maybe<T> does not contain a value

Returns
Type Description
T

The value if HasValue is true, or value.

| Improve this Doc View Source

GetValueOrDefault(Func<T>)

Get the value from the Maybe<T>, or return the result of calling value.

Declaration
public T GetValueOrDefault(Func<T> value)
Parameters
Type Name Description
Func<T> value

A function to call to create a default value, if the Maybe<T> does not contain a value

Returns
Type Description
T

The value if HasValue is true, or the result of calling value.

| Improve this Doc View Source

Match<U>(Func<T, U>, Func<U>)

Tear down this Maybe<T> using a function for the two possible outcomes. If HasValue is true, just will be called. Otherwise, nothing will be called.

Declaration
public U Match<U>(Func<T, U> just, Func<U> nothing)
Parameters
Type Name Description
Func<T, U> just

Called when the result has a value

Func<U> nothing

Called when the result does not have a value

Returns
Type Description
U

The result of calling the just or nothing function

Type Parameters
Name Description
U

The return type

| Improve this Doc View Source

OfType<U>()

Cast the value contained in the Maybe<T> to the specified result type, or return Nothing<T>() if the contained value is not an instance of U.

Declaration
public Maybe<U> OfType<U>()
Returns
Type Description
Maybe<U>

A Maybe<T> containing this Maybe<T>'s value casted to U, if the HasValue property returns true and the contained value is an instance of U, or Nothing<T>().

Type Parameters
Name Description
U

The type to cast the contained value to

| Improve this Doc View Source

Select<U>(Func<T, U>)

Project the value contained in the Maybe<T> using the specified transformation function.

Declaration
public Maybe<U> Select<U>(Func<T, U> selector)
Parameters
Type Name Description
Func<T, U> selector

A transformation function to apply to the contained value

Returns
Type Description
Maybe<U>

The result of applying the transformation function to the contained value, or Nothing<T>()

Type Parameters
Name Description
U

The type of the resulting value

| Improve this Doc View Source

SelectMany<U>(Func<T, Maybe<U>>)

Projects the element of the Maybe<T> into a possibly-absent value, and flattens the resulting value into a single Maybe<T>.

Declaration
public Maybe<U> SelectMany<U>(Func<T, Maybe<U>> selector)
Parameters
Type Name Description
Func<T, Maybe<U>> selector

A transformation function to apply to the contained value

Returns
Type Description
Maybe<U>

The resulting Maybe<T>, or Nothing<T>() if the HasValue property returns false or the selector returns an absent value

Type Parameters
Name Description
U

The type of the resulting possibly-absent value

| Improve this Doc View Source

SelectMany<U, R>(Func<T, Maybe<U>>, Func<T, U, R>)

Projects the element of the Maybe<T> into a possibly-absent value, and flattens the resulting value into a single Maybe<T>, applying a result selector function to the two values.

Declaration
public Maybe<R> SelectMany<U, R>(Func<T, Maybe<U>> selector, Func<T, U, R> result)
Parameters
Type Name Description
Func<T, Maybe<U>> selector

A transformation function to apply to the contained value

Func<T, U, R> result

A transformation function to apply to the contained value and the value contained in the selected Maybe<T>

Returns
Type Description
Maybe<R>

The result of applying selector to the contained value and result to the intermediate values, or Nothing<T>() if the HasValue property returns false or the selector returns an absent value

Type Parameters
Name Description
U

The type of the value to select

R

The type of the resulting possibly-absent value

| Improve this Doc View Source

Where(Func<T, Boolean>)

Filter a Maybe<T> according to a predicate.

Declaration
public Maybe<T> Where(Func<T, bool> predicate)
Parameters
Type Name Description
Func<T, Boolean> predicate

A predicate to apply to the value contained within the Maybe<T>.

Returns
Type Description
Maybe<T>

A Maybe<T> containing the current Maybe<T>'s Value, if the HasValue property returns true and the value satisfies the predicate, or Nothing<T>()

Operators

| Improve this Doc View Source

Equality(Maybe<T>, Maybe<T>)

Declaration
public static bool operator ==(Maybe<T> left, Maybe<T> right)
Parameters
Type Name Description
Maybe<T> left
Maybe<T> right
Returns
Type Description
Boolean
| Improve this Doc View Source

Inequality(Maybe<T>, Maybe<T>)

Declaration
public static bool operator !=(Maybe<T> left, Maybe<T> right)
Parameters
Type Name Description
Maybe<T> left
Maybe<T> right
Returns
Type Description
Boolean

Implements

IEquatable<>
  • Improve this Doc
  • View Source
Back to top Generated by DocFX