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
forwrite_ptr, write_len
to attempt to return the slotted object as big endian packed data in theint64_t
return code. Up to 63 bits of data may be returned this way.
Definition
int64_t slot (
uint32_t write_ptr,
uint32_t write_len,
uint32_t slot_no
);
Example
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 |