linol/lsp/bin/named.ml
Simon Cruanes 7fbc187548 Squashed 'thirdparty/lsp/' content from commit aae69863
git-subtree-dir: thirdparty/lsp
git-subtree-split: aae6986391a8519de3da6a7a341f2bd3376e0d2f
2025-04-10 15:44:25 -04:00

15 lines
307 B
OCaml

type 'a t =
{ name : string
; data : 'a
}
let make ~name data = { name; data }
let data t = t.data
let name t = t.name
let map t ~f = { t with data = f t.data }
let set_data t data = { t with data }
let to_dyn f { name; data } =
let open Dyn in
record [ "name", String name; "data", f data ]
;;