capnp

OCaml code generation plugin for the Cap'n Proto serialization framework
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library capnp
include MessageSig.SEGMENT
type storage_t

storage_t is the type of the underlying storage associated with this segment (e.g. "bytes").

type -'cap t

'cap t is the type of a message segment. The 'cap annotation is type ro for read-only segments, and type rw for read/write segments.

val alloc : int -> MessageSig.rw t

alloc size allocates a new zero-filled message segment of at least size bytes, raising an exception if storage cannot be allocated.

val release : 'cap t -> unit

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

val length : 'cap t -> int

length s determines the length of this message segment.

val readonly : 'cap t -> MessageSig.ro t

readonly s obtains a view of segment s which is read-only qualified.

val of_storage : storage_t -> MessageSig.rw t

of_storage storage constructs a read/write segment which uses the given storage for the underlying storage media.

val to_storage : 'cap t -> storage_t

to_storage s retrieves the underlying storage media associated with segment s.

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

val get_uint8 : 'cap t -> int -> int
val get_uint16 : 'cap t -> int -> int
val get_uint32 : 'cap t -> int -> MessageSig.Uint32.t
val get_uint64 : 'cap t -> int -> MessageSig.Uint64.t

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

val get_int8 : 'cap t -> int -> int
val get_int16 : 'cap t -> int -> int
val 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 read/write-qualified message segment s, starting at byte offset ofs.

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

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

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

As blit, but the source is a string buffer.

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

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