core_profiler

Profiling library
Library core_profiler
module Time_ns = Time_ns_unix
val module_name : string
type (-'hierarchy, -'rw) t constraint 'rw = [> Core.read ]
type ('hierarchy, 'rw) message = ( 'hierarchy, 'rw ) t
val sexp_of_t : _ -> _ -> ( _, _ ) t -> Core.Sexp.t
type ('hierarchy, 'rw) t_no_exn = ( 'hierarchy, 'rw ) t
val sexp_of_t_no_exn : _ -> _ -> ( _, _ ) t_no_exn -> Core.Sexp.t
val backing_iobuf : ( _, 'rw ) t -> ( 'rw, Iobuf.no_seek ) Iobuf.t
module R : sig ... end
module Message_type_and_errors : sig ... end
val get_message_type : ( [> Core.read ], _ ) Iobuf.t -> Message_type_and_errors.packed
val of_iobuf : ( 'rw, _ ) Iobuf.t -> trusted:'ty Message_type_and_errors.t -> ( 'ty, 'rw ) t

of_iobuf must be fed a message type that comes from a call to get_message_type on the same window, otherwise it may cause segfaults or nonsensical reads.

val of_iobuf_exn : ( 'rw, _ ) Iobuf.t -> 'ty Message_type_and_errors.t -> ( 'ty, 'rw ) t
module New_single : sig ... end
module New_group : sig ... end
module New_group_point : sig ... end
module End_of_header : sig ... end
module Epoch : sig ... end
module Unpacked : sig ... end
val num_bytes_needed_for_message_length : int
val num_bytes_in_message : ( [> Core.read ], _ ) Iobuf.t -> int

Assuming the iobuf starts at a message, returns its length or raise if the window doesn't contain num_bytes_needed_for_message_length bytes.

val skip_message : ( [> Core.read ], Iobuf.seek ) Iobuf.t -> unit

Equivalent to Iobuf.advance buf (num_bytes_in_message buf)

val buffer_contains_full_message : ( [> Core.read ], _ ) Iobuf.t -> bool
val of_unpacked : Unpacked.t -> ( _, _ ) Iobuf.t
val to_unpacked : ( [> Core.read ], _ ) Iobuf.t -> Unpacked.t R.t
val to_unpacked_exn : ( [> Core.read ], _ ) Iobuf.t -> Unpacked.t