/** * Copyright (c) 2017 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal */ type BitFlags = number & Flags namespace BitFlags { export function create(flags: F): BitFlags { return flags as any; } export function has(flags: BitFlags, flag: F) { return ((flags as any) & (flag as any)) !== 0; } /** toCheck must be non-zero */ export function hasAll(flags: BitFlags, toCheck: BitFlags) { return !!toCheck && ((flags as any) & (toCheck as any)) === (toCheck as any); } } export default BitFlags