statsig-rust 0.19.1-beta.2604130314

Statsig Rust SDK for usage in multi-user server environments.
Documentation
use crate::evaluation::evaluator_result::EvaluatorResult;
use crate::specs_response::spec_types::Spec;
use crate::StatsigUser;
use serde_json::Value;
use std::collections::HashMap;

pub trait OverrideAdapter: Send + Sync {
    fn get_gate_override(
        &self,
        user: &StatsigUser,
        gate_name: &str,
        result: &mut EvaluatorResult,
    ) -> bool;

    fn get_dynamic_config_override(
        &self,
        user: &StatsigUser,
        dynamic_config_name: &str,
        result: &mut EvaluatorResult,
    ) -> bool;

    fn get_experiment_override(
        &self,
        user: &StatsigUser,
        experiment_name: &str,
        result: &mut EvaluatorResult,
        opt_spec: Option<&Spec>,
    ) -> bool;

    fn get_layer_override(
        &self,
        user: &StatsigUser,
        layer_name: &str,
        result: &mut EvaluatorResult,
    ) -> bool;

    fn get_parameter_store_override(
        &self,
        user: &StatsigUser,
        parameter_store_name: &str,
        result: &mut EvaluatorResult,
    ) -> bool;

    fn override_gate(&self, key: &str, value: bool, id: Option<&str>);
    fn override_dynamic_config(&self, key: &str, value: HashMap<String, Value>, id: Option<&str>);
    fn override_experiment(&self, key: &str, value: HashMap<String, Value>, id: Option<&str>);
    fn override_experiment_by_group_name(&self, key: &str, group_name: &str, id: Option<&str>);
    fn override_layer(&self, key: &str, value: HashMap<String, Value>, id: Option<&str>);
    fn override_parameter_store(&self, key: &str, value: HashMap<String, Value>, id: Option<&str>);

    fn remove_gate_override(&self, key: &str, id: Option<&str>);
    fn remove_dynamic_config_override(&self, key: &str, id: Option<&str>);
    fn remove_experiment_override(&self, key: &str, id: Option<&str>);
    fn remove_layer_override(&self, key: &str, id: Option<&str>);
    fn remove_parameter_store_override(&self, key: &str, id: Option<&str>);
    fn remove_all_overrides(&self);
}