use crate::segment::OwnedSegment;
pub trait GroupNavigator: Send + Sync {
fn find_segments_in_group(
&self,
segment_id: &str,
group_path: &[&str],
instance_index: usize,
) -> Vec<OwnedSegment>;
fn find_segments_with_qualifier_in_group(
&self,
segment_id: &str,
element_index: usize,
qualifier: &str,
group_path: &[&str],
instance_index: usize,
) -> Vec<OwnedSegment>;
fn group_instance_count(&self, group_path: &[&str]) -> usize;
fn has_any_segment_in_group(&self, _group_path: &[&str], _instance_index: usize) -> bool {
false }
fn child_group_instance_count(
&self,
parent_path: &[&str],
parent_instance: usize,
child_group_id: &str,
) -> usize {
let _ = (parent_path, parent_instance, child_group_id);
0
}
fn find_segments_in_child_group(
&self,
segment_id: &str,
parent_path: &[&str],
parent_instance: usize,
child_group_id: &str,
child_instance: usize,
) -> Vec<OwnedSegment> {
let _ = (
segment_id,
parent_path,
parent_instance,
child_group_id,
child_instance,
);
vec![]
}
fn extract_value_in_group(
&self,
segment_id: &str,
element_index: usize,
component_index: usize,
group_path: &[&str],
instance_index: usize,
) -> Option<String> {
let _ = (
segment_id,
element_index,
component_index,
group_path,
instance_index,
);
None
}
}