Skip to content

Commit 571877d

Browse files
authored
Merge pull request #196 from Tarmil/feat/enum-like-unions
Enum-like unions can be used as dictionary keys
2 parents 4f93c6c + fc9484c commit 571877d

3 files changed

Lines changed: 437 additions & 216 deletions

File tree

src/FSharp.SystemTextJson/Helpers.fs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ let isSkippableType (fsOptions: JsonFSharpOptionsRecord) (ty: Type) =
5656
let isValueOptionType (ty: Type) =
5757
ty.IsGenericType && ty.GetGenericTypeDefinition() = typedefof<ValueOption<_>>
5858

59+
let isEnumLikeUnion (ty: Type) =
60+
FSharpType.IsUnion(ty, true)
61+
&& FSharpType.GetUnionCases(ty, true)
62+
|> Array.forall (fun case -> case.GetFields().Length = 0)
63+
5964
[<AutoOpen>]
6065
type Helper =
6166
static member tryGetUnionCases(ty: Type, cases: UnionCaseInfo[] outref) =

0 commit comments

Comments
 (0)