pub struct Table<T, E>{ /* private fields */ }Implementations§
Source§impl<T, E> Table<T, E>
impl<T, E> Table<T, E>
Sourcepub fn new(table_name: impl Into<String>, data_source: T) -> Table<T, E>
pub fn new(table_name: impl Into<String>, data_source: T) -> Table<T, E>
Create a new Table with the given table name and data source
Sourcepub fn into_entity<E2>(self) -> Table<T, E2>
pub fn into_entity<E2>(self) -> Table<T, E2>
Convert this table to use a different entity type
Sourcepub fn vista_references(&self) -> Vec<Reference>
pub fn vista_references(&self) -> Vec<Reference>
Snapshot the table’s relations as Vista references (name, target type,
cardinality, foreign key). Driver factories fold this into
VistaMetadata so the erased Vista carries enough to drive nested
insert and relation traversal.
Sourcepub fn vista_contained(&self) -> Vec<ContainedSpec>
pub fn vista_contained(&self) -> Vec<ContainedSpec>
Shape-only specs (name, host, kind, id) for the contained relations
declared on this table, for driver factories to fold into
VistaMetadata. Columns are derived at traversal from each relation’s
build_target closure.
Sourcepub fn contained_relation(&self, name: &str) -> Option<&ContainedRelation<T>>
pub fn contained_relation(&self, name: &str) -> Option<&ContainedRelation<T>>
Look up a contained relation by name (for the driver’s traversal).
Sourcepub fn with<F>(self, func: F) -> Table<T, E>
pub fn with<F>(self, func: F) -> Table<T, E>
Use a callback with a builder pattern for configuration
Sourcepub fn table_name(&self) -> &str
pub fn table_name(&self) -> &str
Get the table name
Sourcepub fn set_table_name(&mut self, name: impl Into<String>)
pub fn set_table_name(&mut self, name: impl Into<String>)
Override the table name. Used by REST API drivers to swap a canonical resource path for a per-reference URI template at traversal time.
Sourcepub fn data_source(&self) -> &T
pub fn data_source(&self) -> &T
Get the underlying data source
Sourcepub fn title_field(
&self,
) -> Option<&<T as TableSource>::Column<<T as TableSource>::AnyType>>
pub fn title_field( &self, ) -> Option<&<T as TableSource>::Column<<T as TableSource>::AnyType>>
Get the title field column if set
Sourcepub fn title_fields(&self) -> &[String]
pub fn title_fields(&self) -> &[String]
Names of columns marked as display titles (set via
Self::with_title_column_of). These show alongside the id in
list views and on the leading lines of single-record displays.
Sourcepub fn id_field(
&self,
) -> Option<&<T as TableSource>::Column<<T as TableSource>::AnyType>>
pub fn id_field( &self, ) -> Option<&<T as TableSource>::Column<<T as TableSource>::AnyType>>
Get the id field column if set
Sourcepub fn set_id_field(&mut self, name: impl Into<String>)
pub fn set_id_field(&mut self, name: impl Into<String>)
Mark an already-added column as the id field.
Use this when the id column has been added via Self::add_column
(so its type and aliases were chosen explicitly) and you only need
to flag it. Self::with_id_column is the typed shortcut that
creates the column for you.
Sourcepub fn add_title_field(&mut self, name: impl Into<String>)
pub fn add_title_field(&mut self, name: impl Into<String>)
Mark an already-added column as a display title.
Companion to Self::set_id_field for spec-driven construction.
Sourcepub fn pagination(&self) -> Option<&Pagination>
pub fn pagination(&self) -> Option<&Pagination>
Get the current pagination configuration, if set
Source§impl<T, E> Table<T, E>
impl<T, E> Table<T, E>
Sourcepub fn add_column<NewColumnType>(
&mut self,
column: <T as TableSource>::Column<NewColumnType>,
)where
NewColumnType: ColumnType,
pub fn add_column<NewColumnType>(
&mut self,
column: <T as TableSource>::Column<NewColumnType>,
)where
NewColumnType: ColumnType,
Add a column to the table (accepts any typed column, converts to Column<AnyType>)
Sourcepub fn with_column<NewColumnType>(
self,
column: <T as TableSource>::Column<NewColumnType>,
) -> Table<T, E>where
NewColumnType: ColumnType,
pub fn with_column<NewColumnType>(
self,
column: <T as TableSource>::Column<NewColumnType>,
) -> Table<T, E>where
NewColumnType: ColumnType,
Add a column using builder pattern
Sourcepub fn add_column_of<NewColumnType>(&mut self, name: impl Into<String>)where
NewColumnType: ColumnType,
pub fn add_column_of<NewColumnType>(&mut self, name: impl Into<String>)where
NewColumnType: ColumnType,
Add a typed column to the table (mutable)
Sourcepub fn with_id_column(self, name: impl Into<String>) -> Table<T, E>
pub fn with_id_column(self, name: impl Into<String>) -> Table<T, E>
Add an ID column — sets both the column and the id_field flag.
Sourcepub fn with_title_column_of<NewColumnType>(
self,
name: impl Into<String>,
) -> Table<T, E>where
NewColumnType: ColumnType,
pub fn with_title_column_of<NewColumnType>(
self,
name: impl Into<String>,
) -> Table<T, E>where
NewColumnType: ColumnType,
Add a typed column AND mark it as a display title.
Title columns show alongside the id in generic list views and lead the body of single-record displays. Multiple title columns are allowed; their order matches the order of these calls.
Sourcepub fn with_column_of<NewColumnType>(
self,
name: impl Into<String>,
) -> Table<T, E>where
NewColumnType: ColumnType,
pub fn with_column_of<NewColumnType>(
self,
name: impl Into<String>,
) -> Table<T, E>where
NewColumnType: ColumnType,
Add a typed column to the table (builder pattern)
Sourcepub fn columns(
&self,
) -> &IndexMap<String, <T as TableSource>::Column<<T as TableSource>::AnyType>>
pub fn columns( &self, ) -> &IndexMap<String, <T as TableSource>::Column<<T as TableSource>::AnyType>>
Get all columns as type-erased columns (Column<AnyType>)
Sourcepub fn get_column<Type>(
&self,
name: &str,
) -> Option<<T as TableSource>::Column<Type>>where
Type: ColumnType,
pub fn get_column<Type>(
&self,
name: &str,
) -> Option<<T as TableSource>::Column<Type>>where
Type: ColumnType,
Get a typed column by converting from stored Column<AnyType>
Sourcepub fn get_column_expr(
&self,
name: &str,
) -> Option<Expression<<T as TableSource>::Value>>where
<T as TableSource>::Column<<T as TableSource>::AnyType>: Expressive<<T as TableSource>::Value>,
pub fn get_column_expr(
&self,
name: &str,
) -> Option<Expression<<T as TableSource>::Value>>where
<T as TableSource>::Column<<T as TableSource>::AnyType>: Expressive<<T as TableSource>::Value>,
Get an expression for a column or computed expression by name.
If name matches a registered expression (from with_expression), evaluates
and returns it. Otherwise returns the column as an expression. Returns None
if the name doesn’t match either.
Source§impl<T, E> Table<T, E>where
T: TableSource + ExprDataSource<<T as TableSource>::Value>,
E: Entity<<T as TableSource>::Value> + 'static,
impl<T, E> Table<T, E>where
T: TableSource + ExprDataSource<<T as TableSource>::Value>,
E: Entity<<T as TableSource>::Value> + 'static,
Sourcepub fn column_values_expr(
&self,
column_name: &str,
) -> Expression<<T as TableSource>::Value>
pub fn column_values_expr( &self, column_name: &str, ) -> Expression<<T as TableSource>::Value>
Expression yielding all values of the named column under the table’s current conditions.
SQL backends materialise this as a SELECT col FROM tbl WHERE …
subquery (embeddable directly into IN clauses); non-query
backends wrap a DeferredFn that runs list_table_values and
projects the column at execute time.
Panics if column_name isn’t a column on this table — the
callsite is meant to be a literal column reference, so a typo
is a programmer error, not a runtime failure mode worth
surfacing as Result.
Source§impl<T, E> Table<T, E>
impl<T, E> Table<T, E>
Sourcepub fn add_condition(
&mut self,
condition: impl Into<<T as TableSource>::Condition>,
)
pub fn add_condition( &mut self, condition: impl Into<<T as TableSource>::Condition>, )
Add a permanent condition to limit what records the table represents
Sourcepub fn temp_add_condition(
&mut self,
condition: impl Into<<T as TableSource>::Condition>,
) -> ConditionHandle
pub fn temp_add_condition( &mut self, condition: impl Into<<T as TableSource>::Condition>, ) -> ConditionHandle
Add a temporary condition that can be removed later
Sourcepub fn temp_remove_condition(
&mut self,
handle: ConditionHandle,
) -> Result<(), VantageError>
pub fn temp_remove_condition( &mut self, handle: ConditionHandle, ) -> Result<(), VantageError>
Remove a temporary condition by its handle
Sourcepub fn conditions(&self) -> impl Iterator<Item = &<T as TableSource>::Condition>
pub fn conditions(&self) -> impl Iterator<Item = &<T as TableSource>::Condition>
Get all conditions
Sourcepub fn with_condition(
self,
condition: impl Into<<T as TableSource>::Condition>,
) -> Table<T, E>
pub fn with_condition( self, condition: impl Into<<T as TableSource>::Condition>, ) -> Table<T, E>
Add a condition using the builder pattern
Sourcepub fn add_search(&mut self, value: &str)
pub fn add_search(&mut self, value: &str)
Add a search condition that matches value across all columns.
Sourcepub fn with_search(self, value: &str) -> Table<T, E>
pub fn with_search(self, value: &str) -> Table<T, E>
Add a search condition using the builder pattern.
Source§impl<T, E> Table<T, E>where
T: TableSource + ExprDataSource<<T as TableSource>::Value> + TableExprSource,
E: Entity<<T as TableSource>::Value>,
impl<T, E> Table<T, E>where
T: TableSource + ExprDataSource<<T as TableSource>::Value> + TableExprSource,
E: Entity<<T as TableSource>::Value>,
Sourcepub fn get_expr_count(
&self,
) -> AssociatedExpression<'_, T, <T as TableSource>::Value, usize>
pub fn get_expr_count( &self, ) -> AssociatedExpression<'_, T, <T as TableSource>::Value, usize>
Get an expression for counting rows in this table Returns an AssociatedExpression that can be executed or composed
Sourcepub fn get_expr_sum<R>(
&self,
column: &<T as TableSource>::Column<R>,
) -> AssociatedExpression<'_, T, <T as TableSource>::Value, R>
pub fn get_expr_sum<R>( &self, column: &<T as TableSource>::Column<R>, ) -> AssociatedExpression<'_, T, <T as TableSource>::Value, R>
Get an expression for the sum of a column Returns an AssociatedExpression that can be executed or composed
Sourcepub fn get_expr_max<R>(
&self,
column: &<T as TableSource>::Column<R>,
) -> AssociatedExpression<'_, T, <T as TableSource>::Value, R>
pub fn get_expr_max<R>( &self, column: &<T as TableSource>::Column<R>, ) -> AssociatedExpression<'_, T, <T as TableSource>::Value, R>
Get an expression for the maximum value of a column Returns an AssociatedExpression that can be executed or composed
Sourcepub fn get_expr_min<R>(
&self,
column: &<T as TableSource>::Column<R>,
) -> AssociatedExpression<'_, T, <T as TableSource>::Value, R>
pub fn get_expr_min<R>( &self, column: &<T as TableSource>::Column<R>, ) -> AssociatedExpression<'_, T, <T as TableSource>::Value, R>
Get an expression for the minimum value of a column Returns an AssociatedExpression that can be executed or composed
Source§impl<T, E> Table<T, E>
impl<T, E> Table<T, E>
Sourcepub fn set_pagination(&mut self, pagination: Option<Pagination>)
pub fn set_pagination(&mut self, pagination: Option<Pagination>)
Set pagination configuration
Source§impl<T, E> Table<T, E>
impl<T, E> Table<T, E>
Sourcepub fn with_one<E2>(
self,
relation: &str,
foreign_key: &str,
build_target: impl Fn(T) -> Table<T, E2> + Send + Sync + 'static,
) -> Table<T, E>where
E2: Entity<<T as TableSource>::Value> + 'static,
<T as TableSource>::Value: Into<Value> + From<Value>,
<T as TableSource>::Id: Display + From<String>,
pub fn with_one<E2>(
self,
relation: &str,
foreign_key: &str,
build_target: impl Fn(T) -> Table<T, E2> + Send + Sync + 'static,
) -> Table<T, E>where
E2: Entity<<T as TableSource>::Value> + 'static,
<T as TableSource>::Value: Into<Value> + From<Value>,
<T as TableSource>::Id: Display + From<String>,
Define a one-to-one relationship.
.with_one("bakery", "bakery_id", Bakery::postgres_table)Sourcepub fn with_many<E2>(
self,
relation: &str,
foreign_key: &str,
build_target: impl Fn(T) -> Table<T, E2> + Send + Sync + 'static,
) -> Table<T, E>where
E2: Entity<<T as TableSource>::Value> + 'static,
<T as TableSource>::Value: Into<Value> + From<Value>,
<T as TableSource>::Id: Display + From<String>,
pub fn with_many<E2>(
self,
relation: &str,
foreign_key: &str,
build_target: impl Fn(T) -> Table<T, E2> + Send + Sync + 'static,
) -> Table<T, E>where
E2: Entity<<T as TableSource>::Value> + 'static,
<T as TableSource>::Value: Into<Value> + From<Value>,
<T as TableSource>::Id: Display + From<String>,
Define a one-to-many relationship.
.with_many("orders", "client_id", Order::postgres_table)Sourcepub fn with_contained_one(
self,
relation: &str,
host_column: &str,
build_target: impl Fn(T) -> Table<T, EmptyEntity> + Send + Sync + 'static,
) -> Table<T, E>
pub fn with_contained_one( self, relation: &str, host_column: &str, build_target: impl Fn(T) -> Table<T, EmptyEntity> + Send + Sync + 'static, ) -> Table<T, E>
Declare a contains_one relation: a single record embedded in
host_column (e.g. a product’s inventory object), surfaced as a
sub-Vista. build_target builds the contained record’s table —
the same closure shape as with_one.
.with_contained_one("inventory", "inventory", |db| {
Table::new("inventory", db).with_column_of::<i64>("stock")
})Sourcepub fn with_contained_many(
self,
relation: &str,
host_column: &str,
build_target: impl Fn(T) -> Table<T, EmptyEntity> + Send + Sync + 'static,
id_column: Option<&str>,
) -> Table<T, E>
pub fn with_contained_many( self, relation: &str, host_column: &str, build_target: impl Fn(T) -> Table<T, EmptyEntity> + Send + Sync + 'static, id_column: Option<&str>, ) -> Table<T, E>
Declare a contains_many relation: an array of records embedded in
host_column (e.g. an order’s lines). build_target builds the
contained record’s table; id_column names the field used as each
record’s id (None → positional index).
.with_contained_many("lines", "lines", |db| {
Table::new("lines", db)
.with_column_of::<Thing>("product")
.with_column_of::<i64>("quantity")
}, None)Sourcepub fn vista_columns(&self) -> Vec<Column>where
<T as TableSource>::Column<<T as TableSource>::AnyType>: ColumnLike<<T as TableSource>::AnyType>,
pub fn vista_columns(&self) -> Vec<Column>where
<T as TableSource>::Column<<T as TableSource>::AnyType>: ColumnLike<<T as TableSource>::AnyType>,
Harvest this table’s columns as Vista columns (name + declared type, hidden flag). Used to give a contained sub-Vista its schema.
Sourcepub fn get_contained_ref(
&self,
relation: &str,
row: &Record<Value>,
parent_id: <T as TableSource>::Id,
wrap: impl Fn(Table<T, EmptyEntity>) -> Result<Vista, VantageError> + Send + Sync + 'static,
decode_host: impl Fn(&Value) -> Option<Value>,
encode_host: impl Fn(Value) -> Value + Send + Sync + 'static,
) -> Result<Vista, VantageError>where
<T as TableSource>::Value: From<Value> + Send + Sync,
<T as TableSource>::Id: Clone + Send + Sync,
<T as TableSource>::Column<<T as TableSource>::AnyType>: ColumnLike<<T as TableSource>::AnyType>,
pub fn get_contained_ref(
&self,
relation: &str,
row: &Record<Value>,
parent_id: <T as TableSource>::Id,
wrap: impl Fn(Table<T, EmptyEntity>) -> Result<Vista, VantageError> + Send + Sync + 'static,
decode_host: impl Fn(&Value) -> Option<Value>,
encode_host: impl Fn(Value) -> Value + Send + Sync + 'static,
) -> Result<Vista, VantageError>where
<T as TableSource>::Value: From<Value> + Send + Sync,
<T as TableSource>::Id: Clone + Send + Sync,
<T as TableSource>::Column<<T as TableSource>::AnyType>: ColumnLike<<T as TableSource>::AnyType>,
Resolve a contained relation embedded in row into a sub-Vista.
This is the backend-agnostic skeleton every driver shares: seed the embedded records, wire the eager writeback (patch the host column on the parent row), and the traverse-out resolver. The driver supplies only the three things it alone knows:
parent_id— the row’s id in the driver’s native id type;wrap— turn a targetTableinto aVistavia the driver’s factory (used when a contained record traverses out to a real table);decode_host/encode_host— the host-column codec: native passthrough, or JSON parse/serialize for backends without nested columns.
Sourcepub fn with_contained_specs<C>(
self,
specs: &IndexMap<String, ContainedYaml<C>>,
build_col: impl Fn(&str, &ColumnSpec<C>) -> Result<<T as TableSource>::Column<<T as TableSource>::AnyType>, VantageError>,
) -> Result<Table<T, E>, VantageError>
pub fn with_contained_specs<C>( self, specs: &IndexMap<String, ContainedYaml<C>>, build_col: impl Fn(&str, &ColumnSpec<C>) -> Result<<T as TableSource>::Column<<T as TableSource>::AnyType>, VantageError>, ) -> Result<Table<T, E>, VantageError>
Lower a YAML contained: section into with_contained_* registrations,
reusing the driver’s build_col to construct each contained record’s
columns. Column-build errors surface here; the per-relation target
closure stays infallible by cloning the pre-built columns.
pub fn references(&self) -> Vec<String>
Sourcepub fn with_id(
self,
id: impl Into<<T as TableSource>::Value>,
) -> Result<Table<T, E>, VantageError>
pub fn with_id( self, id: impl Into<<T as TableSource>::Value>, ) -> Result<Table<T, E>, VantageError>
Narrow the table to a single row by id.
Pairs with get_some_value for the “I only know an id” workflow.
The actual condition construction goes through
TableSource::eq_value_condition, so backends that don’t yet
implement that path return an error here.
Sourcepub fn get_ref_from_row<E2>(
&self,
relation: &str,
row: &Record<<T as TableSource>::Value>,
) -> Result<Table<T, E2>, VantageError>
pub fn get_ref_from_row<E2>( &self, relation: &str, row: &Record<<T as TableSource>::Value>, ) -> Result<Table<T, E2>, VantageError>
Traverse a same-persistence reference using a known source row as the join origin.
Reads the join field value out of row, builds the target table via
the reference’s stored factory, and applies one eq-condition that
selects the related rows. No subquery, no deferred fetch — row
already carries the value.
HasOne reads from its stored foreign-key column; HasMany reads
from the source’s id field (looked up here and forwarded into the
reference). The returned table preserves columns, refs, and
expressions from the reference’s factory; only the entity type
changes if E2 differs from the factory’s output.
Sourcepub fn get_ref_as<E2>(
&self,
relation: &str,
) -> Result<Table<T, E2>, VantageError>
pub fn get_ref_as<E2>( &self, relation: &str, ) -> Result<Table<T, E2>, VantageError>
Traverse a same-backend relation into a typed Table<T, E2> with an
IN (subquery) filter on the source column.
Use this when the parent table already carries the narrowing
conditions (e.g. clients.add_condition(is_paying = true)) and you
want every related child row matching that filter. For the
“I have a specific row in hand” case, prefer
Table::get_ref_from_row — it pushes a plain eq-condition
instead of a subquery.
Sourcepub fn get_subquery_as<E2>(
&self,
relation: &str,
) -> Result<Table<T, E2>, VantageError>
pub fn get_subquery_as<E2>( &self, relation: &str, ) -> Result<Table<T, E2>, VantageError>
Get a correlated related table for use inside SELECT expressions.
Unlike Self::get_ref_as (which uses IN (subquery)), this produces a
correlated condition like order.client_id = client.id, suitable
for embedding as a subquery in a SELECT clause via
Self::with_expression.
Sourcepub fn get_ref_target<E2>(
&self,
relation: &str,
) -> Result<Table<T, E2>, VantageError>
pub fn get_ref_target<E2>( &self, relation: &str, ) -> Result<Table<T, E2>, VantageError>
Build the relation’s target table with no condition applied.
Unlike Self::get_ref_from_row / Self::get_ref_as (which select
the related rows for a known parent), this returns the bare target — the
table you’d insert a new related row into. Used by Vista’s nested insert
to obtain the destination for a has-one/has-many child before any join
value exists.
Sourcepub fn with_expression(
self,
name: &str,
expr_fn: impl Fn(&Table<T, E>) -> Expression<<T as TableSource>::Value> + Send + Sync + 'static,
) -> Table<T, E>
pub fn with_expression( self, name: &str, expr_fn: impl Fn(&Table<T, E>) -> Expression<<T as TableSource>::Value> + Send + Sync + 'static, ) -> Table<T, E>
Add a computed expression field using builder pattern.
The closure receives &Table<T, E> and returns an Expression<T::Value>.
It is evaluated lazily when select() builds the query.
Sourcepub fn ref_cardinality(
&self,
relation: &str,
) -> Result<ReferenceKind, VantageError>
pub fn ref_cardinality( &self, relation: &str, ) -> Result<ReferenceKind, VantageError>
Look up cardinality for a registered relation.
Sourcepub fn ref_kinds(&self) -> Vec<(String, ReferenceKind)>
pub fn ref_kinds(&self) -> Vec<(String, ReferenceKind)>
List all registered relations with their cardinality.
Source§impl<T, E> Table<T, E>where
T: SelectableDataSource<<T as TableSource>::Value, <T as TableSource>::Condition> + TableSource,
<T as TableSource>::Value: From<String>,
E: Entity<<T as TableSource>::Value>,
impl<T, E> Table<T, E>where
T: SelectableDataSource<<T as TableSource>::Value, <T as TableSource>::Condition> + TableSource,
<T as TableSource>::Value: From<String>,
E: Entity<<T as TableSource>::Value>,
Sourcepub fn select_empty(
&self,
) -> <T as SelectableDataSource<<T as TableSource>::Value, <T as TableSource>::Condition>>::Select
pub fn select_empty( &self, ) -> <T as SelectableDataSource<<T as TableSource>::Value, <T as TableSource>::Condition>>::Select
Create a bare select with source, conditions, ordering, and pagination —
but no fields. Used by select_column and aggregates to avoid evaluating
all expressions.
Sourcepub fn select(
&self,
) -> <T as SelectableDataSource<<T as TableSource>::Value, <T as TableSource>::Condition>>::Select
pub fn select( &self, ) -> <T as SelectableDataSource<<T as TableSource>::Value, <T as TableSource>::Condition>>::Select
Create a select query with table configuration applied
Sourcepub async fn get_count(&self) -> Result<i64, VantageError>
pub async fn get_count(&self) -> Result<i64, VantageError>
Get count of records in the table
Sourcepub async fn get_sum(
&self,
column: &<T as TableSource>::Column<<T as TableSource>::AnyType>,
) -> Result<<T as TableSource>::Value, VantageError>
pub async fn get_sum( &self, column: &<T as TableSource>::Column<<T as TableSource>::AnyType>, ) -> Result<<T as TableSource>::Value, VantageError>
Get sum of a column in the table
Sourcepub async fn get_max(
&self,
column: &<T as TableSource>::Column<<T as TableSource>::AnyType>,
) -> Result<<T as TableSource>::Value, VantageError>
pub async fn get_max( &self, column: &<T as TableSource>::Column<<T as TableSource>::AnyType>, ) -> Result<<T as TableSource>::Value, VantageError>
Get max of a column in the table
Sourcepub async fn get_min(
&self,
column: &<T as TableSource>::Column<<T as TableSource>::AnyType>,
) -> Result<<T as TableSource>::Value, VantageError>
pub async fn get_min( &self, column: &<T as TableSource>::Column<<T as TableSource>::AnyType>, ) -> Result<<T as TableSource>::Value, VantageError>
Get min of a column in the table
Sourcepub fn get_count_query(&self) -> Expression<<T as TableSource>::Value>
pub fn get_count_query(&self) -> Expression<<T as TableSource>::Value>
Create a count query expression (does not execute). The result is wrapped in parentheses so it’s safe to nest as a subquery.
Sourcepub fn get_sum_query<Type>(
&self,
column: &<T as TableSource>::Column<Type>,
) -> Expression<<T as TableSource>::Value>
pub fn get_sum_query<Type>( &self, column: &<T as TableSource>::Column<Type>, ) -> Expression<<T as TableSource>::Value>
Create a sum query expression for a column (does not execute). The result is wrapped in parentheses so it’s safe to nest as a subquery.
Sourcepub fn select_column(
&self,
field: &str,
) -> Expression<<T as TableSource>::Value>where
<T as TableSource>::Column<<T as TableSource>::AnyType>: Expressive<<T as TableSource>::Value>,
<T as SelectableDataSource<<T as TableSource>::Value, <T as TableSource>::Condition>>::Select: Expressive<<T as TableSource>::Value>,
pub fn select_column(
&self,
field: &str,
) -> Expression<<T as TableSource>::Value>where
<T as TableSource>::Column<<T as TableSource>::AnyType>: Expressive<<T as TableSource>::Value>,
<T as SelectableDataSource<<T as TableSource>::Value, <T as TableSource>::Condition>>::Select: Expressive<<T as TableSource>::Value>,
Create a subquery expression that selects a single column from this table.
Builds SELECT field FROM table WHERE conditions — useful as a correlated
subquery inside with_expression:
.with_expression("category", |t| {
t.get_subquery_as::<Category>("category").unwrap()
.select_column("name")
})Source§impl<T, E> Table<T, E>where
T: SelectableDataSource<Value, <T as TableSource>::Condition> + TableSource<Value = Value> + ExprDataSource,
<T as TableSource>::Value: From<String>,
E: Entity,
impl<T, E> Table<T, E>where
T: SelectableDataSource<Value, <T as TableSource>::Condition> + TableSource<Value = Value> + ExprDataSource,
<T as TableSource>::Value: From<String>,
E: Entity,
Sourcepub async fn get_count_via_query(&self) -> Result<i64, VantageError>
pub async fn get_count_via_query(&self) -> Result<i64, VantageError>
Get count using QuerySource for serde_json::Value
Source§impl<T, E> Table<T, E>
impl<T, E> Table<T, E>
Sourcepub fn add_order(&mut self, order: OrderBy<<T as TableSource>::Condition>)
pub fn add_order(&mut self, order: OrderBy<<T as TableSource>::Condition>)
Add a permanent order clause
Sourcepub fn temp_add_order(
&mut self,
order: OrderBy<<T as TableSource>::Condition>,
) -> OrderHandle
pub fn temp_add_order( &mut self, order: OrderBy<<T as TableSource>::Condition>, ) -> OrderHandle
Add a temporary order clause that can be removed later
Sourcepub fn temp_remove_order(
&mut self,
handle: OrderHandle,
) -> Result<(), VantageError>
pub fn temp_remove_order( &mut self, handle: OrderHandle, ) -> Result<(), VantageError>
Remove a temporary order clause by its handle
§Errors
Returns error if the handle refers to a permanent order (added via add_order)
Sourcepub fn orders(
&self,
) -> impl Iterator<Item = &(<T as TableSource>::Condition, SortDirection)>
pub fn orders( &self, ) -> impl Iterator<Item = &(<T as TableSource>::Condition, SortDirection)>
Get all order clauses
Sourcepub fn clear_orders(&mut self)
pub fn clear_orders(&mut self)
Drop every order clause — both permanent and temporary. Used by Vista
to reset sort state under its replace-semantics add_order.
Sourcepub fn with_order(
self,
order: OrderBy<<T as TableSource>::Condition>,
) -> Table<T, E>
pub fn with_order( self, order: OrderBy<<T as TableSource>::Condition>, ) -> Table<T, E>
Add an order clause using the builder pattern
Source§impl<T, E> Table<T, E>
impl<T, E> Table<T, E>
Sourcepub fn stream(
&self,
) -> Pin<Box<dyn Stream<Item = Result<(<T as TableSource>::Id, E), VantageError>> + Send + '_>>
pub fn stream( &self, ) -> Pin<Box<dyn Stream<Item = Result<(<T as TableSource>::Id, E), VantageError>> + Send + '_>>
Stream all entities as (Id, Entity) pairs.
Delegates to stream_table_values on the data source, converting
each record to the entity type. Backends with native streaming
(e.g. paginated REST APIs) yield records incrementally.
Trait Implementations§
Source§impl<T, E> Clone for Table<T, E>where
T: Clone + TableSource,
E: Clone + Entity<<T as TableSource>::Value>,
<T as TableSource>::Column<<T as TableSource>::AnyType>: Clone,
<T as TableSource>::AnyType: Clone,
<T as TableSource>::Condition: Clone,
impl<T, E> Clone for Table<T, E>where
T: Clone + TableSource,
E: Clone + Entity<<T as TableSource>::Value>,
<T as TableSource>::Column<<T as TableSource>::AnyType>: Clone,
<T as TableSource>::AnyType: Clone,
<T as TableSource>::Condition: Clone,
Source§impl<T, E> InsertableDataSet<E> for Table<T, E>
impl<T, E> InsertableDataSet<E> for Table<T, E>
Source§fn insert_return_id<'life0, 'life1, 'async_trait>(
&'life0 self,
entity: &'life1 E,
) -> Pin<Box<dyn Future<Output = Result<<Table<T, E> as ValueSet>::Id, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Table<T, E>: 'async_trait,
fn insert_return_id<'life0, 'life1, 'async_trait>(
&'life0 self,
entity: &'life1 E,
) -> Pin<Box<dyn Future<Output = Result<<Table<T, E> as ValueSet>::Id, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Table<T, E>: 'async_trait,
Source§impl<T, E> InsertableValueSet for Table<T, E>
impl<T, E> InsertableValueSet for Table<T, E>
Source§fn insert_return_id_value<'life0, 'life1, 'async_trait>(
&'life0 self,
record: &'life1 Record<<Table<T, E> as ValueSet>::Value>,
) -> Pin<Box<dyn Future<Output = Result<<Table<T, E> as ValueSet>::Id, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Table<T, E>: 'async_trait,
fn insert_return_id_value<'life0, 'life1, 'async_trait>(
&'life0 self,
record: &'life1 Record<<Table<T, E> as ValueSet>::Value>,
) -> Pin<Box<dyn Future<Output = Result<<Table<T, E> as ValueSet>::Id, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Table<T, E>: 'async_trait,
Source§impl<T, E> ReadableDataSet<E> for Table<T, E>
impl<T, E> ReadableDataSet<E> for Table<T, E>
Source§fn list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<IndexMap<<Table<T, E> as ValueSet>::Id, E>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Table<T, E>: 'async_trait,
fn list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<IndexMap<<Table<T, E> as ValueSet>::Id, E>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Table<T, E>: 'async_trait,
Source§fn get<'life0, 'async_trait>(
&'life0 self,
id: impl Into<<Table<T, E> as ValueSet>::Id> + Send + 'async_trait,
) -> Pin<Box<dyn Future<Output = Result<Option<E>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Table<T, E>: 'async_trait,
fn get<'life0, 'async_trait>(
&'life0 self,
id: impl Into<<Table<T, E> as ValueSet>::Id> + Send + 'async_trait,
) -> Pin<Box<dyn Future<Output = Result<Option<E>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Table<T, E>: 'async_trait,
Source§fn get_some<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<(<Table<T, E> as ValueSet>::Id, E)>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Table<T, E>: 'async_trait,
fn get_some<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<(<Table<T, E> as ValueSet>::Id, E)>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Table<T, E>: 'async_trait,
Source§impl<T, E> ReadableValueSet for Table<T, E>
impl<T, E> ReadableValueSet for Table<T, E>
Source§fn list_values<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<IndexMap<<Table<T, E> as ValueSet>::Id, Record<<Table<T, E> as ValueSet>::Value>>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Table<T, E>: 'async_trait,
fn list_values<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<IndexMap<<Table<T, E> as ValueSet>::Id, Record<<Table<T, E> as ValueSet>::Value>>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Table<T, E>: 'async_trait,
Source§fn get_value<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
) -> Pin<Box<dyn Future<Output = Result<Option<Record<<Table<T, E> as ValueSet>::Value>>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Table<T, E>: 'async_trait,
fn get_value<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
) -> Pin<Box<dyn Future<Output = Result<Option<Record<<Table<T, E> as ValueSet>::Value>>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Table<T, E>: 'async_trait,
Source§fn get_some_value<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<(<Table<T, E> as ValueSet>::Id, Record<<Table<T, E> as ValueSet>::Value>)>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Table<T, E>: 'async_trait,
fn get_some_value<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<(<Table<T, E> as ValueSet>::Id, Record<<Table<T, E> as ValueSet>::Value>)>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Table<T, E>: 'async_trait,
Source§impl<T, E> TableLike for Table<T, E>where
T: TableSource + 'static + Send + Sync,
E: Entity<<T as TableSource>::Value> + 'static + Send + Sync,
impl<T, E> TableLike for Table<T, E>where
T: TableSource + 'static + Send + Sync,
E: Entity<<T as TableSource>::Value> + 'static + Send + Sync,
fn table_alias(&self) -> &str
fn table_name(&self) -> &str
Source§fn set_table_name(&mut self, name: String)
fn set_table_name(&mut self, name: String)
fn column_names(&self) -> Vec<String>
Source§fn id_field_name(&self) -> Option<String>
fn id_field_name(&self) -> Option<String>
Source§fn title_field_names(&self) -> Vec<String>
fn title_field_names(&self) -> Vec<String>
TitleField.Source§fn column_types(&self) -> IndexMap<String, &'static str>
fn column_types(&self) -> IndexMap<String, &'static str>
Column::get_type()) override this
so generic UIs can drive type-aware rendering without poking at
concrete column types.Source§fn get_ref_names(&self) -> Vec<String>
fn get_ref_names(&self) -> Vec<String>
get_ref.Source§fn add_condition(
&mut self,
condition: Box<dyn Any + Sync + Send>,
) -> Result<(), VantageError>
fn add_condition( &mut self, condition: Box<dyn Any + Sync + Send>, ) -> Result<(), VantageError>
Source§fn add_condition_eq(
&mut self,
field: &str,
value: &str,
) -> Result<(), VantageError>
fn add_condition_eq( &mut self, field: &str, value: &str, ) -> Result<(), VantageError>
Source§fn temp_add_condition(
&mut self,
condition: AnyExpression,
) -> Result<ConditionHandle, VantageError>
fn temp_add_condition( &mut self, condition: AnyExpression, ) -> Result<ConditionHandle, VantageError>
Source§fn temp_remove_condition(
&mut self,
handle: ConditionHandle,
) -> Result<(), VantageError>
fn temp_remove_condition( &mut self, handle: ConditionHandle, ) -> Result<(), VantageError>
Source§fn search_expression(
&self,
search_value: &str,
) -> Result<AnyExpression, VantageError>
fn search_expression( &self, search_value: &str, ) -> Result<AnyExpression, VantageError>
Source§fn clone_box(
&self,
) -> Box<dyn TableLike<Value = <Table<T, E> as ValueSet>::Value, Id = <Table<T, E> as ValueSet>::Id>>
fn clone_box( &self, ) -> Box<dyn TableLike<Value = <Table<T, E> as ValueSet>::Value, Id = <Table<T, E> as ValueSet>::Id>>
fn as_any_ref(&self) -> &(dyn Any + 'static)
Source§fn set_pagination(&mut self, pagination: Option<Pagination>)
fn set_pagination(&mut self, pagination: Option<Pagination>)
Source§fn get_pagination(&self) -> Option<&Pagination>
fn get_pagination(&self) -> Option<&Pagination>
Source§impl<T, E> WritableDataSet<E> for Table<T, E>
impl<T, E> WritableDataSet<E> for Table<T, E>
Source§fn insert<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
entity: &'life2 E,
) -> Pin<Box<dyn Future<Output = Result<E, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Table<T, E>: 'async_trait,
fn insert<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
entity: &'life2 E,
) -> Pin<Box<dyn Future<Output = Result<E, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Table<T, E>: 'async_trait,
Source§fn replace<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
entity: &'life2 E,
) -> Pin<Box<dyn Future<Output = Result<E, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Table<T, E>: 'async_trait,
fn replace<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
entity: &'life2 E,
) -> Pin<Box<dyn Future<Output = Result<E, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Table<T, E>: 'async_trait,
Source§fn patch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
partial: &'life2 E,
) -> Pin<Box<dyn Future<Output = Result<E, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Table<T, E>: 'async_trait,
fn patch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
partial: &'life2 E,
) -> Pin<Box<dyn Future<Output = Result<E, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Table<T, E>: 'async_trait,
Source§impl<T, E> WritableValueSet for Table<T, E>
impl<T, E> WritableValueSet for Table<T, E>
Source§fn insert_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
record: &'life2 Record<<Table<T, E> as ValueSet>::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<<Table<T, E> as ValueSet>::Value>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Table<T, E>: 'async_trait,
fn insert_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
record: &'life2 Record<<Table<T, E> as ValueSet>::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<<Table<T, E> as ValueSet>::Value>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Table<T, E>: 'async_trait,
Source§fn replace_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
record: &'life2 Record<<Table<T, E> as ValueSet>::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<<Table<T, E> as ValueSet>::Value>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Table<T, E>: 'async_trait,
fn replace_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
record: &'life2 Record<<Table<T, E> as ValueSet>::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<<Table<T, E> as ValueSet>::Value>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Table<T, E>: 'async_trait,
Source§fn patch_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
partial: &'life2 Record<<Table<T, E> as ValueSet>::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<<Table<T, E> as ValueSet>::Value>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Table<T, E>: 'async_trait,
fn patch_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
partial: &'life2 Record<<Table<T, E> as ValueSet>::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<<Table<T, E> as ValueSet>::Value>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Table<T, E>: 'async_trait,
Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
) -> Pin<Box<dyn Future<Output = Result<(), VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Table<T, E>: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 <Table<T, E> as ValueSet>::Id,
) -> Pin<Box<dyn Future<Output = Result<(), VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Table<T, E>: 'async_trait,
impl<T, E> DataSet<E> for Table<T, E>
Auto Trait Implementations§
impl<T, E> Freeze for Table<T, E>where
T: Freeze,
impl<T, E> !RefUnwindSafe for Table<T, E>
impl<T, E> Send for Table<T, E>
impl<T, E> Sync for Table<T, E>
impl<T, E> Unpin for Table<T, E>where
T: Unpin,
E: Unpin,
<T as TableSource>::Column<<T as TableSource>::AnyType>: Unpin,
<T as TableSource>::Condition: Unpin,
impl<T, E> UnsafeUnpin for Table<T, E>where
T: UnsafeUnpin,
impl<T, E> !UnwindSafe for Table<T, E>
Blanket Implementations§
Source§impl<T, E> ActiveEntitySet<E> for Twhere
T: ReadableDataSet<E> + WritableDataSet<E>,
E: Entity<<T as ValueSet>::Value> + IntoRecord<<T as ValueSet>::Value> + TryFromRecord<<T as ValueSet>::Value> + Send + Sync + Clone,
impl<T, E> ActiveEntitySet<E> for Twhere
T: ReadableDataSet<E> + WritableDataSet<E>,
E: Entity<<T as ValueSet>::Value> + IntoRecord<<T as ValueSet>::Value> + TryFromRecord<<T as ValueSet>::Value> + Send + Sync + Clone,
Source§fn get_entity<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
) -> Pin<Box<dyn Future<Output = Result<Option<ActiveEntity<'life0, Self, E>>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
fn get_entity<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
) -> Pin<Box<dyn Future<Output = Result<Option<ActiveEntity<'life0, Self, E>>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
Source§fn list_entities<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ActiveEntity<'life0, Self, E>>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: Sync + 'async_trait,
fn list_entities<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ActiveEntity<'life0, Self, E>>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: Sync + 'async_trait,
Source§fn get_some_entity<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<ActiveEntity<'life0, Self, E>>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: Sync + 'async_trait,
fn get_some_entity<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<ActiveEntity<'life0, Self, E>>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: Sync + 'async_trait,
Source§fn new_entity(&self, id: Self::Id, entity: E) -> ActiveEntity<'_, Self, E>
fn new_entity(&self, id: Self::Id, entity: E) -> ActiveEntity<'_, Self, E>
Source§impl<T> ActiveRecordSet for T
impl<T> ActiveRecordSet for T
Source§fn get_value_record<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 <T as ValueSet>::Id,
) -> Pin<Box<dyn Future<Output = Result<Option<ActiveRecord<'life0, T>>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
T: 'async_trait,
fn get_value_record<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 <T as ValueSet>::Id,
) -> Pin<Box<dyn Future<Output = Result<Option<ActiveRecord<'life0, T>>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
T: 'async_trait,
Source§fn list_value_records<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ActiveRecord<'life0, T>>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
fn list_value_records<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ActiveRecord<'life0, T>>, VantageError>> + Send + 'async_trait>>where
'life0: 'async_trait,
T: 'async_trait,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> ExpressionLike for T
impl<T> ExpressionLike for T
Source§fn clone_box(&self) -> Box<dyn ExpressionLike>
fn clone_box(&self) -> Box<dyn ExpressionLike>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more