package ocolor

  1. Overview
  2. Docs

Printf-friendly functions

These functions are useful when trying to print with styles with Printf. However, they are a very bad choice. They perform a context-free formatting. For instance, there is no way to end the current style and restore the previous, like stack-base functions of Ocolor_format do. They just print the desired style and keep no track of the current state.

Thus, it's better to use Ocolor_format as much as possible. Moreover, Format provide a nice way of composing printers with %a and Format.asprintf. Even if you don't like boxes, Format.asprintf and semantic tags are cool.

So, here are the Printf-friendly functions. Use with care, and preferably, not at all.

fprintf

%a

val apply_style : out_channel -> Ocolor_types.style -> unit
val apply_styles : out_channel -> Ocolor_types.style list -> unit
val fg_color4 : out_channel -> Ocolor_types.color4 -> unit
val fg_color8 : out_channel -> Ocolor_types.color8 -> unit
val fg_color24 : out_channel -> Ocolor_types.color24 -> unit
val bg_color4 : out_channel -> Ocolor_types.color4 -> unit
val bg_color8 : out_channel -> Ocolor_types.color8 -> unit
val bg_color24 : out_channel -> Ocolor_types.color24 -> unit

%t

val default_fg : out_channel -> unit
val fg_rgb : int -> int -> int -> out_channel -> unit
val default_bg : out_channel -> unit
val bg_rgb : int -> int -> int -> out_channel -> unit
val reset : out_channel -> unit

sprintf

%a

val s_apply_style : unit -> Ocolor_types.style -> string
val s_apply_styles : unit -> Ocolor_types.style list -> string

Printf-like

Just like printf but perform automatic reset after printing if Ocolor_config.auto_reset is set

val fprintf : out_channel -> ('a, out_channel, unit) format -> 'a
val kfprintf : (out_channel -> unit) -> out_channel -> ('a, out_channel, unit) format -> 'a
val sprintf : ('a, unit, string, string) format4 -> 'a
val printf : ('a, out_channel, unit) format -> 'a
val kprintf : (out_channel -> unit) -> ('a, out_channel, unit) format -> 'a
module StylingPrettyPrinters : sig ... end
include module type of struct include StylingPrettyPrinters end
type !'a pp = out_channel -> 'a -> unit
val pp_bool_generic : ?false_style:Ocolor_types.style list -> ?true_style:Ocolor_types.style list -> bool pp
val pp_bool : bool pp
val pp_option_generic : ?none:string -> ?none_style:Ocolor_types.style list -> ?some_style:Ocolor_types.style list -> 'a pp -> 'a option pp
val pp_option : 'a pp -> 'a option pp
val pp_pair_generic : ?left:string -> ?sep:string -> ?right:string -> ?delim_style:Ocolor_types.style list -> ?sep_style:Ocolor_types.style list -> ?elem_style:Ocolor_types.style list -> 'a pp -> 'b pp -> ('a * 'b) pp
val pp_pair : 'a pp -> 'b pp -> ('a * 'b) pp
val pp_3_tuple_generic : ?left:string -> ?sep:string -> ?right:string -> ?delim_style:Ocolor_types.style list -> ?sep_style:Ocolor_types.style list -> ?elem_style:Ocolor_types.style list -> 'a pp -> 'b pp -> 'c pp -> ('a * 'b * 'c) pp
val pp_3_tuple : 'a pp -> 'b pp -> 'c pp -> ('a * 'b * 'c) pp
val pp_4_tuple_generic : ?left:string -> ?sep:string -> ?right:string -> ?delim_style:Ocolor_types.style list -> ?sep_style:Ocolor_types.style list -> ?elem_style:Ocolor_types.style list -> 'a pp -> 'b pp -> 'c pp -> 'd pp -> ('a * 'b * 'c * 'd) pp
val pp_4_tuple : 'a pp -> 'b pp -> 'c pp -> 'd pp -> ('a * 'b * 'c * 'd) pp
val pp_5_tuple_generic : ?left:string -> ?sep:string -> ?right:string -> ?delim_style:Ocolor_types.style list -> ?sep_style:Ocolor_types.style list -> ?elem_style:Ocolor_types.style list -> 'a pp -> 'b pp -> 'c pp -> 'd pp -> 'e pp -> ('a * 'b * 'c * 'd * 'e) pp
val pp_5_tuple : 'a pp -> 'b pp -> 'c pp -> 'd pp -> 'e pp -> ('a * 'b * 'c * 'd * 'e) pp
val pp_iterable_generic : ?left:string -> ?sep:string -> ?right:string -> ?delim_style:Ocolor_types.style list -> ?sep_style:Ocolor_types.style list -> ?elem_style:Ocolor_types.style list -> (('a -> unit) -> 'b -> unit) -> 'a pp -> 'b pp
val pp_iterable : (('a -> unit) -> 'b -> unit) -> 'a pp -> 'b pp
val pp_list_generic : ?left:string -> ?sep:string -> ?right:string -> ?delim_style:Ocolor_types.style list -> ?sep_style:Ocolor_types.style list -> ?elem_style:Ocolor_types.style list -> 'a pp -> 'a list pp
val pp_list : 'a pp -> 'a list pp
val pp_iterable_mapping_more_generic : ?left:string -> ?sep:string -> ?right:string -> ?delim_style:Ocolor_types.style list -> ?sep_style:Ocolor_types.style list -> (('a -> 'b -> unit) -> 'c -> unit) -> ('a * 'b) pp -> 'c pp
val pp_iterable_mapping_generic : ?left:string -> ?sep:string -> ?right:string -> ?mapsto:string -> ?delim_style:Ocolor_types.style list -> ?sep_style:Ocolor_types.style list -> ?mapsto_style:Ocolor_types.style list -> ?key_style:Ocolor_types.style list -> ?value_style:Ocolor_types.style list -> (('a -> 'b -> unit) -> 'c -> unit) -> 'a pp -> 'b pp -> 'c pp
val pp_iterable_mapping : (('a -> 'b -> unit) -> 'c -> unit) -> 'a pp -> 'b pp -> 'c pp
module NonStylingPrettyPrinters : sig ... end
OCaml

Innovation. Community. Security.