signer-daemon 0.2.1

Signer daemon package.
Documentation
use sea_orm::ActiveValue;
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum DeltaField<T> {
  Set(T),
  NotSet,
}

impl<T> DeltaField<T>
where
  T: PartialEq + Clone,
{
  pub fn new(from: &T, to: &T) -> Self {
    if from == to {
      return DeltaField::NotSet;
    } else {
      return DeltaField::Set(to.clone());
    }
  }

  pub fn unwrap_ref(&self) -> &T {
    match self {
      DeltaField::Set(val) => val,
      DeltaField::NotSet => panic!("DeltaField::NotSet"),
    }
  }
}

impl<T> Into<ActiveValue<T>> for DeltaField<T>
where
  T: Into<sea_orm::Value>,
{
  fn into(self) -> ActiveValue<T> {
    match self {
      DeltaField::Set(val) => ActiveValue::Set(val),
      DeltaField::NotSet => ActiveValue::NotSet,
    }
  }
}