1use stam::{AnnotationDataSet, AnnotationStore, Configurable, StoreFor, TextResource};
2
3pub fn annotate(
4 store: &mut AnnotationStore,
5 resourcefiles: &[&str],
6 setfiles: &[&str],
7 annotationfiles: &[&str],
8) -> Result<(), String> {
9 for filename in setfiles {
10 let annotationset = AnnotationDataSet::from_file(filename, store.config().clone())
11 .map_err(|err| format!("Error loading AnnotationDataSet {}: {}", filename, err))?;
12 store
13 .insert(annotationset)
14 .map_err(|err| format!("Error adding AnnotationDataSet {}: {}", filename, err))?;
15 }
16 for filename in resourcefiles {
17 let resource = TextResource::from_file(filename, store.config().clone())
18 .map_err(|err| format!("Error loading TextResource {}: {}", filename, err))?;
19 store
20 .insert(resource)
21 .map_err(|err| format!("Error adding TextResource {}: {}", filename, err))?;
22 }
23 for filename in annotationfiles {
24 store
25 .annotate_from_file(filename)
26 .map_err(|err| format!("Error parsing annotations from {}: {}", filename, err))?;
27 }
28 Ok(())
29}