open_feature_flagd/resolver/in_process/model/
feature_flag.rs1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3
4#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
5#[serde(rename_all = "camelCase")]
6pub struct FeatureFlag {
7 pub state: String,
8 pub default_variant: String,
9 pub variants: HashMap<String, serde_json::Value>,
10 pub targeting: Option<serde_json::Value>,
11 #[serde(default)]
12 pub metadata: HashMap<String, serde_json::Value>,
13}
14
15impl FeatureFlag {
16 pub fn get_targeting(&self) -> String {
17 self.targeting
18 .as_ref()
19 .map(|t| t.to_string())
20 .unwrap_or_else(|| "{}".to_string())
21 }
22}
23
24#[derive(Debug)]
25pub struct ParsingResult {
26 pub flags: HashMap<String, FeatureFlag>,
27 pub flag_set_metadata: HashMap<String, serde_json::Value>,
28}