1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//!
//! The Patch structure.
//!

use std::{
    fmt,
    collections::VecDeque,
};

use crate::context::Context;

#[derive(Default)]
pub struct Patch {
    pub input: String,
    pub output: String,
    pub contexts: VecDeque<Context>,
}

impl fmt::Display for Patch {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        writeln!(f, "--- {}", self.input)?;
        writeln!(f, "+++ {}", self.output)?;
        for context in self.contexts.iter() {
            write!(f, "{}", context)?;
        }
        Ok(())
    }
}