modde_games/bannerlord/
saves.rs1use std::path::Path;
4
5use anyhow::Result;
6use smallvec::SmallVec;
7
8use crate::save_patterns::{CaptureSummary, PatternSaveTracker};
9use crate::traits::{DetectedSave, SaveTracker};
10
11pub struct BannerlordSaveTracker;
13
14pub static BANNERLORD_SAVE_TRACKER: BannerlordSaveTracker = BannerlordSaveTracker;
15
16const TRACKER: PatternSaveTracker = PatternSaveTracker {
17 prefix_rules: &[],
18 file_extensions: &["sav"],
19 default_category: "campaign",
20 recursive: false,
21 exclude_patterns: &[],
22 label_extractor: |_, rel| Some(rel.to_string()),
23 summary: CaptureSummary::ByCategory,
24};
25
26impl SaveTracker for BannerlordSaveTracker {
27 fn save_patterns(&self) -> SmallVec<[String; 2]> {
28 TRACKER.save_patterns()
29 }
30
31 fn detect_saves(&self, save_dir: &Path) -> Result<Vec<DetectedSave>> {
32 TRACKER.detect_saves(save_dir)
33 }
34
35 fn exclude_patterns(&self) -> SmallVec<[String; 2]> {
36 TRACKER.exclude_patterns()
37 }
38
39 fn describe_capture(&self, saves: &[DetectedSave]) -> String {
40 TRACKER.describe_capture(saves)
41 }
42}