growthbook-rust 0.2.1

Official Growthbook Rust SDK
Documentation
use crate::condition::eval_context::{ConditionEvalContext, SavedGroups};
use crate::condition::use_case::ConditionsMatchesAttributes;
use crate::dto::GrowthBookFeatureRuleParentData;
use crate::model_public::{FeatureResult, GrowthBookAttribute, GrowthBookAttributeValue};

impl GrowthBookFeatureRuleParentData {
    pub fn is_met(
        &self,
        feature: FeatureResult,
        saved_groups: &SavedGroups,
    ) -> bool {
        if let Some(feature_attributes) = self.conditions() {
            let attributes = [GrowthBookAttribute::new(String::from("value"), GrowthBookAttributeValue::from(feature.value))];
            feature_attributes.matches(&ConditionEvalContext::new(&attributes, saved_groups))
        } else {
            true
        }
    }
}