pub trait Fields {
const PRIMARY_KEY: Option<&'static [usize]>;
// Required methods
fn fields() -> Vec<(&'static str, DataType)>;
fn into_owned_row(self) -> OwnedRow;
// Provided method
fn data_chunk_builder(capacity: usize) -> DataChunkBuilder { ... }
}Expand description
A struct can implements Fields when if can be represented as a relational Row.
§Derivable
This trait can be automatically derived with #[derive(Fields)].
Type of the fields must implement WithDataType and ToOwnedDatum.
#[derive(Fields)]
struct Data {
v1: i16,
v2: i32,
}You can add #[primary_key] attribute to one of the fields to specify the primary key of the table.
#[derive(Fields)]
struct Data {
#[primary_key]
v1: i16,
v2: i32,
}If the primary key is composite, you can add #[primary_key(...)] attribute to the struct to specify the order of the fields.
#[derive(Fields)]
#[primary_key(v2, v1)]
struct Data {
v1: i16,
v2: i32,
}Required Associated Constants§
Sourceconst PRIMARY_KEY: Option<&'static [usize]>
const PRIMARY_KEY: Option<&'static [usize]>
The primary key of the table.
Noneif the primary key is not applicable.Some(&[])if the primary key is empty, i.e., there’ll be at most one row in the table.
Required Methods§
Sourcefn into_owned_row(self) -> OwnedRow
fn into_owned_row(self) -> OwnedRow
Convert the struct to an OwnedRow.
Provided Methods§
Sourcefn data_chunk_builder(capacity: usize) -> DataChunkBuilder
fn data_chunk_builder(capacity: usize) -> DataChunkBuilder
Create a DataChunkBuilder with the schema of the struct.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".