diff options
Diffstat (limited to 'src/backup_reason.rs')
-rw-r--r-- | src/backup_reason.rs | 34 |
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) + } +} |