Skip to main content

Module row

Module row 

Source
Expand description

Owned row snapshots — OwnedRow, Cell and ColumnRequest.

Rainier ORM hands back Box<dyn Row>, and Row carries no Send bound — correctly, since a driver’s row may borrow from a !Send connection. But a value that is not Send cannot be the output of a Send future, so a row in that form can never leave the request path’s thread.

So the connection port copies each row into an OwnedRow before returning it: a plain map of name → Cell, which is Send, and which implements Rainier ORM’s own Row trait so the derived Entity::from_row decoder reads it unchanged. Decoding still belongs entirely to the ORM; only the transport of the raw values is ours.

Reading a row requires knowing which columns to ask for, because Row is addressed by name and type rather than enumerable — hence ColumnRequest, which the caller builds from E::columns().

Structs§

ColumnRequest
A column to read out of a driver row, and the type to read it as.
OwnedRow
A row copied out of a driver, addressable by column name.

Enums§

Cell
One cell’s value.