package ppx_yojson_conv

  1. Overview
  2. Docs

Source file label_with_name.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
open! Base

type t =
  { label : string
  ; name_override : string option
  }

let create ~label ~name_override = { label; name_override }

let of_constructor_declaration (cd : Ppxlib.constructor_declaration) =
  let label = cd.pcd_name.txt in
  let name_override = Ppxlib.Attribute.get Attrs.yojson_variant_name cd in
  create ~label ~name_override
;;

let label t = t.label
let name t = Option.value t.name_override ~default:t.label
OCaml

Innovation. Community. Security.