pub struct Table<T, E>{ /* private fields */ }Implementations§
Source§impl<T: TableSource, E: Entity<T::Value>> Table<T, E>
impl<T: TableSource, E: Entity<T::Value>> Table<T, E>
Sourcepub fn new(table_name: impl Into<String>, data_source: T) -> Self
pub fn new(table_name: impl Into<String>, data_source: T) -> Self
Create a new Table with the given table name and data source
Sourcepub fn into_entity<E2: Entity<T::Value>>(self) -> Table<T, E2>
pub fn into_entity<E2: Entity<T::Value>>(self) -> Table<T, E2>
Convert this table to use a different entity type
Sourcepub fn with<F>(self, func: F) -> Selfwhere
F: FnOnce(&mut Self),
pub fn with<F>(self, func: F) -> Selfwhere
F: FnOnce(&mut Self),
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 data_source(&self) -> &T
pub fn data_source(&self) -> &T
Get the underlying data source
Sourcepub fn title_field(&self) -> Option<&T::Column<T::AnyType>>
pub fn title_field(&self) -> Option<&T::Column<T::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 pagination(&self) -> Option<&Pagination>
pub fn pagination(&self) -> Option<&Pagination>
Get the current pagination configuration, if set
Source§impl<T: TableSource, E: Entity<T::Value>> Table<T, E>
impl<T: TableSource, E: Entity<T::Value>> Table<T, E>
Sourcepub fn add_column<NewColumnType>(&mut self, column: T::Column<NewColumnType>)where
NewColumnType: ColumnType,
pub fn add_column<NewColumnType>(&mut self, column: T::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::Column<NewColumnType>,
) -> Selfwhere
NewColumnType: ColumnType,
pub fn with_column<NewColumnType>(
self,
column: T::Column<NewColumnType>,
) -> Selfwhere
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>) -> Selfwhere
T::Id: ColumnType,
pub fn with_id_column(self, name: impl Into<String>) -> Selfwhere
T::Id: ColumnType,
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>,
) -> Selfwhere
NewColumnType: ColumnType,
pub fn with_title_column_of<NewColumnType>(
self,
name: impl Into<String>,
) -> Selfwhere
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>) -> Selfwhere
NewColumnType: ColumnType,
pub fn with_column_of<NewColumnType>(self, name: impl Into<String>) -> Selfwhere
NewColumnType: ColumnType,
Add a typed column to the table (builder pattern)
Sourcepub fn columns(&self) -> &IndexMap<String, T::Column<T::AnyType>>
pub fn columns(&self) -> &IndexMap<String, T::Column<T::AnyType>>
Get all columns as type-erased columns (Column<AnyType>)
Sourcepub fn get_column<Type>(&self, name: &str) -> Option<T::Column<Type>>where
Type: ColumnType,
pub fn get_column<Type>(&self, name: &str) -> Option<T::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::Value>>
pub fn get_column_expr(&self, name: &str) -> Option<Expression<T::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>
impl<T, E> Table<T, E>
Sourcepub fn column_values_expr(&self, column_name: &str) -> Expression<T::Value>
pub fn column_values_expr(&self, column_name: &str) -> Expression<T::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: TableSource, E: Entity<T::Value>> Table<T, E>
impl<T: TableSource, E: Entity<T::Value>> Table<T, E>
Sourcepub fn add_condition(&mut self, condition: impl Into<T::Condition>)
pub fn add_condition(&mut self, condition: impl Into<T::Condition>)
Add a permanent condition to limit what records the table represents
Sourcepub fn temp_add_condition(
&mut self,
condition: impl Into<T::Condition>,
) -> ConditionHandle
pub fn temp_add_condition( &mut self, condition: impl Into<T::Condition>, ) -> ConditionHandle
Add a temporary condition that can be removed later
Sourcepub fn temp_remove_condition(&mut self, handle: ConditionHandle) -> Result<()>
pub fn temp_remove_condition(&mut self, handle: ConditionHandle) -> Result<()>
Remove a temporary condition by its handle
Sourcepub fn conditions(&self) -> impl Iterator<Item = &T::Condition>
pub fn conditions(&self) -> impl Iterator<Item = &T::Condition>
Get all conditions
Sourcepub fn with_condition(self, condition: impl Into<T::Condition>) -> Self
pub fn with_condition(self, condition: impl Into<T::Condition>) -> Self
Add a condition using the builder pattern
Sourcepub fn add_search(&mut self, value: &str)where
T: Sized,
pub fn add_search(&mut self, value: &str)where
T: Sized,
Add a search condition that matches value across all columns.
Sourcepub fn with_search(self, value: &str) -> Selfwhere
T: Sized,
pub fn with_search(self, value: &str) -> Selfwhere
T: Sized,
Add a search condition using the builder pattern.
Source§impl<T, E> Table<T, E>
impl<T, E> Table<T, E>
Sourcepub fn get_expr_count(&self) -> AssociatedExpression<'_, T, T::Value, usize>
pub fn get_expr_count(&self) -> AssociatedExpression<'_, T, T::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: ColumnType + Default + AddAssign>(
&self,
column: &T::Column<R>,
) -> AssociatedExpression<'_, T, T::Value, R>
pub fn get_expr_sum<R: ColumnType + Default + AddAssign>( &self, column: &T::Column<R>, ) -> AssociatedExpression<'_, T, T::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: ColumnType + Default + AddAssign>(
&self,
column: &T::Column<R>,
) -> AssociatedExpression<'_, T, T::Value, R>
pub fn get_expr_max<R: ColumnType + Default + AddAssign>( &self, column: &T::Column<R>, ) -> AssociatedExpression<'_, T, T::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: ColumnType + Default + AddAssign>(
&self,
column: &T::Column<R>,
) -> AssociatedExpression<'_, T, T::Value, R>
pub fn get_expr_min<R: ColumnType + Default + AddAssign>( &self, column: &T::Column<R>, ) -> AssociatedExpression<'_, T, T::Value, R>
Get an expression for the minimum value of a column Returns an AssociatedExpression that can be executed or composed
Source§impl<T: TableSource, E: Entity<T::Value>> Table<T, E>
impl<T: TableSource, E: Entity<T::Value>> 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: TableSource + 'static, E: Entity<T::Value> + 'static> Table<T, E>
impl<T: TableSource + 'static, E: Entity<T::Value> + 'static> Table<T, E>
Sourcepub fn with_one<E2: Entity<T::Value> + 'static>(
self,
relation: &str,
foreign_key: &str,
build_target: impl Fn(T) -> Table<T, E2> + Send + Sync + 'static,
) -> Self
pub fn with_one<E2: Entity<T::Value> + 'static>( self, relation: &str, foreign_key: &str, build_target: impl Fn(T) -> Table<T, E2> + Send + Sync + 'static, ) -> Self
Define a one-to-one relationship.
.with_one("bakery", "bakery_id", Bakery::postgres_table)Sourcepub fn with_many<E2: Entity<T::Value> + 'static>(
self,
relation: &str,
foreign_key: &str,
build_target: impl Fn(T) -> Table<T, E2> + Send + Sync + 'static,
) -> Self
pub fn with_many<E2: Entity<T::Value> + 'static>( self, relation: &str, foreign_key: &str, build_target: impl Fn(T) -> Table<T, E2> + Send + Sync + 'static, ) -> Self
Define a one-to-many relationship.
.with_many("orders", "client_id", Order::postgres_table)Sourcepub fn with_foreign(
self,
relation: &str,
target_type: &'static str,
resolve: impl Fn(&Table<T, E>) -> Result<AnyTable> + Send + Sync + 'static,
) -> Self
pub fn with_foreign( self, relation: &str, target_type: &'static str, resolve: impl Fn(&Table<T, E>) -> Result<AnyTable> + Send + Sync + 'static, ) -> Self
Define a cross-persistence reference.
The closure receives this table and returns an AnyTable from any backend
with deferred conditions attached.
.with_foreign("mongo_orders", "Table<MongoDB, Order>", |clients| {
let mut orders = Order::mongo_table(mongo_db.clone());
// attach deferred condition ...
Ok(AnyTable::from_table(orders))
})pub fn references(&self) -> Vec<String>
Sourcepub fn is_foreign_ref(&self, relation: &str) -> Result<bool>
pub fn is_foreign_ref(&self, relation: &str) -> Result<bool>
Check if a reference is cross-persistence (foreign).
Sourcepub fn get_ref_as<E2: Entity<T::Value> + 'static>(
&self,
relation: &str,
) -> Result<Table<T, E2>>
pub fn get_ref_as<E2: Entity<T::Value> + 'static>( &self, relation: &str, ) -> Result<Table<T, E2>>
Get a same-backend related table with automatic downcasting.
For foreign references, use get_ref() instead.
Sourcepub fn get_ref(&self, relation: &str) -> Result<AnyTable>
pub fn get_ref(&self, relation: &str) -> Result<AnyTable>
Get a related table as AnyTable — works for both same-backend and foreign refs.
Sourcepub fn get_subquery_as<E2: Entity<T::Value> + 'static>(
&self,
relation: &str,
) -> Result<Table<T, E2>>
pub fn get_subquery_as<E2: Entity<T::Value> + 'static>( &self, relation: &str, ) -> Result<Table<T, E2>>
Get a correlated related table for use inside SELECT expressions.
Unlike 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.
Sourcepub fn with_expression(
self,
name: &str,
expr_fn: impl Fn(&Table<T, E>) -> Expression<T::Value> + Send + Sync + 'static,
) -> Self
pub fn with_expression( self, name: &str, expr_fn: impl Fn(&Table<T, E>) -> Expression<T::Value> + Send + Sync + 'static, ) -> Self
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.
.with_expression("order_count", |t| {
t.get_subquery_as::<Order>("orders").unwrap().get_count_query()
})Source§impl<T, E> Table<T, E>where
T: SelectableDataSource<T::Value, T::Condition> + TableSource,
T::Value: From<String>,
E: Entity<T::Value>,
impl<T, E> Table<T, E>where
T: SelectableDataSource<T::Value, T::Condition> + TableSource,
T::Value: From<String>,
E: Entity<T::Value>,
Sourcepub fn select_empty(&self) -> T::Select
pub fn select_empty(&self) -> T::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 async fn get_sum(&self, column: &T::Column<T::AnyType>) -> Result<T::Value>
pub async fn get_sum(&self, column: &T::Column<T::AnyType>) -> Result<T::Value>
Get sum of a column in the table
Sourcepub async fn get_max(&self, column: &T::Column<T::AnyType>) -> Result<T::Value>
pub async fn get_max(&self, column: &T::Column<T::AnyType>) -> Result<T::Value>
Get max of a column in the table
Sourcepub async fn get_min(&self, column: &T::Column<T::AnyType>) -> Result<T::Value>
pub async fn get_min(&self, column: &T::Column<T::AnyType>) -> Result<T::Value>
Get min of a column in the table
Sourcepub fn get_count_query(&self) -> Expression<T::Value>
pub fn get_count_query(&self) -> Expression<T::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::Column<Type>,
) -> Expression<T::Value>
pub fn get_sum_query<Type>( &self, column: &T::Column<Type>, ) -> Expression<T::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::Value>
pub fn select_column(&self, field: &str) -> Expression<T::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::Condition> + TableSource<Value = Value> + ExprDataSource<Value>,
T::Value: From<String>,
E: Entity<Value>,
impl<T, E> Table<T, E>where
T: SelectableDataSource<Value, T::Condition> + TableSource<Value = Value> + ExprDataSource<Value>,
T::Value: From<String>,
E: Entity<Value>,
Sourcepub async fn get_count_via_query(&self) -> Result<i64>
pub async fn get_count_via_query(&self) -> Result<i64>
Get count using QuerySource for serde_json::Value
Source§impl<T: TableSource, E: Entity<T::Value>> Table<T, E>
impl<T: TableSource, E: Entity<T::Value>> Table<T, E>
Sourcepub fn temp_add_order(&mut self, order: OrderBy<T::Condition>) -> OrderHandle
pub fn temp_add_order(&mut self, order: OrderBy<T::Condition>) -> OrderHandle
Add a temporary order clause that can be removed later
Sourcepub fn temp_remove_order(&mut self, handle: OrderHandle) -> Result<()>
pub fn temp_remove_order(&mut self, handle: OrderHandle) -> Result<()>
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::Condition, SortDirection)>
pub fn orders(&self) -> impl Iterator<Item = &(T::Condition, SortDirection)>
Get all order clauses
Sourcepub fn with_order(self, order: OrderBy<T::Condition>) -> Self
pub fn with_order(self, order: OrderBy<T::Condition>) -> Self
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::Id, E)>> + Send + '_>>
pub fn stream( &self, ) -> Pin<Box<dyn Stream<Item = Result<(T::Id, E)>> + 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> InsertableDataSet<E> for Table<T, E>
impl<T, E> InsertableDataSet<E> for Table<T, E>
Source§impl<T: TableSource, E: Entity<T::Value>> InsertableValueSet for Table<T, E>
impl<T: TableSource, E: Entity<T::Value>> InsertableValueSet for Table<T, E>
Source§fn insert_return_id_value<'life0, 'life1, 'async_trait>(
&'life0 self,
record: &'life1 Record<Self::Value>,
) -> Pin<Box<dyn Future<Output = Result<Self::Id>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn insert_return_id_value<'life0, 'life1, 'async_trait>(
&'life0 self,
record: &'life1 Record<Self::Value>,
) -> Pin<Box<dyn Future<Output = Result<Self::Id>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: '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<Self::Id, E>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<IndexMap<Self::Id, E>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl<T: TableSource, E: Entity<T::Value>> ReadableValueSet for Table<T, E>
impl<T: TableSource, E: Entity<T::Value>> ReadableValueSet for Table<T, E>
Source§fn list_values<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<IndexMap<Self::Id, Record<Self::Value>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_values<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<IndexMap<Self::Id, Record<Self::Value>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_value<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
) -> Pin<Box<dyn Future<Output = Result<Option<Record<Self::Value>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_value<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
) -> Pin<Box<dyn Future<Output = Result<Option<Record<Self::Value>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_some_value<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<(Self::Id, Record<Self::Value>)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_some_value<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<(Self::Id, Record<Self::Value>)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl<T, E> TableLike for Table<T, E>
impl<T, E> TableLike for Table<T, E>
fn table_alias(&self) -> &str
fn table_name(&self) -> &str
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 + Send + Sync>) -> Result<()>
fn add_condition(&mut self, condition: Box<dyn Any + Send + Sync>) -> Result<()>
Source§fn add_condition_eq(&mut self, field: &str, value: &str) -> Result<()>
fn add_condition_eq(&mut self, field: &str, value: &str) -> Result<()>
Source§fn temp_add_condition(
&mut self,
condition: AnyExpression,
) -> Result<ConditionHandle>
fn temp_add_condition( &mut self, condition: AnyExpression, ) -> Result<ConditionHandle>
Source§fn temp_remove_condition(&mut self, handle: ConditionHandle) -> Result<()>
fn temp_remove_condition(&mut self, handle: ConditionHandle) -> Result<()>
Source§fn search_expression(&self, search_value: &str) -> Result<AnyExpression>
fn search_expression(&self, search_value: &str) -> Result<AnyExpression>
Source§fn clone_box(&self) -> Box<dyn TableLike<Value = Self::Value, Id = Self::Id>>
fn clone_box(&self) -> Box<dyn TableLike<Value = Self::Value, Id = Self::Id>>
fn as_any_ref(&self) -> &dyn Any
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 Self::Id,
entity: &'life2 E,
) -> Pin<Box<dyn Future<Output = Result<E>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn insert<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
entity: &'life2 E,
) -> Pin<Box<dyn Future<Output = Result<E>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn replace<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
entity: &'life2 E,
) -> Pin<Box<dyn Future<Output = Result<E>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn replace<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
entity: &'life2 E,
) -> Pin<Box<dyn Future<Output = Result<E>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn patch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
partial: &'life2 E,
) -> Pin<Box<dyn Future<Output = Result<E>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn patch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
partial: &'life2 E,
) -> Pin<Box<dyn Future<Output = Result<E>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§impl<T: TableSource, E: Entity<T::Value>> WritableValueSet for Table<T, E>
impl<T: TableSource, E: Entity<T::Value>> WritableValueSet for Table<T, E>
Source§fn insert_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
record: &'life2 Record<Self::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<Self::Value>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn insert_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
record: &'life2 Record<Self::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<Self::Value>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn replace_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
record: &'life2 Record<Self::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<Self::Value>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn replace_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
record: &'life2 Record<Self::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<Self::Value>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn patch_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
partial: &'life2 Record<Self::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<Self::Value>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn patch_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 Self::Id,
partial: &'life2 Record<Self::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<Self::Value>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
impl<T: TableSource, E: Entity<T::Value>> 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<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