package capnp
Module BytesMessage.SegmentSource
include MessageSig.SEGMENT with type storage_t = Bytes.t
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.
alloc size allocates a new zero-filled message segment of at least size bytes, raising an exception if storage cannot be allocated.
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.
readonly s obtains a view of segment s which is read-only qualified.
of_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.
get_intXX s ofs reads a signed integer of the specified width, starting at byte offset ofs within message segment s.
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.
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.
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 ->
unitAs 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.
zero_out segment ~pos ~len sets len bytes of the segment to zero, beginning at byte offset pos.