atdgen-runtime
Library
Module
Module type
Parameter
Class
Class type
module type S = sig ... end
Module signature required of any json adapter. For example, an ATD annotation <json
adapter.ocaml="Atdgen_runtime.Json_adapter.Type_field"
refers to the OCaml module Atdgen_runtime.Json_adapter.Type_field
.
module Type_field : sig ... end
Support for json objects that contain a field that indicates the type of that object. The following
Alternatively, function-based definition of the JSON adapter is supported. For example, an ATD annotation <json
adapter.to_ocaml="Atdgen_runtime.Json_adapter.normalize_type_field \"type\""
adapter.from_ocaml="Atdgen_runtime.Json_adapter.restore_type_field \"type\"">
specifies two functions Yojson.Safe.t -> Yojson.Safe.t
and in this case functionally equivalent to <json
adapter.ocaml="Atdgen_runtime.Json_adapter.Type_field"
.
The form could be useful though, when more specific per-type data processing is needed and defining the new module for each case could become cumbersome.
val normalize_type_field : string -> Yojson.Safe.t -> Yojson.Safe.t
Normalize JSON representation, as specified in Type_field
val restore_type_field : string -> Yojson.Safe.t -> Yojson.Safe.t
Restore JSON representation, as specified in Type_field
Support for objects with a single field whose name indicates the type of the value. For instance,
module Type_and_value_fields : sig ... end
Support for the retired tag_field feature. This converts the following