slot

Serialize and output a slotted object

Behaviour

  • Serialize the object currently occupying the specified slot

  • Write the serialized version of the object to the output buffer

👍 Alternative use

For small objects you may avoid using a buffer. Specify 0, 0 for write_ptr, write_len to attempt to return the slotted object as big endian packed data in the int64_t return code. Up to 63 bits of data may be returned this way.

Definition

C

int64_t slot (
    uint32_t write_ptr,
    uint32_t write_len,
  	uint32_t slot_no
);

Example

C

uint8_t txn[512];
int64_t bytes_written = 
    slot(txn, 512, 1); // assumes a transaction is slotted into slot=1

Parameters

Name
Type
Description

write_ptr

uint32_t

Pointer to a buffer of a suitable size to store the output.

write_len

uint32_t

Length of the output buffer.

slot_no

uint32_t

The slot number

Return Code

Type
Description

int64_t

The number of bytes written If negative, an error: OUT_OF_BOUNDS - pointers/lengths specified outside of hook memory. TOO_SMALL - output buffer was not large enough to hold the serialized object

Last updated