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§
- Column
Request - A column to read out of a driver row, and the type to read it as.
- Owned
Row - A row copied out of a driver, addressable by column name.
Enums§
- Cell
- One cell’s value.