package melange-json-native
Compositional JSON encode/decode PPX for OCaml
Install
Dune Dependency
Authors
Maintainers
Sources
melange-json-1.3.0.tbz
sha256=9ed376e19793c536f8a8a388f0e1ce7e402d1fde85de4e941ab5bd1190b25ac5
sha512=3b66695707a6a7cf9fed59fef9ddb02504a4e85d14dd904764ea049c4e92d0910e1d68b4edfe2b8a1d2e1c984bd061d01d3866dd575bfd7c0573ff5a4865c616
doc/src/ppx_deriving_json_native/ppx_deriving_json_common.ml.html
Source file ppx_deriving_json_common.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
open Ppxlib open Ppx_deriving_tools.Conv let get_of_variant_case ?mark_as_seen ~variant ~polyvariant = function | Vcs_ctx_variant ctx -> Attribute.get ?mark_as_seen variant ctx | Vcs_ctx_polyvariant ctx -> Attribute.get ?mark_as_seen polyvariant ctx let get_of_variant ?mark_as_seen ~variant ~polyvariant = function | Vrt_ctx_variant ctx -> Attribute.get ?mark_as_seen variant ctx | Vrt_ctx_polyvariant ctx -> Attribute.get ?mark_as_seen polyvariant ctx let attr_json_as ctx = Attribute.declare "json.as" ctx Ast_pattern.(single_expr_payload (estring __')) (fun x -> x) let vcs_attr_json_as = let variant = attr_json_as Attribute.Context.constructor_declaration in let polyvariant = attr_json_as Attribute.Context.rtag in get_of_variant_case ~variant ~polyvariant let ld_attr_json_key = Attribute.get (Attribute.declare "json.key" Attribute.Context.label_declaration Ast_pattern.(single_expr_payload (estring __')) (fun x -> x)) let ld_attr_json_option = Attribute.get (Attribute.declare "json.option" Attribute.Context.label_declaration Ast_pattern.(pstr nil) ()) let attr_json_allow_extra_fields ctx = Attribute.declare "json.allow_extra_fields" ctx Ast_pattern.(pstr nil) () let td_attr_json_allow_extra_fields = Attribute.get (attr_json_allow_extra_fields Attribute.Context.type_declaration) let cd_attr_json_allow_extra_fields = Attribute.get (attr_json_allow_extra_fields Attribute.Context.constructor_declaration) let ld_attr_json_default = Attribute.get (Attribute.declare "json.default" Attribute.Context.label_declaration Ast_pattern.(single_expr_payload __) (fun x -> x)) let ld_attr_default ld = match ld_attr_json_default ld with | Some e -> Some e | None -> ( match ld_attr_json_option ld with | Some () -> let loc = ld.pld_loc in Some [%expr Stdlib.Option.None] | None -> None)
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>