summaryrefslogtreecommitdiff
path: root/src/backup_reason.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/backup_reason.rs')
-rw-r--r--src/backup_reason.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/backup_reason.rs b/src/backup_reason.rs
new file mode 100644
index 0000000..cc0d49a
--- /dev/null
+++ b/src/backup_reason.rs
@@ -0,0 +1,34 @@
+use rusqlite::types::ToSqlOutput;
+use rusqlite::ToSql;
+use std::fmt;
+
+#[derive(Debug)]
+pub enum Reason {
+ Skipped,
+ IsNew,
+ Changed,
+ Unchanged,
+ Error,
+}
+
+impl ToSql for Reason {
+ fn to_sql(&self) -> rusqlite::Result<ToSqlOutput> {
+ Ok(ToSqlOutput::Owned(rusqlite::types::Value::Text(format!(
+ "{}",
+ self
+ ))))
+ }
+}
+
+impl fmt::Display for Reason {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ let reason = match self {
+ Reason::Skipped => "skipped",
+ Reason::IsNew => "new",
+ Reason::Changed => "changed",
+ Reason::Unchanged => "unchanged",
+ Reason::Error => "error",
+ };
+ write!(f, "{}", reason)
+ }
+}