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