open Base open Sequence open Sequence.Infix let center ~fill n text = let padding = repeat fill and len_t = length text in let len_p = (n - len_t) / 2 in take (take padding len_p @ text @ padding) n let extend ~fill n text = take (text @ repeat fill) n let spread ?(l = empty) ?(lsize = length l) ?(c = empty) ?(csize = length c) ?(r = empty) ?(rsize = length r) ~fill w = let lpad = take (repeat fill) ((w / 2) - lsize - (csize / 2) - 1) in let rpad = take (repeat fill) ((w / 2) - rsize - (csize / 2)) in l @ lpad @ c @ rpad @ r let invert text = Terminal.(fmt_inverted_on @ text @ fmt_inverted_off) let bold text = Terminal.(fmt_bold_on @ text @ fmt_bold_off)