statsig_rust/
statsig_core_api_options.rs1use serde::{Deserialize, Serialize};
2
3pub enum AnyEvaluationOptions {
4 FeatureGateEvaluationOptions(FeatureGateEvaluationOptions),
5 DynamicConfigEvaluationOptions(DynamicConfigEvaluationOptions),
6 ExperimentEvaluationOptions(ExperimentEvaluationOptions),
7 LayerEvaluationOptions(LayerEvaluationOptions),
8 ParameterStoreEvaluationOptions(ParameterStoreEvaluationOptions),
9}
10
11#[derive(Debug, Clone, Default, Deserialize)]
12pub struct FeatureGateEvaluationOptions {
13 #[serde(default)]
14 pub disable_exposure_logging: bool,
15}
16
17#[derive(Debug, Clone, Default, Deserialize)]
18pub struct DynamicConfigEvaluationOptions {
19 #[serde(default)]
20 pub disable_exposure_logging: bool,
21}
22
23#[derive(Debug, Clone, Default, Deserialize)]
24pub struct ExperimentEvaluationOptions {
25 #[serde(default)]
26 pub disable_exposure_logging: bool,
27}
28
29#[derive(Debug, Clone, Default, Deserialize)]
30pub struct LayerEvaluationOptions {
31 #[serde(default)]
32 pub disable_exposure_logging: bool,
33}
34
35#[derive(Debug, Clone, Default, Deserialize, Serialize, Copy)]
36pub struct ParameterStoreEvaluationOptions {
37 #[serde(default)]
38 pub disable_exposure_logging: bool,
39}
40
41impl From<ParameterStoreEvaluationOptions> for FeatureGateEvaluationOptions {
46 fn from(opts: ParameterStoreEvaluationOptions) -> Self {
47 FeatureGateEvaluationOptions {
48 disable_exposure_logging: opts.disable_exposure_logging,
49 }
50 }
51}
52
53impl From<ParameterStoreEvaluationOptions> for DynamicConfigEvaluationOptions {
54 fn from(opts: ParameterStoreEvaluationOptions) -> Self {
55 DynamicConfigEvaluationOptions {
56 disable_exposure_logging: opts.disable_exposure_logging,
57 }
58 }
59}
60
61impl From<ParameterStoreEvaluationOptions> for ExperimentEvaluationOptions {
62 fn from(opts: ParameterStoreEvaluationOptions) -> Self {
63 ExperimentEvaluationOptions {
64 disable_exposure_logging: opts.disable_exposure_logging,
65 }
66 }
67}
68
69impl From<ParameterStoreEvaluationOptions> for LayerEvaluationOptions {
70 fn from(opts: ParameterStoreEvaluationOptions) -> Self {
71 LayerEvaluationOptions {
72 disable_exposure_logging: opts.disable_exposure_logging,
73 }
74 }
75}