statsig_rust/
initialize_response.rs

1use 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}