mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
better Format printers (using break hints)
This commit is contained in:
parent
072131dd3e
commit
8f46630634
8 changed files with 19 additions and 11 deletions
|
|
@ -234,7 +234,7 @@ let _pp_i ~sep pp_item buf a i j =
|
||||||
|
|
||||||
let _print ~sep pp_item fmt a i j =
|
let _print ~sep pp_item fmt a i j =
|
||||||
for k = i to j - 1 do
|
for k = i to j - 1 do
|
||||||
if k > i then Format.pp_print_string fmt sep;
|
if k > i then (Format.pp_print_string fmt sep; Format.pp_print_cut fmt ());
|
||||||
pp_item fmt a.(k)
|
pp_item fmt a.(k)
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,4 +36,4 @@ type 'a printer = Buffer.t -> 'a -> unit
|
||||||
type 'a formatter = Format.formatter -> 'a -> unit
|
type 'a formatter = Format.formatter -> 'a -> unit
|
||||||
|
|
||||||
let pp buf = Printf.bprintf buf "%B"
|
let pp buf = Printf.bprintf buf "%B"
|
||||||
let print fmt = Format.fprintf fmt "%B"
|
let print fmt = Format.pp_print_bool fmt
|
||||||
|
|
|
||||||
|
|
@ -230,5 +230,5 @@ let pp pp_x buf e = match e with
|
||||||
| `Error s -> Printf.bprintf buf "error(%s)" s
|
| `Error s -> Printf.bprintf buf "error(%s)" s
|
||||||
|
|
||||||
let print pp_x fmt e = match e with
|
let print pp_x fmt e = match e with
|
||||||
| `Ok x -> Format.fprintf fmt "ok(%a)" pp_x x
|
| `Ok x -> Format.fprintf fmt "@[ok(@,%a)@]" pp_x x
|
||||||
| `Error s -> Format.fprintf fmt "error(%s)" s
|
| `Error s -> Format.fprintf fmt "@[error(@,%s)@]" s
|
||||||
|
|
|
||||||
|
|
@ -46,4 +46,4 @@ let random_small = random 100
|
||||||
let random_range i j st = i + random (j-i) st
|
let random_range i j st = i + random (j-i) st
|
||||||
|
|
||||||
let pp buf = Printf.bprintf buf "%d"
|
let pp buf = Printf.bprintf buf "%d"
|
||||||
let print fmt = Format.fprintf fmt "%d"
|
let print fmt = Format.pp_print_int fmt
|
||||||
|
|
|
||||||
|
|
@ -361,7 +361,11 @@ let pp ?(sep=",") pp_item buf l =
|
||||||
let print ?(sep=",") pp_item fmt l =
|
let print ?(sep=",") pp_item fmt l =
|
||||||
let rec pp fmt l = match l() with
|
let rec pp fmt l = match l() with
|
||||||
| `Nil -> ()
|
| `Nil -> ()
|
||||||
| `Cons (x,l') -> Format.pp_print_string fmt sep; pp_item fmt x; pp fmt l'
|
| `Cons (x,l') ->
|
||||||
|
Format.pp_print_string fmt sep;
|
||||||
|
Format.pp_print_cut fmt ();
|
||||||
|
pp_item fmt x;
|
||||||
|
pp fmt l'
|
||||||
in
|
in
|
||||||
match l() with
|
match l() with
|
||||||
| `Nil -> ()
|
| `Nil -> ()
|
||||||
|
|
|
||||||
|
|
@ -679,8 +679,11 @@ let print ?(start="[") ?(stop="]") ?(sep=", ") pp_item fmt l =
|
||||||
| x::((y::xs) as l) ->
|
| x::((y::xs) as l) ->
|
||||||
pp_item fmt x;
|
pp_item fmt x;
|
||||||
Format.pp_print_string fmt sep;
|
Format.pp_print_string fmt sep;
|
||||||
|
Format.pp_print_cut fmt ();
|
||||||
print fmt l
|
print fmt l
|
||||||
| x::[] -> pp_item fmt x
|
| x::[] -> pp_item fmt x
|
||||||
| [] -> ()
|
| [] -> ()
|
||||||
in
|
in
|
||||||
Format.fprintf fmt "@[%s%a%s@]" start print l stop
|
Format.pp_print_string fmt start;
|
||||||
|
print fmt l;
|
||||||
|
Format.pp_print_string fmt stop
|
||||||
|
|
|
||||||
|
|
@ -343,7 +343,8 @@ module Make(H : HashedType) : S with type key = H.t = struct
|
||||||
let first = ref true in
|
let first = ref true in
|
||||||
iter t
|
iter t
|
||||||
(fun k v ->
|
(fun k v ->
|
||||||
if !first then first:=false else Format.pp_print_string fmt ", ";
|
if !first then first:=false
|
||||||
|
else (Format.pp_print_string fmt ", "; Format.pp_print_cut fmt ());
|
||||||
Format.fprintf fmt "%a -> %a" pp_k k pp_v v
|
Format.fprintf fmt "%a -> %a" pp_k k pp_v v
|
||||||
);
|
);
|
||||||
Format.pp_print_string fmt "}"
|
Format.pp_print_string fmt "}"
|
||||||
|
|
|
||||||
|
|
@ -486,10 +486,10 @@ let pp ?(start="[") ?(stop="]") ?(sep=", ") pp_item buf v =
|
||||||
Buffer.add_string buf stop
|
Buffer.add_string buf stop
|
||||||
|
|
||||||
let print ?(start="[") ?(stop="]") ?(sep=", ") pp_item fmt v =
|
let print ?(start="[") ?(stop="]") ?(sep=", ") pp_item fmt v =
|
||||||
Format.fprintf fmt "@[%s" start;
|
Format.pp_print_string fmt start;
|
||||||
iteri
|
iteri
|
||||||
(fun i x ->
|
(fun i x ->
|
||||||
if i > 0 then Format.pp_print_string fmt sep;
|
if i > 0 then (Format.pp_print_string fmt sep; Format.pp_print_cut fmt());
|
||||||
pp_item fmt x
|
pp_item fmt x
|
||||||
) v;
|
) v;
|
||||||
Format.fprintf fmt "%s@]" stop
|
Format.pp_print_string fmt stop
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue