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, 0forwrite_ptr, write_lento attempt to return the slotted object as big endian packed data in theint64_treturn 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 |