Use this type to have access to the bitwise operators of C# enums that have a cs.system.FlagsAttribute attribute.

Usage example:

import cs.system.reflection.BindingFlags;
var binding = new Flags(BindingFlags.Public) | BindingFlags.Static | BindingFlags.NonPublic;

Methods

@:impl@:op(A | B)inlineadd(flags:Flags<T>):Flags<T>

Accessible through the bitwise OR operator (`). Returns a new Flags` type with the flags

passed at flags added to it.

@:impl@:op(A & B)inlinebitAnd(flags:Flags<T>):Flags<T>

Accessible through the bitwise AND operator (&). Returns a new Flags type with the flags that are set on both this and flags

@:impl@:op(~A)inlinebitNeg():Flags<T>

Accesible through the bitwise negation operator (~). Returns a new Flags type with all unset flags as set - but the ones that are set already.

@:impl@:op(A ^ B)inlinebitXor(flags:Flags<T>):Flags<T>

Accessible through the bitwise XOR operator (^).

@:implinlinehas(flag:T):Bool

Returns whether flag is present on this type

@:implinlinehasAll(flags:Flags<T>):Bool

Returns whether this type has all flags set by flags also set

@:implinlinehasAny(flags:Flags<T>):Bool

Returns whether this type has any flag set by flags also set

@:implinlineremove(flags:Flags<T>):Flags<T>

Returns a new Flags type with all flags set by flags unset