statsig_rust/override_adapter/
override_adapter_trait.rs1use crate::evaluation::evaluator_result::EvaluatorResult;
2use crate::spec_types::Spec;
3use crate::StatsigUser;
4use serde_json::Value;
5use std::collections::HashMap;
6
7pub trait OverrideAdapter: Send + Sync {
8 fn get_gate_override(
9 &self,
10 user: &StatsigUser,
11 gate_name: &str,
12 result: &mut EvaluatorResult<'_>,
13 ) -> bool;
14
15 fn get_dynamic_config_override(
16 &self,
17 user: &StatsigUser,
18 dynamic_config_name: &str,
19 result: &mut EvaluatorResult<'_>,
20 ) -> bool;
21
22 fn get_experiment_override(
23 &self,
24 user: &StatsigUser,
25 experiment_name: &str,
26 result: &mut EvaluatorResult<'_>,
27 opt_spec: Option<&Spec>,
28 ) -> bool;
29
30 fn get_layer_override(
31 &self,
32 user: &StatsigUser,
33 layer_name: &str,
34 result: &mut EvaluatorResult<'_>,
35 ) -> bool;
36
37 fn override_gate(&self, key: &str, value: bool);
38 fn override_dynamic_config(&self, key: &str, value: HashMap<String, Value>);
39 fn override_experiment(&self, key: &str, value: HashMap<String, Value>);
40 fn override_experiment_by_group_name(&self, key: &str, group_name: &str);
41 fn override_layer(&self, key: &str, value: HashMap<String, Value>);
42}