capnp

OCaml code generation plugin for the Cap'n Proto serialization framework
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library capnp
Parameter #1 Capnp . Message . Make . Storage
type t

t is the type of the underlying storage used for message segments.

val alloc : int -> t

alloc size allocates storage for size bytes, raising an exception if storage cannot be allocated.

val release : t -> unit

release s immediately releases storage s, potentially making the storage available for future allocations. After releasing a storage segment, the behavior of the accessor functions is undefined.

val length : t -> int

length s determines the length of this storage.

get_uintXX s ofs reads an unsigned integer of the specified width, starting at byte offset ofs within the message segment.

val get_uint8 : t -> int -> int
val get_uint16 : t -> int -> int
val get_uint32 : t -> int -> Stdint.Uint32.t
val get_uint64 : t -> int -> Stdint.Uint64.t

get_intXX s ofs reads a signed integer of the specified width, starting at byte offset ofs within the message segment.

val get_int8 : t -> int -> int
val get_int16 : t -> int -> int
val get_int32 : t -> int -> Int32.t
val get_int64 : t -> int -> Int64.t

set_uintXX s ofs val writes the value of the width-restricted unsigned integer val into the message segment, starting at byte offset ofs.

val set_uint8 : t -> int -> int -> unit
val set_uint16 : t -> int -> int -> unit
val set_uint32 : t -> int -> Stdint.Uint32.t -> unit
val set_uint64 : t -> int -> Stdint.Uint64.t -> unit

set_intXX s ofs val writes the value of the width-restricted signed integer val into the message segment, starting at byte offset ofs.

val set_int8 : t -> int -> int -> unit
val set_int16 : t -> int -> int -> unit
val set_int32 : t -> int -> Int32.t -> unit
val set_int64 : t -> int -> Int64.t -> unit
val blit : src:t -> src_pos:int -> dst:t -> dst_pos:int -> len:int -> unit

blit ~src ~src_pos ~dst ~dst_pos ~len transfers len bytes from position dst_pos in dst to position src_pos in pos. The blit operation shall work correctly even for the case of overlapping buffers.

val blit_to_bytes : src:t -> src_pos:int -> dst: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:t -> dst_pos:int -> len:int -> unit

As blit, but the source is a string buffer.

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

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