Module type MessageSig.SLICE Source type 'cap t = { msg : 'cap message_t ; Identifies the message of interest
segment : 'cap segment_t ; Segment within message housing these bytes
segment_id : int; start : int; Starting byte of the slice
len : int; Length of the slice, in bytes
} Type t represents a contiguous range of bytes associated with a single segment of a message.
alloc m size reserves size bytes of space within message m. This may result in extending the message with an additional segment; if storage cannot be allocated for a new segment, an exception is raised. Note that the allocated slices always begin on an eight-byte boundary.
alloc_in_segment m seg_id size attempts to reserve size bytes of space within segment seg_id of message m. Allocation will fail if the segment is full.
get_segment slice gets the message segment associated with the slice.
val get_end : 'cap t -> intget_end slice computes slice.start + slice.len.
val readonly : 'cap t -> ro t readonly s obtains a view of slice s which is read-only qualified.
get_uintXX s ofs reads an unsigned integer of the specified width, starting at byte offset ofs within the slice.
val get_uint8 : 'cap t -> int -> intval get_uint16 : 'cap t -> int -> intget_intXX s ofs reads a signed integer of the specified width, starting at byte offset ofs within the slice.
val get_int8 : 'cap t -> int -> intval get_int16 : 'cap t -> int -> intval get_int32 : 'cap t -> int -> Int32.t val get_int64 : 'cap t -> int -> Int64.t set_uintXX s ofs val writes the value of the width-restricted unsigned integer val into the read/write-qualified slice, starting at byte offset ofs.
val set_uint8 : rw t -> int -> int -> unitval set_uint16 : rw t -> int -> int -> unitset_intXX s ofs val writes the value of the width-restricted signed integer val into the read/write-qualified slice, starting at byte offset ofs.
val set_int8 : rw t -> int -> int -> unitval set_int16 : rw t -> int -> int -> unitval blit :
src :'cap t ->
src_pos :int ->
dst :rw t ->
dst_pos :int ->
len :int ->
unitblit ~src ~src_pos ~dst ~dst_pos ~len copies len bytes from the source slice (beginning at src_pos) to the destination slice (beginning at dst_pos).
val blit_to_bytes :
src :'cap t ->
src_pos :int ->
dst :Bytes.t ->
dst_pos :int ->
len :int ->
unitAs blit, but the destination is a bytes buffer.
val blit_from_string :
src :string ->
src_pos :int ->
dst :rw t ->
dst_pos :int ->
len :int ->
unitAs blit, but the source is a string buffer.
val zero_out : rw t -> pos :int -> len :int -> unitzero_out ~pos ~len slice sets len bytes of the slice to zero, beginning at byte offset pos.