sp_statement_store/
event.rs1use alloc::{string::String, vec::Vec};
19use sp_core::Bytes;
20
21#[derive(Debug, Clone, PartialEq, Eq)]
23#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
24#[cfg_attr(feature = "serde", serde(tag = "event", rename_all = "camelCase"))]
25pub enum SubscribeEvent {
26 ReplayStatements {
28 #[cfg_attr(feature = "serde", serde(rename = "filterId"))]
30 filter_id: String,
31 statements: Vec<Bytes>,
33 },
34 ReplayDone {
36 #[cfg_attr(feature = "serde", serde(rename = "filterId"))]
38 filter_id: String,
39 },
40 NewStatements {
42 statements: Vec<NewStatementEntry>,
44 },
45 Stop,
47}
48
49#[derive(Debug, Clone, PartialEq, Eq)]
51#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
52pub struct NewStatementEntry {
53 pub statement: Bytes,
55 #[cfg_attr(feature = "serde", serde(rename = "filterIds"))]
57 pub filter_ids: Vec<String>,
58}
59
60#[derive(Debug, Clone, PartialEq, Eq)]
62#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
63#[cfg_attr(feature = "serde", serde(untagged))]
64pub enum AddFilterResponse {
65 Ok(String),
67 LimitReached(LimitReachedResult),
69}
70
71#[derive(Debug, Clone, PartialEq, Eq)]
73#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
74pub struct LimitReachedResult {
75 pub result: LimitReachedTag,
77}
78
79#[derive(Debug, Clone, Copy, PartialEq, Eq)]
81#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
82#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
83pub enum LimitReachedTag {
84 LimitReached,
86}
87
88impl AddFilterResponse {
89 pub fn limit_reached() -> Self {
91 AddFilterResponse::LimitReached(LimitReachedResult {
92 result: LimitReachedTag::LimitReached,
93 })
94 }
95}