mirror of
https://github.com/Smaug123/WoofWare.PawPrint
synced 2025-10-08 15:38:41 +00:00
Split WoofWare.PawPrint.Domain into a new subtree (#41)
This commit is contained in:
16
WoofWare.PawPrint.Domain/StringToken.fs
Normal file
16
WoofWare.PawPrint.Domain/StringToken.fs
Normal file
@@ -0,0 +1,16 @@
|
||||
namespace WoofWare.PawPrint
|
||||
|
||||
open System.Reflection.Metadata
|
||||
open System.Reflection.Metadata.Ecma335
|
||||
|
||||
type StringToken =
|
||||
| UserString of UserStringHandle
|
||||
| String of StringHandle
|
||||
|
||||
[<RequireQualifiedAccess>]
|
||||
module StringToken =
|
||||
let ofInt (value : int) : StringToken =
|
||||
match LanguagePrimitives.EnumOfValue<byte, HandleKind> (byte (value &&& 0xFF000000 >>> 24)) with
|
||||
| HandleKind.UserString -> StringToken.UserString (MetadataTokens.UserStringHandle value)
|
||||
| HandleKind.String -> StringToken.String (MetadataTokens.StringHandle value)
|
||||
| v -> failwith $"Unrecognised string handle kind: {v}"
|
Reference in New Issue
Block a user