CommonFSharp (Polyglot)¶

In [1]:
#!import ../../lib/fsharp/Notebooks.livemd
In [2]:
#!import ../../lib/fsharp/Testing.livemd
In [3]:
#!import ../../lib/fsharp/Common.fs
In [4]:
open Common

getUnionCaseName¶

In [5]:
let inline getUnionCaseName<'T> (x: 'T) =
    match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with
    | case, _ -> case.Name
In [6]:
///- --test

TraceLevel.Critical
|> getUnionCaseName
|> _assertEqual (nameof TraceLevel.Critical)
"Critical"