Fleece
Fleece copied to clipboard
What if my encoder/decoder/codec depends on some configuration options, am I forced to manually wire up?
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?
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.