pub struct AnyTable { /* private fields */ }Expand description
Type-erased table that can be downcast to concrete Table<T, E>
Works with AnyRecord (which uses ciborium::Value)
Implementations§
Source§impl AnyTable
impl AnyTable
Sourcepub fn new<T: TableSource<Value = CborValue, Id = String> + 'static, E: Entity<CborValue> + 'static>(
table: Table<T, E>,
) -> Self
pub fn new<T: TableSource<Value = CborValue, Id = String> + 'static, E: Entity<CborValue> + 'static>( table: Table<T, E>, ) -> Self
Create a new AnyTable from a concrete table.
Only works with tables that use ciborium::Value as their Value type.
Sourcepub fn from_table<T, E>(table: Table<T, E>) -> Self
pub fn from_table<T, E>(table: Table<T, E>) -> Self
Create an AnyTable from a table with any value/id types that convert to/from CBOR.
This wraps the table in an internal adapter that converts values on the
fly, so any TableSource can be used with the unified AnyTable
interface.
Sourcepub fn from_table_like<T>(table: T) -> Self
pub fn from_table_like<T>(table: T) -> Self
Wrap any TableLike<Value = CborValue, Id = String> directly. Use
this for table-like wrappers (e.g. vantage_live::LiveTable) that
aren’t a Table<T, E> instance themselves but already satisfy the
AnyTable-facing trait surface. The entity type is recorded as
() since wrappers don’t carry one.
Sourcepub fn downcast<T: TableSource<Value = CborValue, Id = String> + 'static, E: Entity<CborValue> + 'static>(
self,
) -> Result<Table<T, E>>
pub fn downcast<T: TableSource<Value = CborValue, Id = String> + 'static, E: Entity<CborValue> + 'static>( self, ) -> Result<Table<T, E>>
Attempt to downcast to a concrete Table<T, E>
Returns Err(self) if the type doesn’t match, allowing recovery
Sourcepub fn datasource_name(&self) -> &str
pub fn datasource_name(&self) -> &str
Get the datasource type name for debugging
Sourcepub fn entity_name(&self) -> &str
pub fn entity_name(&self) -> &str
Get the entity type name for debugging
Sourcepub fn datasource_type_id(&self) -> TypeId
pub fn datasource_type_id(&self) -> TypeId
Get the datasource TypeId
Sourcepub fn entity_type_id(&self) -> TypeId
pub fn entity_type_id(&self) -> TypeId
Get the entity TypeId
Source§impl AnyTable
impl AnyTable
Sourcepub fn get_ref(&self, relation: &str) -> Result<AnyTable>
pub fn get_ref(&self, relation: &str) -> Result<AnyTable>
Traverse a named reference and return the related table as AnyTable.
Inherent wrapper so callers don’t need use TableLike in scope.
Sourcepub fn with_pagination<F>(&mut self, func: F)where
F: FnOnce(&mut Pagination),
pub fn with_pagination<F>(&mut self, func: F)where
F: FnOnce(&mut Pagination),
Configure pagination using a callback
Trait Implementations§
Source§impl ReadableValueSet for AnyTable
impl ReadableValueSet for AnyTable
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 TableLike for AnyTable
impl TableLike for AnyTable
fn table_name(&self) -> &str
fn table_alias(&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 WritableValueSet for AnyTable
impl WritableValueSet for AnyTable
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,
Auto Trait Implementations§
impl Freeze for AnyTable
impl !RefUnwindSafe for AnyTable
impl Send for AnyTable
impl Sync for AnyTable
impl Unpin for AnyTable
impl UnsafeUnpin for AnyTable
impl !UnwindSafe for AnyTable
Blanket Implementations§
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