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;

Constructor

@:impl@:externinlinenew (?initial:Null<T>)

Creates a new Flags type with an optional initial value. If no initial value was specified, the default enum value for an empty flags attribute is specified

Methods

@:impl@:op(A | B)@:externinlineadd (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)@:externinlinebitAnd (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)@:externinlinebitNeg ():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)@:externinlinebitXor (flags:Flags<T>):Flags<T>

Accessible through the bitwise XOR operator (^).

@:impl@:externinlinehas (flag:T):Bool

Returns whether flag is present on this type

@:impl@:externinlinehasAll (flags:Flags<T>):Bool

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

@:impl@:externinlinehasAny (flags:Flags<T>):Bool

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

@:impl@:externinlineremove (flags:Flags<T>):Flags<T>

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