pub struct Attachment<'a> {
pub kind: [u8; 8],
pub id: u64,
pub flags: u32,
pub header_bytes: u32,
pub bytes: &'a [u8],
}Expand description
One section to be written into a file, handed to crate::attach.
The payload is bytes and the format keeps it that way. Which of the three key map forms is in
flags, and what the first header_bytes bytes mean, are questions rudb-graph answers and
this crate never asks, which is what makes the first of section 3.2’s three rules true rather
than intended: a mechanism that had to understand a payload could not carry one it had never
heard of.
Fields§
§kind: [u8; 8]Which kind of structure this is, usually one of KEY_MAP, FORWARD_LINK,
ADJACENCY.
id: u64Which structure of that kind. An attachment replaces any section already in the table with the same kind and id, which is what makes rebuilding a key map a write rather than a question about what to do with the old one.
flags: u32Kind-specific flags, copied into the entry and not interpreted.
header_bytes: u32How many bytes at the front of bytes are the kind’s own header.
bytes: &'a [u8]The payload. Empty is legal and is how section 3.7 records a relationship that did not fit
the budget: an entry with no extents, its size reported by rudb_links(), and nothing in
the file to read.