Pure OCaml Yaml 1.2 reader and writer using Bytesrw
1(*---------------------------------------------------------------------------
2 Copyright (c) 2025 Anil Madhavapeddy <anil@recoil.org>. All rights reserved.
3 SPDX-License-Identifier: ISC
4 ---------------------------------------------------------------------------*)
5
6(** YAML mapping (object) values with metadata *)
7
8type ('k, 'v) t
9
10val make :
11 ?anchor:string ->
12 ?tag:string ->
13 ?implicit:bool ->
14 ?style:Layout_style.t ->
15 ('k * 'v) list -> ('k, 'v) t
16(** Create a mapping *)
17
18(** {2 Accessors} *)
19
20val members : ('k, 'v) t -> ('k * 'v) list
21val anchor : ('k, 'v) t -> string option
22val tag : ('k, 'v) t -> string option
23val implicit : ('k, 'v) t -> bool
24val style : ('k, 'v) t -> Layout_style.t
25
26(** {2 Modifiers} *)
27
28val with_anchor : string -> ('k, 'v) t -> ('k, 'v) t
29val with_tag : string -> ('k, 'v) t -> ('k, 'v) t
30val with_style : Layout_style.t -> ('k, 'v) t -> ('k, 'v) t
31
32(** {2 Operations} *)
33
34val map_keys : ('k -> 'k2) -> ('k, 'v) t -> ('k2, 'v) t
35val map_values : ('v -> 'v2) -> ('k, 'v) t -> ('k, 'v2) t
36val map : ('k -> 'v -> 'k2 * 'v2) -> ('k, 'v) t -> ('k2, 'v2) t
37val length : ('k, 'v) t -> int
38val is_empty : ('k, 'v) t -> bool
39val find : ('k -> bool) -> ('k, 'v) t -> 'v option
40val find_key : ('k -> bool) -> ('k, 'v) t -> ('k * 'v) option
41val mem : ('k -> bool) -> ('k, 'v) t -> bool
42val keys : ('k, 'v) t -> 'k list
43val values : ('k, 'v) t -> 'v list
44val iter : ('k -> 'v -> unit) -> ('k, 'v) t -> unit
45val fold : ('a -> 'k -> 'v -> 'a) -> 'a -> ('k, 'v) t -> 'a
46
47(** {2 Comparison} *)
48
49val pp :
50 (Format.formatter -> 'k -> unit) ->
51 (Format.formatter -> 'v -> unit) ->
52 Format.formatter -> ('k, 'v) t -> unit
53val equal : ('k -> 'k -> bool) -> ('v -> 'v -> bool) -> ('k, 'v) t -> ('k, 'v) t -> bool
54val compare : ('k -> 'k -> int) -> ('v -> 'v -> int) -> ('k, 'v) t -> ('k, 'v) t -> int