Bindoj_gen.Json_codecThis module provides functions to generate OCaml values and functions.
module Json_config = Bindoj_gen_config.Json_configmodule Builtin_codecs : sig ... endval builtin_codecs : (string * builtin_codec) listval gen_builtin_encoders :
?attrs:Ppxlib.attributes ->
Bindoj_typedesc.Type_desc.type_decl ->
Ppxlib.value_binding listReturns builtin encoders of the given type declaration.
val gen_builtin_decoders :
?attrs:Ppxlib.attributes ->
Bindoj_typedesc.Type_desc.type_decl ->
Ppxlib.value_binding listReturns builtin decoders of the given type declaration.
val gen_json_encoder :
?self_contained:bool ->
?codec:Bindoj_typedesc.Type_desc.Coretype.codec ->
Bindoj_typedesc.Type_desc.type_decl ->
Ppxlib.value_bindingGenerates a json encoder function of the given type declaration.
val gen_json_decoder_result :
?self_contained:bool ->
?json_shape_explanation_style:
[ `inline of json_shape_explanation_resolution option | `reference ] ->
?codec:Bindoj_typedesc.Type_desc.Coretype.codec ->
Bindoj_typedesc.Type_desc.type_decl ->
Ppxlib.value_bindingGenerates a json decoder function of the given type declaration. The generated function has type ?path:jvpath -> jv -> t OfJsonResult.t.
val gen_json_decoder_option :
?implementation_style:
[ `refer_existing_result_variant_json_decoder
| `embed_full_implementation of [ `self_contained | `non_self_contained ] ] ->
?codec:Bindoj_typedesc.Type_desc.Coretype.codec ->
Bindoj_typedesc.Type_desc.type_decl ->
Ppxlib.value_bindingGenerates a json decoder function of the given type declaration. The generated function has type jv -> t option.
val gen_json_shape_explanation :
?json_shape_explanation_resolution:json_shape_explanation_resolution ->
?codec:Bindoj_typedesc.Type_desc.Coretype.codec ->
Bindoj_typedesc.Type_desc.type_decl ->
Ppxlib.value_bindingGenerates a value_binding of Bindoj_runtime.json_shape_explanation.
val gen_discriminator_value_accessor :
?codec:Bindoj_typedesc.Type_desc.Coretype.codec ->
Bindoj_typedesc.Type_desc.type_decl ->
Ppxlib.value_bindingGenerates a function of the given type declaration of Bindoj_typedesc.Type_desc.type_decl_kind.Variant_decl. The generated has type t -> string.
val gen_json_codec :
?self_contained:bool ->
?gen_json_shape_explanation:bool ->
?discriminator_value_accessor:bool ->
?json_shape_explanation_resolution:json_shape_explanation_resolution ->
?codec:Bindoj_typedesc.Type_desc.Coretype.codec ->
Bindoj_typedesc.Type_desc.type_decl ->
Ppxlib.structureGenerates the whole structure containing the result of gen_json_encoder, gen_json_decoder_result, gen_json_decoder_option, gen_json_shape_explanation and gen_discriminator_value_accessor.
val gen_json_encoder_signature :
?codec:Bindoj_typedesc.Type_desc.Coretype.codec ->
Bindoj_typedesc.Type_desc.type_decl ->
Ppxlib.value_descriptionval gen_json_decoder_result_signature :
?codec:Bindoj_typedesc.Type_desc.Coretype.codec ->
Bindoj_typedesc.Type_desc.type_decl ->
Ppxlib.value_descriptionval gen_json_decoder_option_signature :
?codec:Bindoj_typedesc.Type_desc.Coretype.codec ->
Bindoj_typedesc.Type_desc.type_decl ->
Ppxlib.value_descriptionval gen_json_shape_explanation_signature :
?codec:Bindoj_typedesc.Type_desc.Coretype.codec ->
Bindoj_typedesc.Type_desc.type_decl ->
Ppxlib.value_descriptionval gen_discriminator_value_accessor_signature :
?codec:Bindoj_typedesc.Type_desc.Coretype.codec ->
Bindoj_typedesc.Type_desc.type_decl ->
Ppxlib.value_descriptionval gen_json_codec_signature :
?gen_json_shape_explanation:bool ->
?discriminator_value_accessor:bool ->
?codec:Bindoj_typedesc.Type_desc.Coretype.codec ->
Bindoj_typedesc.Type_desc.type_decl ->
Ppxlib.signatureGenerates the whole signature containing the result of gen_json_encoder_signature, gen_json_decoder_result_signature, gen_json_decoder_option_signature, gen_json_shape_explanation_signature and gen_discriminator_value_accessor_signature.
val gen_json_schema :
?openapi:bool ->
Bindoj_typedesc.Type_desc.type_decl ->
Bindoj_openapi.V3.Schema_object.tGenerates json schema object.
val gen_openapi_schema :
Bindoj_typedesc.Type_desc.type_decl ->
Bindoj_openapi.V3.Schema_object.tGenerates a json schema object of OpenAPI.