package capnp

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
include SLICE with type 'a segment_t := 'a Segment.t and type 'a message_t := 'a Message.t
type 'cap t = {
  1. msg : 'cap Message.t;
    (*

    Identifies the message of interest

    *)
  2. segment : 'cap Segment.t;
    (*

    Segment within message housing these bytes

    *)
  3. segment_id : int;
    (*

    Index of the segment

    *)
  4. start : int;
    (*

    Starting byte of the slice

    *)
  5. len : int;
    (*

    Length of the slice, in bytes

    *)
}

Type t represents a contiguous range of bytes associated with a single segment of a message.

val alloc : rw Message.t -> int -> rw t

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.

val alloc_in_segment : rw Message.t -> int -> int -> rw t option

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.

val get_segment : 'cap t -> 'cap Segment.t

get_segment slice gets the message segment associated with the slice.

val get_end : 'cap t -> int

get_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 -> int
val get_uint16 : 'cap t -> int -> int
val get_uint32 : 'cap t -> int -> Uint32.t
val get_uint64 : 'cap t -> int -> Uint64.t

get_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 -> int
val get_int16 : 'cap t -> int -> int
val get_int32 : 'cap t -> int -> Stdlib.Int32.t
val get_int64 : 'cap t -> int -> Stdlib.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 -> unit
val set_uint16 : rw t -> int -> int -> unit
val set_uint32 : rw t -> int -> Uint32.t -> unit
val set_uint64 : rw t -> int -> Uint64.t -> unit

set_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 -> unit
val set_int16 : rw t -> int -> int -> unit
val set_int32 : rw t -> int -> Stdlib.Int32.t -> unit
val set_int64 : rw t -> int -> Stdlib.Int64.t -> unit
val blit : src:'cap t -> src_pos:int -> dst:rw t -> dst_pos:int -> len:int -> unit

blit ~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:Stdlib.Bytes.t -> dst_pos:int -> len:int -> unit

As 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 -> unit

As blit, but the source is a string buffer.

val zero_out : rw t -> pos:int -> len:int -> unit

zero_out ~pos ~len slice sets len bytes of the slice to zero, beginning at byte offset pos.

OCaml

Innovation. Community. Security.