use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct OwnedSegment {
pub id: String,
pub elements: Vec<Vec<String>>,
pub segment_number: u32,
}
impl OwnedSegment {
pub fn get_element(&self, index: usize) -> &str {
self.elements
.get(index)
.and_then(|e| e.first())
.map(|s| s.as_str())
.unwrap_or("")
}
pub fn get_component(&self, element_index: usize, component_index: usize) -> &str {
self.elements
.get(element_index)
.and_then(|e| e.get(component_index))
.map(|s| s.as_str())
.unwrap_or("")
}
pub fn is(&self, segment_id: &str) -> bool {
self.id.eq_ignore_ascii_case(segment_id)
}
}