use crate::last_modification_info::LastModificationInfo;
use crate::location::Location;
pub type SegmentId = u32;
#[derive(Debug, Clone, PartialEq)]
pub struct Segment {
pub id: SegmentId,
pub title: String,
pub tags: Vec<String>,
pub text: String,
pub location: Location,
pub location_url: Option<String>,
pub is_included: bool,
pub last_modification: LastModificationInfo,
}
impl Segment {
pub fn new(
id: SegmentId,
title: impl Into<String>,
tags: Vec<String>,
text: impl Into<String>,
location: Location,
) -> Segment {
Segment {
id,
title: title.into(),
tags,
text: text.into(),
location,
is_included: false,
last_modification: LastModificationInfo::default(),
location_url: None,
}
}
}
pub fn segments_sort_by_title(segments: &mut [&Segment]) {
segments.sort_by(|a, b| a.title.cmp(&b.title));
}