switchgear_service/offer/
state.rs1use jsonwebtoken::DecodingKey;
2use switchgear_service_api::offer::{OfferMetadataStore, OfferStore};
3
4#[derive(Clone)]
5pub struct OfferState<S, M> {
6 offer_store: S,
7 metadata_store: M,
8 auth_authority: DecodingKey,
9 max_page_size: usize,
10}
11
12impl<S, M> OfferState<S, M>
13where
14 S: OfferStore,
15 M: OfferMetadataStore,
16{
17 pub fn new(
18 offer_store: S,
19 metadata_store: M,
20 auth_authority: DecodingKey,
21 max_page_size: usize,
22 ) -> Self {
23 Self {
24 offer_store,
25 metadata_store,
26 auth_authority,
27 max_page_size,
28 }
29 }
30
31 pub fn offer_store(&self) -> &S {
32 &self.offer_store
33 }
34
35 pub fn metadata_store(&self) -> &M {
36 &self.metadata_store
37 }
38
39 pub fn auth_authority(&self) -> &DecodingKey {
40 &self.auth_authority
41 }
42
43 pub fn max_page_size(&self) -> usize {
44 self.max_page_size
45 }
46}