statsig_rust/
initialize_response.rs1use crate::{
2 evaluation::evaluation_types::{AnyConfigEvaluation, GateEvaluation, LayerEvaluation},
3 specs_response::param_store_types::Parameter,
4 user::{StatsigUserInternal, StatsigUserLoggable},
5};
6
7use serde::{Deserialize, Serialize};
8use std::collections::HashMap;
9
10#[derive(Serialize, Deserialize)]
11pub struct InitializeResponse {
12 pub feature_gates: HashMap<String, GateEvaluation>,
13 pub dynamic_configs: HashMap<String, AnyConfigEvaluation>,
14 pub layer_configs: HashMap<String, LayerEvaluation>,
15 pub time: u64,
16 pub has_updates: bool,
17 pub hash_used: String,
18 pub user: StatsigUserLoggable,
19 #[serde(rename = "sdkInfo")]
20 pub sdk_info: HashMap<String, String>,
21 #[serde(rename = "sdkParams")]
22 pub sdk_params: HashMap<String, String>,
23 pub evaluated_keys: HashMap<String, String>,
24 pub param_stores: HashMap<String, HashMap<String, Parameter>>,
25}
26
27impl InitializeResponse {
28 pub fn blank(user: StatsigUserInternal) -> Self {
29 Self {
30 feature_gates: Default::default(),
31 dynamic_configs: Default::default(),
32 layer_configs: Default::default(),
33 time: 0,
34 has_updates: false,
35 hash_used: Default::default(),
36 user: user.to_loggable(),
37 sdk_params: Default::default(),
38 evaluated_keys: Default::default(),
39 sdk_info: Default::default(),
40 param_stores: Default::default(),
41 }
42 }
43}