core_profiler

Profiling library
Library core_profiler
type phantom = [
| `New_group
]
type nonrec -'rw t = ( phantom, 'rw ) t constraint 'rw = [> Core.read ]
val sexp_of_t : ( 'rw -> Sexplib0.Sexp.t ) -> 'rw t -> Sexplib0.Sexp.t
val t_of_sexp : ( Sexplib0.Sexp.t -> 'rw ) -> Sexplib0.Sexp.t -> 'rw t
val message_type : char
val buffer_length : int
val of_iobuf_exn : ( 'rw, _ ) Iobuf.t -> 'rw t
val write : id:Probe_id.t -> spec:Probe_type.t -> name:string -> ( Core.read_write, _ ) Iobuf.t -> int
val create : id:Probe_id.t -> spec:Probe_type.t -> name:string -> ( Core.read_write, Iobuf.seek ) Iobuf.t
val get_message_length : _ t -> int
val get_message_type : _ t -> char
val get_id : _ t -> Probe_id.t
val get_spec : _ t -> Probe_type.t
val name_max_len : int
val get_name : _ t -> string
val get_name_zero : _ t -> ( ( Core.read, Iobuf.no_seek ) Iobuf.t -> safe_pos:int -> safe_len:int -> 'a ) -> 'a
val get_name_zero_padded : _ t -> ( ( Core.read, Iobuf.no_seek ) Iobuf.t -> safe_pos:int -> safe_len:int -> 'a ) -> 'a
val set_id : ( Core.read_write, _ ) Iobuf.t -> Probe_id.t -> unit
val set_spec : ( Core.read_write, _ ) Iobuf.t -> Probe_type.t -> unit
val set_name : ( Core.read_write, _ ) Iobuf.t -> string -> unit
val set_name_zero : ( Core.read_write, Iobuf.seek ) Iobuf.t -> ( 'a -> ( Core.read_write, Iobuf.seek ) Iobuf.t -> unit ) -> 'a -> unit

set_name_zero buf f a calls f on buf, with the window adjusted to where name is. Even though f is given a seekable buffer, it must move nothing except the lower bound of the window past the data it wrote.

val to_sub_iobuf : 'rw t -> ( 'rw, Iobuf.seek ) Iobuf.t
module Unpacked : sig ... end
val to_unpacked : 'rw t -> Unpacked.t
val of_unpacked : Unpacked.t -> 'rw t