diff options
Diffstat (limited to 'src/backup_reason.rs')
-rw-r--r-- | src/backup_reason.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/backup_reason.rs b/src/backup_reason.rs index cc0d49a..218857c 100644 --- a/src/backup_reason.rs +++ b/src/backup_reason.rs @@ -2,7 +2,7 @@ use rusqlite::types::ToSqlOutput; use rusqlite::ToSql; use std::fmt; -#[derive(Debug)] +#[derive(Debug, Copy, Clone)] pub enum Reason { Skipped, IsNew, @@ -11,6 +11,18 @@ pub enum Reason { Error, } +impl Reason { + pub fn from_str(text: &str) -> Reason { + match text { + "skipped" => Reason::Skipped, + "new" => Reason::IsNew, + "changed" => Reason::Changed, + "unchanged" => Reason::Unchanged, + _ => Reason::Error, + } + } +} + impl ToSql for Reason { fn to_sql(&self) -> rusqlite::Result<ToSqlOutput> { Ok(ToSqlOutput::Owned(rusqlite::types::Value::Text(format!( |