pub fn find_field_with_variant_sequential_constrained(
fields: &HashMap<String, Vec<(String, usize)>>,
base_tag: &str,
tracker: &mut FieldConsumptionTracker,
valid_variants: Option<&[&str]>,
) -> Option<(String, Option<String>, usize)>
Expand description
Find field values by base tag with sequential consumption tracking and variant constraints
§Purpose
Enhanced version of find_field_with_variant_sequential that accepts a list of valid variants to constrain the search. This is crucial for numbered field tags like “50#1” and “50#2” where different positions accept different variants.
§Parameters
fields
: HashMap of all parsed fields with position trackingbase_tag
: Base field tag (e.g., “50”, “59”)tracker
: Mutable reference to consumption tracker for sequential processingvalid_variants
: Optional list of valid variant letters (e.g., [“C”, “L”] for Field50InstructingParty)
§Returns
Option<(field_value, variant, position)>
where:
field_value
: The actual field contentvariant
: Optional variant letter (A, F, K, etc.) for enum fieldsposition
: Original position in the message for ordering