This commit is contained in:
swrup 2025-11-11 02:07:51 +01:00
parent aa2ff7b2f0
commit 2f3113f55d
11742 changed files with 1223940 additions and 0 deletions

View file

@ -0,0 +1,51 @@
(** Very small tooling for format printers. *)
include Format
type 'a t = Format.formatter -> 'a -> unit
let list = pp_print_list
let array ?pp_sep f fmt arr = list ?pp_sep f fmt (Array.to_list arr)
let str = pp_print_string
let sexp fmt s pp x = fprintf fmt "@[<3>(%s@ %a)@]" s pp x
let bytes fmt t = Format.fprintf fmt "%S" (Bytes.to_string t)
let pair pp1 pp2 fmt (v1, v2) =
pp1 fmt v1;
pp_print_space fmt ();
pp2 fmt v2
;;
let triple pp1 pp2 pp3 fmt (v1, v2, v3) =
pp1 fmt v1;
pp_print_space fmt ();
pp2 fmt v2;
pp_print_space fmt ();
pp3 fmt v3
;;
let opt f fmt x =
match x with
| None -> pp_print_string fmt "<None>"
| Some x -> fprintf fmt "%a" f x
;;
let int = pp_print_int
let optint fmt = function
| None -> ()
| Some i -> fprintf fmt "@ %d" i
;;
let char fmt c = Format.fprintf fmt "%c" c
let bool = Format.pp_print_bool
let lit s fmt () = pp_print_string fmt s
let to_to_string pp x =
let b = Buffer.create 16 in
let fmt = Format.formatter_of_buffer b in
pp fmt x;
Buffer.contents b
;;
let quoted_string fmt s = Format.fprintf fmt "%S" s