interstice_sdk_core/
context.rs1use serde::{Deserialize, Serialize};
2use std::marker::PhantomData;
3
4pub use interstice_abi::{RawQueryContext, RawReducerContext};
5
6
7#[derive(Debug, Clone, Deserialize, Serialize)]
8pub struct ReducerContextCurrentModuleTables<Caps = ()> {
9 #[serde(skip)]
10 _caps: PhantomData<Caps>,
11}
12
13impl<Caps> Default for ReducerContextCurrentModuleTables<Caps> {
14 fn default() -> Self {
15 Self { _caps: PhantomData }
16 }
17}
18
19#[derive(Debug, Clone, Deserialize, Serialize)]
20pub struct ReducerContextCurrentModule<Caps = ()> {
21 pub tables: ReducerContextCurrentModuleTables<Caps>,
22}
23
24#[derive(Debug, Clone, Deserialize, Serialize)]
25pub struct QueryContextCurrentModuleTables<Caps = ()> {
26 #[serde(skip)]
27 _caps: PhantomData<Caps>,
28}
29
30impl<Caps> Default for QueryContextCurrentModuleTables<Caps> {
31 fn default() -> Self {
32 Self { _caps: PhantomData }
33 }
34}
35
36#[derive(Debug, Clone, Deserialize, Serialize)]
37pub struct QueryContextCurrentModule<Caps = ()> {
38 pub tables: QueryContextCurrentModuleTables<Caps>,
39}
40
41#[derive(Debug, Clone, Deserialize, Serialize)]
42pub struct ReducerContext<Caps = ()> {
43 pub caller_node_id: String,
44 pub current: ReducerContextCurrentModule<Caps>,
45}
46
47impl<Caps> From<RawReducerContext> for ReducerContext<Caps> {
48 fn from(raw: RawReducerContext) -> Self {
49 Self {
50 caller_node_id: raw.caller_node_id,
51 current: ReducerContextCurrentModule {
52 tables: ReducerContextCurrentModuleTables::default(),
53 },
54 }
55 }
56}
57
58#[derive(Debug, Clone, Deserialize, Serialize)]
59pub struct QueryContext<Caps = ()> {
60 pub caller_node_id: String,
61 pub current: QueryContextCurrentModule<Caps>,
62}
63
64impl<Caps> From<RawQueryContext> for QueryContext<Caps> {
65 fn from(raw: RawQueryContext) -> Self {
66 Self {
67 caller_node_id: raw.caller_node_id,
68 current: QueryContextCurrentModule {
69 tables: QueryContextCurrentModuleTables::default(),
70 },
71 }
72 }
73}