MessagePack.FSharpExtensions is a MessagePack-CSharp extension library for F#.
open System open System.Buffers open MessagePack open MessagePack.Resolvers open MessagePack.FSharp [<MessagePackObject>] type UnionSample = | Foo of XYZ : int | Bar of OPQ : string list let convertAsMemory<'T> options (value: 'T) = let memory = ReadOnlyMemory(MessagePackSerializer.Serialize(value, options)) MessagePackSerializer.Deserialize<'T>(memory, options) let convertAsSequence<'T> options (value: 'T) = let sequence = ReadOnlySequence(MessagePackSerializer.Serialize(value, options)) MessagePackSerializer.Deserialize<'T>(& sequence, options) let dump = function | Foo x -> printfn "%d" x | Bar xs -> printfn "%A" xs let resolver = Resolvers.CompositeResolver.Create( FSharpResolver.Instance, StandardResolver.Instance ) let options = MessagePackSerializerOptions.Standard.WithResolver(resolver) Foo 999 |> convertAsMemory options |> dump Bar ["example"] |> convertAsSequence options |> dump
Records, Struct Records and Anonymous Records are serialized and deserialized using DynamicObjectResolver
in MessagePack-CSharp
.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4