Struct SafeEnum<T>
- Namespace
- ChartTools.Extensions.Enums
- Assembly
- ChartTools.dll
Wrapper struct for enum values that automatically validates on set.
public struct SafeEnum<T> : IEnumWrapper<SafeEnum<T>, T>, IEnumWrapper<SafeEnum<T>>, IEquatable<SafeEnum<T>>, IEquatable<SafeEnum<T>?>, IComparable<SafeEnum<T>>, IEqualityOperators<SafeEnum<T>, SafeEnum<T>?, bool>, IComparisonOperators<SafeEnum<T>, SafeEnum<T>, bool>, IEqualityOperators<SafeEnum<T>, SafeEnum<T>, bool>, ISpanParsable<SafeEnum<T>>, IParsable<SafeEnum<T>>, IEquatable<T>, IEquatable<T?>, IComparable<T>, IEqualityOperators<SafeEnum<T>, T?, bool>, IComparisonOperators<SafeEnum<T>, T, bool>, IEqualityOperators<SafeEnum<T>, T, bool>, IBitwiseOperators<SafeEnum<T>, T, T> where T : struct, Enum
Type Parameters
TEnum type to wrap
- Implements
-
IEnumWrapper<SafeEnum<T>, T>IEnumWrapper<SafeEnum<T>>IEquatable<SafeEnum<T>>IEquatable<SafeEnum<T>?>IComparable<SafeEnum<T>>IEquatable<T>IEquatable<T?>IComparable<T>IBitwiseOperators<SafeEnum<T>, T, T>
- Inherited Members
- Extension Methods
Constructors
SafeEnum(T)
Initializes a new instance with enum value post validation.
public SafeEnum(T value)
Parameters
valueT
Properties
Value
Gets or sets the enum value with validation on set (field-backed property).
public T Value { readonly get; set; }
Property Value
- T
Methods
CompareTo(SafeEnum<T>)
public readonly int CompareTo(SafeEnum<T> other)
Parameters
otherSafeEnum<T>
Returns
CompareTo(T)
public readonly int CompareTo(T other)
Parameters
otherT
Returns
Equals(SafeEnum<T>)
public readonly bool Equals(SafeEnum<T> other)
Parameters
otherSafeEnum<T>
Returns
Equals(SafeEnum<T>?)
public readonly bool Equals(SafeEnum<T>? nullable)
Parameters
nullableSafeEnum<T>?
Returns
Equals(T?)
public readonly bool Equals(T? nullable)
Parameters
nullableT?
Returns
Equals(object)
public override readonly bool Equals(object obj)
Parameters
objobject
Returns
Equals(T)
public readonly bool Equals(T other)
Parameters
otherT
Returns
GetHashCode()
Gets HashCode of the enum value.
public override readonly int GetHashCode()
Returns
Parse(in ReadOnlySpan<char>)
public static SafeEnum<T> Parse(in ReadOnlySpan<char> value)
Parameters
valueReadOnlySpan<char>
Returns
- SafeEnum<T>
Parse(string)
public static SafeEnum<T> Parse(string value)
Parameters
valuestring
Returns
- SafeEnum<T>
ToString()
ToString() implementation of SafeEnum.
public override readonly string ToString()
Returns
TryParse(in ReadOnlySpan<char>, out SafeEnum<T>)
public static bool TryParse(in ReadOnlySpan<char> value, out SafeEnum<T> result)
Parameters
valueReadOnlySpan<char>resultSafeEnum<T>
Returns
TryParse(string, out SafeEnum<T>)
public static bool TryParse(string value, out SafeEnum<T> result)
Parameters
Returns
Operators
operator &(SafeEnum<T>, SafeEnum<T>)
public static T operator &(SafeEnum<T> left, SafeEnum<T> right)
Parameters
Returns
- T
operator |(SafeEnum<T>, SafeEnum<T>)
public static T operator |(SafeEnum<T> left, SafeEnum<T> right)
Parameters
Returns
- T
operator ^(SafeEnum<T>, SafeEnum<T>)
public static T operator ^(SafeEnum<T> left, SafeEnum<T> right)
Parameters
Returns
- T
operator >(SafeEnum<T>, SafeEnum<T>?)
public static bool operator >(SafeEnum<T> left, SafeEnum<T>? right)
Parameters
Returns
operator >(SafeEnum<T>, T?)
public static bool operator >(SafeEnum<T> left, T? right)
Parameters
leftSafeEnum<T>rightT?
Returns
operator >=(SafeEnum<T>, SafeEnum<T>?)
public static bool operator >=(SafeEnum<T> left, SafeEnum<T>? right)
Parameters
Returns
operator >=(SafeEnum<T>, T?)
public static bool operator >=(SafeEnum<T> left, T? right)
Parameters
leftSafeEnum<T>rightT?
Returns
operator <<(SafeEnum<T>, int)
public static T operator <<(SafeEnum<T> value, int shiftAmount)
Parameters
Returns
- T
operator <(SafeEnum<T>, SafeEnum<T>?)
public static bool operator <(SafeEnum<T> left, SafeEnum<T>? right)
Parameters
Returns
operator <(SafeEnum<T>, T?)
public static bool operator <(SafeEnum<T> left, T? right)
Parameters
leftSafeEnum<T>rightT?
Returns
operator <=(SafeEnum<T>, SafeEnum<T>?)
public static bool operator <=(SafeEnum<T> left, SafeEnum<T>? right)
Parameters
Returns
operator <=(SafeEnum<T>, T?)
public static bool operator <=(SafeEnum<T> left, T? right)
Parameters
leftSafeEnum<T>rightT?
Returns
operator >>(SafeEnum<T>, int)
public static T operator >>(SafeEnum<T> value, int shiftAmount)
Parameters
Returns
- T
operator >>>(SafeEnum<T>, int)
public static T operator >>>(SafeEnum<T> value, int shiftAmount)
Parameters
Returns
- T
Explicit Interface Implementations
operator &(SafeEnum<T>, T)
static T operator &(SafeEnum<T> left, T right)
Parameters
leftSafeEnum<T>rightT
Returns
- T
operator |(SafeEnum<T>, T)
static T operator |(SafeEnum<T> left, T right)
Parameters
leftSafeEnum<T>rightT
Returns
- T
operator ==(SafeEnum<T>, SafeEnum<T>)
static bool operator ==(SafeEnum<T> left, SafeEnum<T> right)
Parameters
Returns
operator ==(SafeEnum<T>, SafeEnum<T>?)
static bool operator ==(SafeEnum<T> left, SafeEnum<T>? right)
Parameters
Returns
operator ==(SafeEnum<T>, T?)
static bool operator ==(SafeEnum<T> left, T? right)
Parameters
leftSafeEnum<T>rightT?
Returns
operator ==(SafeEnum<T>, T)
static bool operator ==(SafeEnum<T> left, T right)
Parameters
leftSafeEnum<T>rightT
Returns
operator ^(SafeEnum<T>, T)
static T operator ^(SafeEnum<T> left, T right)
Parameters
leftSafeEnum<T>rightT
Returns
- T
operator >(SafeEnum<T>, SafeEnum<T>)
static bool operator >(SafeEnum<T> left, SafeEnum<T> right)
Parameters
Returns
operator >(SafeEnum<T>, T)
static bool operator >(SafeEnum<T> left, T right)
Parameters
leftSafeEnum<T>rightT
Returns
operator >=(SafeEnum<T>, SafeEnum<T>)
static bool operator >=(SafeEnum<T> left, SafeEnum<T> right)
Parameters
Returns
operator >=(SafeEnum<T>, T)
static bool operator >=(SafeEnum<T> left, T right)
Parameters
leftSafeEnum<T>rightT
Returns
implicit operator T(SafeEnum<T>)
static implicit operator T(SafeEnum<T> wrapper)
Parameters
wrapperSafeEnum<T>
Returns
- T
implicit operator SafeEnum<T>(T)
static implicit operator SafeEnum<T>(T value)
Parameters
valueT
Returns
- SafeEnum<T>
operator !=(SafeEnum<T>, SafeEnum<T>)
static bool operator !=(SafeEnum<T> left, SafeEnum<T> right)
Parameters
Returns
operator !=(SafeEnum<T>, SafeEnum<T>?)
static bool operator !=(SafeEnum<T> left, SafeEnum<T>? right)
Parameters
Returns
operator !=(SafeEnum<T>, T?)
static bool operator !=(SafeEnum<T> left, T? right)
Parameters
leftSafeEnum<T>rightT?
Returns
operator !=(SafeEnum<T>, T)
static bool operator !=(SafeEnum<T> left, T right)
Parameters
leftSafeEnum<T>rightT
Returns
operator <(SafeEnum<T>, SafeEnum<T>)
static bool operator <(SafeEnum<T> left, SafeEnum<T> right)
Parameters
Returns
operator <(SafeEnum<T>, T)
static bool operator <(SafeEnum<T> left, T right)
Parameters
leftSafeEnum<T>rightT
Returns
operator <=(SafeEnum<T>, SafeEnum<T>)
static bool operator <=(SafeEnum<T> left, SafeEnum<T> right)
Parameters
Returns
operator <=(SafeEnum<T>, T)
static bool operator <=(SafeEnum<T> left, T right)
Parameters
leftSafeEnum<T>rightT
Returns
operator ~(SafeEnum<T>)
static T operator ~(SafeEnum<T> value)
Parameters
valueSafeEnum<T>
Returns
- T