package octez-internal-libs
A package that contains some libraries used by the Octez suite
Install
Dune Dependency
Authors
Maintainers
Sources
tezos-octez-v20.1.tag.bz2
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65
doc/src/octez-internal-libs.irmin/logging.ml.html
Source file logging.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
(* * Copyright (c) 2022 Tarides <contact@tarides.com> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) open! Import include Logging_intf module Source_code_position = Ppx_irmin_internal_lib.Source_code_position (** A logs reporter that is aware of the tags added by [ppx_irmin.internal]. *) let reporter : ?filter_src:(Logs.src -> bool) -> ?prefix:string -> (module Clock) -> Logs.reporter = fun ?(filter_src = Fun.const true) ?(prefix = "") (module Clock) -> let pad n x = if String.length x > n then x else x ^ String.make (n - String.length x) ' ' in let start_time = Clock.counter () in let report src level ~over k msgf = let k _ = over (); k () in let ppf = match level with Logs.App -> Fmt.stdout | _ -> Fmt.stderr in let with_stamp h k fmt = let dt = Mtime.span_to_us (Clock.count start_time) in let source_pos_text, source_pos_colour = match tags with | None -> (Logs.Src.name src, `Magenta) | Some -> let text = Logs.Tag.find Source_code_position.tag tags |> Option.fold ~none:"" ~some:(fun (fname, lnum, _, _) -> Fmt.str "%s:%d" fname lnum) in (text, `Faint) in Fmt.kpf k ppf ("%s%+04.0fus %a %a @[" ^^ fmt ^^ "@]@.") prefix dt Fmt.(styled source_pos_colour string) (pad 35 source_pos_text) Logs_fmt.pp_header (level, h) in msgf @@ fun ?header ? fmt -> if filter_src src then with_stamp header tags k fmt else Format.ikfprintf k ppf fmt in { Logs.report }
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>