ito_core/
backend_task_repository.rs1use ito_domain::backend::BackendTaskReader;
8use ito_domain::errors::DomainResult;
9use ito_domain::tasks::{TaskRepository as DomainTaskRepository, TasksParseResult};
10
11pub struct BackendTaskRepository<R: BackendTaskReader> {
16 reader: R,
17}
18
19impl<R: BackendTaskReader> BackendTaskRepository<R> {
20 pub fn new(reader: R) -> Self {
22 Self { reader }
23 }
24}
25
26impl<R: BackendTaskReader> DomainTaskRepository for BackendTaskRepository<R> {
27 fn load_tasks(&self, change_id: &str) -> DomainResult<TasksParseResult> {
28 let content = self.reader.load_tasks_content(change_id)?;
29 let Some(content) = content else {
30 return Ok(TasksParseResult::empty());
31 };
32
33 Ok(ito_domain::tasks::parse_tasks_tracking_file(&content))
34 }
35}
36
37#[cfg(test)]
38#[path = "backend_task_repository_tests.rs"]
39mod backend_task_repository_tests;