#![allow(clippy::style, clippy::complexity)]
#[allow(unused_imports)]
use crate::eval::format_validators::*;
use crate::eval::{ConditionEvaluator, ConditionResult, EvaluationContext};
use crate::generated::fv2504::UtiltsConditionEvaluatorFV2504;
pub struct UtiltsConditionEvaluatorFV2510 {
fallback: UtiltsConditionEvaluatorFV2504,
}
impl Default for UtiltsConditionEvaluatorFV2510 {
fn default() -> Self {
Self {
fallback: UtiltsConditionEvaluatorFV2504::default(),
}
}
}
const FV2510_OVERRIDES: &[u32] = &[63];
const FV2510_EXTERNAL: &[u32] = &[63];
impl ConditionEvaluator for UtiltsConditionEvaluatorFV2510 {
fn message_type(&self) -> &str {
"UTILTS"
}
fn format_version(&self) -> &str {
"FV2510"
}
fn evaluate(&self, condition: u32, ctx: &EvaluationContext) -> ConditionResult {
match condition {
63 => self.evaluate_63(ctx),
other => self.fallback.evaluate(other, ctx),
}
}
fn is_external(&self, condition: u32) -> bool {
if FV2510_OVERRIDES.contains(&condition) {
FV2510_EXTERNAL.contains(&condition)
} else {
self.fallback.is_external(condition)
}
}
fn is_known(&self, condition: u32) -> bool {
FV2510_OVERRIDES.contains(&condition) || self.fallback.is_known(condition)
}
}
impl UtiltsConditionEvaluatorFV2510 {
fn evaluate_63(&self, ctx: &EvaluationContext) -> ConditionResult {
ctx.external.evaluate("recipient_is_nb")
}
}