pub trait QueryFactory: QueryParams {
// Required methods
fn parse(value: Value) -> Result<Arc<dyn AnyQuery>, Error>;
fn cell_factory(
query: Arc<dyn AnyQuery>,
registry: Arc<StoreRegistry>,
request_ctx: Arc<RequestContext>,
server_ctx: Option<Arc<MykoServerContext>>,
) -> Result<FilteredCellMap, String>;
fn window_cell_factory(
query: Arc<dyn AnyQuery>,
registry: Arc<StoreRegistry>,
request_ctx: Arc<RequestContext>,
server_ctx: Arc<MykoServerContext>,
window: QueryWindow,
) -> Result<Option<WindowedQuerySource>, String>;
}Expand description
Factory trait for creating query registration data.
This trait has a blanket implementation for all types implementing QueryParams,
so user-defined queries automatically get parse and cell_factory methods.
Required Methods§
Sourcefn parse(value: Value) -> Result<Arc<dyn AnyQuery>, Error>
fn parse(value: Value) -> Result<Arc<dyn AnyQuery>, Error>
Parse JSON into this query type.
§Errors
Returns an error when the requested operation cannot be completed.
Sourcefn cell_factory(
query: Arc<dyn AnyQuery>,
registry: Arc<StoreRegistry>,
request_ctx: Arc<RequestContext>,
server_ctx: Option<Arc<MykoServerContext>>,
) -> Result<FilteredCellMap, String>
fn cell_factory( query: Arc<dyn AnyQuery>, registry: Arc<StoreRegistry>, request_ctx: Arc<RequestContext>, server_ctx: Option<Arc<MykoServerContext>>, ) -> Result<FilteredCellMap, String>
Create a reactive cell for this query.
§Errors
Returns an error when the requested operation cannot be completed.
Sourcefn window_cell_factory(
query: Arc<dyn AnyQuery>,
registry: Arc<StoreRegistry>,
request_ctx: Arc<RequestContext>,
server_ctx: Arc<MykoServerContext>,
window: QueryWindow,
) -> Result<Option<WindowedQuerySource>, String>
fn window_cell_factory( query: Arc<dyn AnyQuery>, registry: Arc<StoreRegistry>, request_ctx: Arc<RequestContext>, server_ctx: Arc<MykoServerContext>, window: QueryWindow, ) -> Result<Option<WindowedQuerySource>, String>
Create a source-level bounded query window when the handler supports pushdown.
§Errors
Returns an error when the query payload is invalid or the source cannot build the requested window.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".