mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
add CCFormat.lazy_{or,force} for printing thunks
This commit is contained in:
parent
d4fafab9b7
commit
35f9b32a5b
2 changed files with 14 additions and 0 deletions
|
|
@ -133,6 +133,11 @@ let some pp out = function
|
||||||
| None -> ()
|
| None -> ()
|
||||||
| Some x -> pp out x
|
| Some x -> pp out x
|
||||||
|
|
||||||
|
let lazy_force pp out (lazy x) = pp out x
|
||||||
|
|
||||||
|
let lazy_or ?(default=return "<lazy>") pp out x =
|
||||||
|
if Lazy.is_val x then pp out (Lazy.force x) else default out ()
|
||||||
|
|
||||||
(** {2 IO} *)
|
(** {2 IO} *)
|
||||||
|
|
||||||
let output fmt pp x = pp fmt x
|
let output fmt pp x = pp fmt x
|
||||||
|
|
|
||||||
|
|
@ -129,6 +129,15 @@ val some : 'a printer -> 'a option printer
|
||||||
@since 1.0
|
@since 1.0
|
||||||
*)
|
*)
|
||||||
|
|
||||||
|
val lazy_force : 'a printer -> 'a lazy_t printer
|
||||||
|
(** [lazy_force pp out x] forces [x] and prints the result with [pp]
|
||||||
|
@since NEXT_RELEASE *)
|
||||||
|
|
||||||
|
val lazy_or : ?default:unit printer -> 'a printer -> 'a lazy_t printer
|
||||||
|
(** [lazy_or ?default pp out x] prints [default] if [x] is not
|
||||||
|
evaluated yet, or uses [pp] otherwise
|
||||||
|
@since NEXT_RELEASE *)
|
||||||
|
|
||||||
(** {2 ANSI codes}
|
(** {2 ANSI codes}
|
||||||
|
|
||||||
Use ANSI escape codes https://en.wikipedia.org/wiki/ANSI_escape_code
|
Use ANSI escape codes https://en.wikipedia.org/wiki/ANSI_escape_code
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue