Fleece icon indicating copy to clipboard operation
Fleece copied to clipboard

What if my encoder/decoder/codec depends on some configuration options, am I forced to manually wire up?

Open DamianReeves opened this issue 11 months ago • 1 comments

I have types that must target multiple versions of a target JSON format, and I am wondering if I can use Fleece without being forced to drop down to using combinators to manually wire things together.

Lets say I have the following:

type Name = Name of Parts: string list
   member ToJson (options:MorphirJsonFormatOptions) = failwith "TODO: encode using options"
and MorphirJsonFormatOptions =
| Classic of Version:int
| NextGen of NextGenVersionOptions
and NextGenVersionOptions =  {Version:Version ; NameEncodingMode: NameEncodingMode}
and Version = Version of Major:int * Minor:int * Patch:int
and NameEncodingMode =
| ArrayStyle
| SnakeCasedSymbol

Are there any recommendations how I can still benefit from the SRTP resolution?

DamianReeves avatar Mar 20 '24 21:03 DamianReeves

I think this question is quite interesting. The question about how an API should be able to decode/encode different versions with a sort of ambient context such as options that you want to thread into the codecs.

wallymathieu avatar Mar 21 '24 09:03 wallymathieu