Skip to content

Repository files navigation

MessagePack.FSharpExtensions

NuGet Status

MessagePack.FSharpExtensions is a MessagePack-CSharp extension library for F#.

Usage

openSystemopenSystem.BuffersopenMessagePackopenMessagePack.ResolversopenMessagePack.FSharp[<MessagePackObject>]typeUnionSample=| Foo ofXYZ:int| Bar ofOPQ:stringlistletconvertAsMemory<'T>options (value:'T)=letmemory= ReadOnlyMemory(MessagePackSerializer.Serialize(value, options))
MessagePackSerializer.Deserialize<'T>(memory, options)letconvertAsSequence<'T>options (value:'T)=letsequence= ReadOnlySequence(MessagePackSerializer.Serialize(value, options))
MessagePackSerializer.Deserialize<'T>(& sequence, options)letdump=function| Foo x ->
printfn "%d" x
| Bar xs ->
printfn "%A" xs
letresolver=
Resolvers.CompositeResolver.Create(
FSharpResolver.Instance,
StandardResolver.Instance
)letoptions= MessagePackSerializerOptions.Standard.WithResolver(resolver)
Foo 999|> convertAsMemory options
|> dump
Bar ["example"]|> convertAsSequence options
|> dump

Supported types

  • option
  • voption
  • list
  • map
  • set
  • Discriminated Union
  • Struct Discriminated Union

Records, Struct Records and Anonymous Records are serialized and deserialized using DynamicObjectResolver in MessagePack-CSharp.

About

MessagePack Extensions for F#. / msgpack.org[F#]

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages