package capnp
Module RWM.Segment
include MessageSig.SEGMENT
storage_t is the type of the underlying storage associated with this segment (e.g. "bytes").
'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 talloc 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 -> unitrelease 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 -> intlength s determines the length of this message segment.
val readonly : 'cap t -> MessageSig.ro treadonly s obtains a view of segment s which is read-only qualified.
val of_storage : storage_t -> MessageSig.rw tof_storage storage constructs a read/write segment which uses the given storage for the underlying storage media.
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 -> intval get_uint16 : 'cap t -> int -> intval get_uint32 : 'cap t -> int -> Stdint.Uint32.tval get_uint64 : 'cap t -> int -> Stdint.Uint64.tget_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 -> intval get_int16 : 'cap t -> int -> intset_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 -> unitval set_uint16 : MessageSig.rw t -> int -> int -> unitval set_uint32 : MessageSig.rw t -> int -> Stdint.Uint32.t -> unitval set_uint64 : MessageSig.rw t -> int -> Stdint.Uint64.t -> unitset_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 -> unitval set_int16 : MessageSig.rw t -> int -> int -> unitval set_int32 : MessageSig.rw t -> int -> Int32.t -> unitval set_int64 : MessageSig.rw t -> int -> Int64.t -> unitval blit :
src:'cap t ->
src_pos:int ->
dst:MessageSig.rw t ->
dst_pos:int ->
len:int ->
unitblit ~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.
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 ->
unitAs blit, but the source is a string buffer.
val zero_out : MessageSig.rw t -> pos:int -> len:int -> unitzero_out segment ~pos ~len sets len bytes of the segment to zero, beginning at byte offset pos.