use alloc::boxed::Box;
use alloc::string::String;
use serde::{Deserialize, Serialize};
pub type QueryHandlerFn = Box<
dyn Fn(
QueryHandlerParams,
) -> core::pin::Pin<
Box<dyn core::future::Future<Output = Result<serde_json::Value, String>> + Send>,
> + Send
+ Sync,
>;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct QueryRecord {
pub topic: String,
pub payload: serde_json::Value,
pub ts: u64,
}
pub const QUERY_ALL_PATTERN: &str = "#";
#[derive(Debug, Clone)]
pub struct QueryHandlerParams {
pub name: String,
pub limit: Option<usize>,
pub start: Option<u64>,
pub end: Option<u64>,
}