Skip to main content

Crate orbit_cell

Crate orbit_cell 

Source
Expand description

Typed atomic cells in one fleet-shared SHM table, addressed by id.

A cell is a place, not a name. Cells::allocate takes a slot, stamps its type and hands back an Orbital handle whose CellId is the only thing that ever needs to travel: any process in the fleet that Cells::opens the id reads and updates the same 64 bits, atomically, without a lock and without publishing a frame. orbit-counter is the keyed sibling; this is memory rather than a dictionary.

Every id carries the slot’s generation. Cells::release bumps it, so a handle kept past a release answers Error::Stale instead of touching whoever took the slot next. Cells have no lifetime of their own: what allocates one is expected to release it.

Structs§

CellId
The address of one cell: its slot and the generation it was allocated in.
Cells
The fleet’s cell tables, scalar and text. Cheap to clone.
Orbital
One cell, typed. Cheap to clone; every clone is the same place.
Text
One text cell. Cheap to clone; every clone is the same place.
TextId
The address of one text cell; prints as text:<slot>:<generation>.

Enums§

Claim
What Orbital::add_until did. A bounded add either takes some of what is left or finds nothing left; there is no third answer, and no value past the limit is ever written.
Error
Additions are expected: a cause discovered later lands here rather than in a new major version, so a caller matches what it handles and leaves the rest to a catch-all.

Constants§

CELL_CAPACITY
Number of cells one fleet generation can hold at once.
CELL_STATE_KIND
Reserved Orbit SHM kind for the cell table.
CELL_TEXT_CAPACITY
Number of text cells one fleet generation can hold at once.
CELL_TEXT_KIND
Reserved Orbit SHM kind for the text cell table.
CELL_TEXT_MAX
Bytes one text cell can hold.

Traits§

CellType
A value that fits one cell: 64 bits, and a tag that says which type they spell.

Type Aliases§

Result