Module Core_profiler.Header_protocol

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 -> ('rwIobuf.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