sto_erase
Remove a field from an STObject
Concepts
Behaviour
Parse an STObject pointed to by
read_ptr
Write a new STObject to
write_ptr
but withoutfield_id
if it was present in the original object.
Definition
C
🚧Field ID encodingThe
sto_
apis accept afield_id
parameter encoded as follows:(type << 16U) + field
Thus type 1 field 2 would be0x10002U
.
Example
C
📘Emplace equivalence
sto_erase
is the same assto_emplace
with0,0
forfield_ptr, field_len
parameters.
Parameters
write_ptr
uint32_t
The buffer to write the modified STObject to
write_len
uint32_t
The length of the output buffer
read_ptr
uint32_t
The buffer to read the source STObject from
read_len
uint32_t
The Length of the source object
field_id
uint32_t
The sf
code (location) to erase
Return Code
int64_t
The number of bytes written to write_ptr
If negative, an error:
OUT_OF_BOUNDS
- pointers/lengths specified outside of hook memory.
TOO_SMALL
- Output buffer must be at least as large as the source object.
TOO_BIG
- Field you are attempting to erase from is too large
PARSE_ERROR
- The supplied STObject is malformed or not an STObject.
DOESNT_EXIST
- The specified field_id
isn't present in the STObject.
Last updated