Class OneOf<T1, T2, T3, T4, T5, T6, T7>
- Namespace
- REslava.Result.AdvancedPatterns
- Assembly
- REslava.Result.dll
Represents a value that can be one of seven possible types. A type-safe discriminated union for functional programming patterns.
public sealed class OneOf<T1, T2, T3, T4, T5, T6, T7> : OneOfBase<T1, T2, T3, T4, T5, T6, T7>, IOneOf<T1, T2, T3, T4, T5, T6, T7>, IEquatable<OneOf<T1, T2, T3, T4, T5, T6, T7>>
Type Parameters
T1The first possible type.
T2The second possible type.
T3The third possible type.
T4The fourth possible type.
T5The fifth possible type.
T6The sixth possible type.
T7The seventh possible type.
- Inheritance
-
OneOfBase<T1, T2, T3, T4, T5, T6, T7>OneOf<T1, T2, T3, T4, T5, T6, T7>
- Implements
-
IOneOf<T1, T2, T3, T4, T5, T6, T7>IEquatable<OneOf<T1, T2, T3, T4, T5, T6, T7>>
- Inherited Members
- Extension Methods
Methods
BindT2<TNewT2>(Func<T2, OneOf<T1, TNewT2, T3, T4, T5, T6, T7>>)
Binds the T2 value if present, otherwise propagates other types.
public OneOf<T1, TNewT2, T3, T4, T5, T6, T7> BindT2<TNewT2>(Func<T2, OneOf<T1, TNewT2, T3, T4, T5, T6, T7>> binder)
Parameters
Returns
- OneOf<T1, TNewT2, T3, T4, T5, T6, T7>
Type Parameters
TNewT2
Exceptions
- ArgumentNullException
Thrown when binder is null.
BindT3<TNewT3>(Func<T3, OneOf<T1, T2, TNewT3, T4, T5, T6, T7>>)
Binds the T3 value if present, otherwise propagates other types.
public OneOf<T1, T2, TNewT3, T4, T5, T6, T7> BindT3<TNewT3>(Func<T3, OneOf<T1, T2, TNewT3, T4, T5, T6, T7>> binder)
Parameters
Returns
- OneOf<T1, T2, TNewT3, T4, T5, T6, T7>
Type Parameters
TNewT3
Exceptions
- ArgumentNullException
Thrown when binder is null.
BindT4<TNewT4>(Func<T4, OneOf<T1, T2, T3, TNewT4, T5, T6, T7>>)
Binds the T4 value if present, otherwise propagates other types.
public OneOf<T1, T2, T3, TNewT4, T5, T6, T7> BindT4<TNewT4>(Func<T4, OneOf<T1, T2, T3, TNewT4, T5, T6, T7>> binder)
Parameters
Returns
- OneOf<T1, T2, T3, TNewT4, T5, T6, T7>
Type Parameters
TNewT4
Exceptions
- ArgumentNullException
Thrown when binder is null.
BindT5<TNewT5>(Func<T5, OneOf<T1, T2, T3, T4, TNewT5, T6, T7>>)
Binds the T5 value if present, otherwise propagates other types.
public OneOf<T1, T2, T3, T4, TNewT5, T6, T7> BindT5<TNewT5>(Func<T5, OneOf<T1, T2, T3, T4, TNewT5, T6, T7>> binder)
Parameters
Returns
- OneOf<T1, T2, T3, T4, TNewT5, T6, T7>
Type Parameters
TNewT5
Exceptions
- ArgumentNullException
Thrown when binder is null.
BindT6<TNewT6>(Func<T6, OneOf<T1, T2, T3, T4, T5, TNewT6, T7>>)
Binds the T6 value if present, otherwise propagates other types.
public OneOf<T1, T2, T3, T4, T5, TNewT6, T7> BindT6<TNewT6>(Func<T6, OneOf<T1, T2, T3, T4, T5, TNewT6, T7>> binder)
Parameters
Returns
- OneOf<T1, T2, T3, T4, T5, TNewT6, T7>
Type Parameters
TNewT6
Exceptions
- ArgumentNullException
Thrown when binder is null.
Equals(OneOf<T1, T2, T3, T4, T5, T6, T7>?)
Determines equality between two OneOf instances.
public bool Equals(OneOf<T1, T2, T3, T4, T5, T6, T7>? other)
Parameters
otherOneOf<T1, T2, T3, T4, T5, T6, T7>
Returns
Equals(object?)
Determines whether the specified object is equal to the current object.
public override bool Equals(object? obj)
Parameters
objobjectThe object to compare with the current object.
Returns
FromT1(T1)
Creates a OneOf containing a T1 value.
public static OneOf<T1, T2, T3, T4, T5, T6, T7> FromT1(T1 value)
Parameters
valueT1
Returns
- OneOf<T1, T2, T3, T4, T5, T6, T7>
FromT2(T2)
Creates a OneOf containing a T2 value.
public static OneOf<T1, T2, T3, T4, T5, T6, T7> FromT2(T2 value)
Parameters
valueT2
Returns
- OneOf<T1, T2, T3, T4, T5, T6, T7>
FromT3(T3)
Creates a OneOf containing a T3 value.
public static OneOf<T1, T2, T3, T4, T5, T6, T7> FromT3(T3 value)
Parameters
valueT3
Returns
- OneOf<T1, T2, T3, T4, T5, T6, T7>
FromT4(T4)
Creates a OneOf containing a T4 value.
public static OneOf<T1, T2, T3, T4, T5, T6, T7> FromT4(T4 value)
Parameters
valueT4
Returns
- OneOf<T1, T2, T3, T4, T5, T6, T7>
FromT5(T5)
Creates a OneOf containing a T5 value.
public static OneOf<T1, T2, T3, T4, T5, T6, T7> FromT5(T5 value)
Parameters
valueT5
Returns
- OneOf<T1, T2, T3, T4, T5, T6, T7>
FromT6(T6)
Creates a OneOf containing a T6 value.
public static OneOf<T1, T2, T3, T4, T5, T6, T7> FromT6(T6 value)
Parameters
valueT6
Returns
- OneOf<T1, T2, T3, T4, T5, T6, T7>
FromT7(T7)
Creates a OneOf containing a T7 value.
public static OneOf<T1, T2, T3, T4, T5, T6, T7> FromT7(T7 value)
Parameters
valueT7
Returns
- OneOf<T1, T2, T3, T4, T5, T6, T7>
GetHashCode()
Serves as the default hash function.
public override int GetHashCode()
Returns
- int
A hash code for the current object.
MapT2<TNewT2>(Func<T2, TNewT2>)
Maps the T2 value if present, otherwise propagates other types.
public OneOf<T1, TNewT2, T3, T4, T5, T6, T7> MapT2<TNewT2>(Func<T2, TNewT2> mapper)
Parameters
mapperFunc<T2, TNewT2>
Returns
- OneOf<T1, TNewT2, T3, T4, T5, T6, T7>
Type Parameters
TNewT2
Exceptions
- ArgumentNullException
Thrown when mapper is null.
MapT3<TNewT3>(Func<T3, TNewT3>)
Maps the T3 value if present, otherwise propagates other types.
public OneOf<T1, T2, TNewT3, T4, T5, T6, T7> MapT3<TNewT3>(Func<T3, TNewT3> mapper)
Parameters
mapperFunc<T3, TNewT3>
Returns
- OneOf<T1, T2, TNewT3, T4, T5, T6, T7>
Type Parameters
TNewT3
Exceptions
- ArgumentNullException
Thrown when mapper is null.
MapT4<TNewT4>(Func<T4, TNewT4>)
Maps the T4 value if present, otherwise propagates other types.
public OneOf<T1, T2, T3, TNewT4, T5, T6, T7> MapT4<TNewT4>(Func<T4, TNewT4> mapper)
Parameters
mapperFunc<T4, TNewT4>
Returns
- OneOf<T1, T2, T3, TNewT4, T5, T6, T7>
Type Parameters
TNewT4
Exceptions
- ArgumentNullException
Thrown when mapper is null.
MapT5<TNewT5>(Func<T5, TNewT5>)
Maps the T5 value if present, otherwise propagates other types.
public OneOf<T1, T2, T3, T4, TNewT5, T6, T7> MapT5<TNewT5>(Func<T5, TNewT5> mapper)
Parameters
mapperFunc<T5, TNewT5>
Returns
- OneOf<T1, T2, T3, T4, TNewT5, T6, T7>
Type Parameters
TNewT5
Exceptions
- ArgumentNullException
Thrown when mapper is null.
MapT6<TNewT6>(Func<T6, TNewT6>)
Maps the T6 value if present, otherwise propagates other types.
public OneOf<T1, T2, T3, T4, T5, TNewT6, T7> MapT6<TNewT6>(Func<T6, TNewT6> mapper)
Parameters
mapperFunc<T6, TNewT6>
Returns
- OneOf<T1, T2, T3, T4, T5, TNewT6, T7>
Type Parameters
TNewT6
Exceptions
- ArgumentNullException
Thrown when mapper is null.
Operators
operator ==(OneOf<T1, T2, T3, T4, T5, T6, T7>?, OneOf<T1, T2, T3, T4, T5, T6, T7>?)
Equality operator for OneOf instances.
public static bool operator ==(OneOf<T1, T2, T3, T4, T5, T6, T7>? left, OneOf<T1, T2, T3, T4, T5, T6, T7>? right)
Parameters
Returns
implicit operator OneOf<T1, T2, T3, T4, T5, T6, T7>(T1)
Implicit conversion from T1.
public static implicit operator OneOf<T1, T2, T3, T4, T5, T6, T7>(T1 value)
Parameters
valueT1
Returns
- OneOf<T1, T2, T3, T4, T5, T6, T7>
implicit operator OneOf<T1, T2, T3, T4, T5, T6, T7>(T2)
Implicit conversion from T2.
public static implicit operator OneOf<T1, T2, T3, T4, T5, T6, T7>(T2 value)
Parameters
valueT2
Returns
- OneOf<T1, T2, T3, T4, T5, T6, T7>
implicit operator OneOf<T1, T2, T3, T4, T5, T6, T7>(T3)
Implicit conversion from T3.
public static implicit operator OneOf<T1, T2, T3, T4, T5, T6, T7>(T3 value)
Parameters
valueT3
Returns
- OneOf<T1, T2, T3, T4, T5, T6, T7>
implicit operator OneOf<T1, T2, T3, T4, T5, T6, T7>(T4)
Implicit conversion from T4.
public static implicit operator OneOf<T1, T2, T3, T4, T5, T6, T7>(T4 value)
Parameters
valueT4
Returns
- OneOf<T1, T2, T3, T4, T5, T6, T7>
implicit operator OneOf<T1, T2, T3, T4, T5, T6, T7>(T5)
Implicit conversion from T5.
public static implicit operator OneOf<T1, T2, T3, T4, T5, T6, T7>(T5 value)
Parameters
valueT5
Returns
- OneOf<T1, T2, T3, T4, T5, T6, T7>
implicit operator OneOf<T1, T2, T3, T4, T5, T6, T7>(T6)
Implicit conversion from T6.
public static implicit operator OneOf<T1, T2, T3, T4, T5, T6, T7>(T6 value)
Parameters
valueT6
Returns
- OneOf<T1, T2, T3, T4, T5, T6, T7>
implicit operator OneOf<T1, T2, T3, T4, T5, T6, T7>(T7)
Implicit conversion from T7.
public static implicit operator OneOf<T1, T2, T3, T4, T5, T6, T7>(T7 value)
Parameters
valueT7
Returns
- OneOf<T1, T2, T3, T4, T5, T6, T7>
operator !=(OneOf<T1, T2, T3, T4, T5, T6, T7>?, OneOf<T1, T2, T3, T4, T5, T6, T7>?)
Inequality operator for OneOf instances.
public static bool operator !=(OneOf<T1, T2, T3, T4, T5, T6, T7>? left, OneOf<T1, T2, T3, T4, T5, T6, T7>? right)