#[repr(C)]pub struct NetEvent {
pub id: *const c_char,
pub id_len: usize,
pub raw: *const c_char,
pub raw_len: usize,
pub insertion_ts: u64,
pub shard_id: u16,
}Expand description
A single stored event for C consumers.
§Safety contract for callers
id/id_len and raw/raw_len are produced by Rust as a
Box<[u8]> whose fat-pointer length is reconstructed at free
time from id_len / raw_len. The fields are pub because
#[repr(C)] exposes them to C, but they must be treated as
read-only between the net_poll_* call that produced them
and the net_free_poll_result that consumes them.
Mutating id_len or raw_len (or copying the struct, replacing
the pointer, and then freeing) causes
Box::from_raw(slice_from_raw_parts_mut(ptr, wrong_len)) to be
undefined behavior on free — the allocator records the
allocation size and any mismatch is UB.
Fields§
§id: *const c_charEvent ID (not null-terminated, use id_len).
Read-only after net_poll_*; do not mutate.
id_len: usizeLength of the event ID. Read-only after net_poll_*; do not
mutate (mutation causes UB on free).
raw: *const c_charRaw JSON payload (not null-terminated, use raw_len).
Read-only after net_poll_*; do not mutate.
raw_len: usizeLength of the raw JSON payload. Read-only after
net_poll_*; do not mutate (mutation causes UB on free).
insertion_ts: u64Insertion timestamp (nanoseconds).
shard_id: u16Shard ID.