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.rs14
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!(