87c8f2d7创建于 2022年4月19日历史提交
(** Utilities for trace command line tools to use to make it easy to view traces *)

open! Core
open! Async

module type S = sig
  type t

  (** Offers configuration parameters for where to save a file and whether to serve it *)
  val param : t Command.Param.t

  (** After [f] writes a trace, either hosts a Perfetto UI server for the resulting file or
      just saves it and prints a message about how to view the resulting trace.

      It is the responsibility of [f] to close the writer and Perfetto may fail to load
      the trace if the writer isn't closed. *)
  val write_and_view
    :  ?num_temp_strs:int
    -> t
    -> default_name:string
    -> f:(Tracing_zero.Writer.t -> 'a Deferred.Or_error.t)
    -> 'a Deferred.Or_error.t

  (** Used to view existing trace files in a hosted UI *)
  module Serve : sig
    type t

    val param : t Command.Param.t
    val serve_file : t -> path:string -> unit Deferred.Or_error.t
  end
end