Home
Insert
Update snippet 'Check if value is a valid enum or flags combination'
Title
Description
-
Source code
[<RequireQualifiedAccess>] module Enum = let isDefined<'a, 'b when 'a : enum<'b>> (value:'a) = let (!<) = box >> unbox >> uint64 let typ = typeof<'a> if typ.IsDefined(typeof<System.FlagsAttribute>, false) then ((!< value, System.Enum.GetValues(typ) |> unbox) ||> Array.fold (fun n v -> n &&& ~~~(!< v)) = 0UL) else System.Enum.IsDefined(typ, value)
Tags
enumeration
enum
enumeration
enum
Author
Link
Reference NuGet packages
If your snippet has external dependencies, enter the names of NuGet packages to reference, separated by a comma (
#r
directives are not required).
Update