pub struct LiveTable { /* private fields */ }Implementations§
Source§impl LiveTable
impl LiveTable
Sourcepub fn new(
master: AnyTable,
cache_key: impl Into<String>,
cache: Arc<dyn Cache>,
) -> Self
pub fn new( master: AnyTable, cache_key: impl Into<String>, cache: Arc<dyn Cache>, ) -> Self
Build a LiveTable around master, caching results under
cache_key. The worker task is spawned on the current tokio
runtime; call this from within an async context.
Sourcepub fn with_master_ipp(self, ipp: i64) -> Self
pub fn with_master_ipp(self, ipp: i64) -> Self
Set the master’s max items-per-page hint. Stored, not enforced in v1 (caller is responsible for keeping UI ipp at or below).
Sourcepub fn with_custom_write_target(self, target: AnyTable) -> Self
pub fn with_custom_write_target(self, target: AnyTable) -> Self
Route writes to a different table than the master. Reads stay on the master; only writes are diverted. Setting this rebuilds the worker so it picks up the new target.
Sourcepub fn with_live_stream(self, stream: Arc<dyn LiveStream>) -> Self
pub fn with_live_stream(self, stream: Arc<dyn LiveStream>) -> Self
Attach a live event source. Spawns a background task that subscribes to the stream and invalidates the cache on every event (sloppy invalidation — see DESIGN.md).
Sourcepub fn page_cache_key(&self, page: i64) -> String
pub fn page_cache_key(&self, page: i64) -> String
The cache key used for a given page number. Public for observability / debugging — there’s no production reason to call this from outside the crate.
Sourcepub fn id_cache_key(&self, id: &str) -> String
pub fn id_cache_key(&self, id: &str) -> String
The cache key used for a single-row get_value lookup.
Trait Implementations§
Source§impl ReadableValueSet for LiveTable
impl ReadableValueSet for LiveTable
Source§fn list_values<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<IndexMap<<Self as ValueSet>::Id, Record<<Self as ValueSet>::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 as ValueSet>::Id, Record<<Self as ValueSet>::Value>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_value<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 <Self as ValueSet>::Id,
) -> Pin<Box<dyn Future<Output = Result<Option<Record<<Self as ValueSet>::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 as ValueSet>::Id,
) -> Pin<Box<dyn Future<Output = Result<Option<Record<<Self as ValueSet>::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 as ValueSet>::Id, Record<<Self as ValueSet>::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 as ValueSet>::Id, Record<<Self as ValueSet>::Value>)>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§impl TableLike for LiveTable
impl TableLike for LiveTable
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 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§fn get_count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<i64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_count<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<i64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_ref(&self, relation: &str) -> Result<AnyTable>
fn get_ref(&self, relation: &str) -> Result<AnyTable>
AnyTable. Read moreSource§fn set_table_name(&mut self, _name: String)
fn set_table_name(&mut self, _name: String)
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§impl WritableValueSet for LiveTable
impl WritableValueSet for LiveTable
Source§fn insert_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 <Self as ValueSet>::Id,
record: &'life2 Record<<Self as ValueSet>::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<<Self as ValueSet>::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 as ValueSet>::Id,
record: &'life2 Record<<Self as ValueSet>::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<<Self as ValueSet>::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 as ValueSet>::Id,
record: &'life2 Record<<Self as ValueSet>::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<<Self as ValueSet>::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 as ValueSet>::Id,
record: &'life2 Record<<Self as ValueSet>::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<<Self as ValueSet>::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 as ValueSet>::Id,
partial: &'life2 Record<<Self as ValueSet>::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<<Self as ValueSet>::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 as ValueSet>::Id,
partial: &'life2 Record<<Self as ValueSet>::Value>,
) -> Pin<Box<dyn Future<Output = Result<Record<<Self as ValueSet>::Value>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Auto Trait Implementations§
impl Freeze for LiveTable
impl !RefUnwindSafe for LiveTable
impl Send for LiveTable
impl Sync for LiveTable
impl Unpin for LiveTable
impl UnsafeUnpin for LiveTable
impl !UnwindSafe for LiveTable
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<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<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