aqc_text_engine_core/
engine.rs1use aqc_file_engine_core::{
4 Engine, EngineOutput, EngineRequirement, FileEngine, Provenance, merged_reconcile,
5};
6
7use crate::reconcile::reconcile_text_file;
8use crate::requirement::{ResolvedTextFileRequirements, TextFileRequirements};
9
10#[derive(Debug, Default)]
11pub struct TextFileEngine;
12
13impl FileEngine<ResolvedTextFileRequirements> for TextFileEngine {
14 fn reconcile(
15 current_bytes: Option<&[u8]>,
16 resolved_requirements: &ResolvedTextFileRequirements,
17 ) -> EngineOutput {
18 reconcile_text_file(current_bytes, resolved_requirements)
19 }
20}
21
22impl Engine for TextFileEngine {
23 fn id(&self) -> &'static str {
24 crate::ENGINE_ID
25 }
26
27 fn reconcile(
28 &self,
29 current_bytes: Option<&[u8]>,
30 reqs: &[(Provenance, Box<dyn EngineRequirement>)],
31 ) -> EngineOutput {
32 merged_reconcile(
33 current_bytes,
34 reqs,
35 TextFileRequirements::merge,
36 <Self as FileEngine<ResolvedTextFileRequirements>>::reconcile,
37 )
38 }
39}