hyperstack_stacks/pumpfun/
entity.rs

1use hyperstack_sdk::{Entity, StateView, ViewBuilder, ViewHandle, Views};
2use super::types::PumpfunToken;
3
4pub struct PumpfunTokenEntity;
5
6impl Entity for PumpfunTokenEntity {
7    type Data = PumpfunToken;
8    
9    const NAME: &'static str = "PumpfunToken";
10    
11    fn state_view() -> &'static str {
12        "PumpfunToken/state"
13    }
14    
15    fn list_view() -> &'static str {
16        "PumpfunToken/list"
17    }
18}
19
20
21pub struct PumpfunTokenViews {
22    builder: ViewBuilder,
23}
24
25impl Views for PumpfunTokenViews {
26    type Entity = PumpfunTokenEntity;
27
28    fn from_builder(builder: ViewBuilder) -> Self {
29        Self { builder }
30    }
31}
32
33impl PumpfunTokenViews {
34    pub fn state(&self) -> StateView<PumpfunToken> {
35        StateView::new(
36            self.builder.connection().clone(),
37            self.builder.store().clone(),
38            "PumpfunToken/state".to_string(),
39            self.builder.initial_data_timeout(),
40        )
41    }
42
43    pub fn list(&self) -> ViewHandle<PumpfunToken> {
44        self.builder.view("PumpfunToken/list")
45    }
46}