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