use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum StepType {
#[serde(rename = "in_app")]
InApp,
#[serde(rename = "email")]
Email,
#[serde(rename = "sms")]
Sms,
#[serde(rename = "chat")]
Chat,
#[serde(rename = "push")]
Push,
#[serde(rename = "digest")]
Digest,
#[serde(rename = "trigger")]
Trigger,
#[serde(rename = "delay")]
Delay,
#[serde(rename = "throttle")]
Throttle,
#[serde(rename = "custom")]
Custom,
}
impl std::fmt::Display for StepType {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::InApp => write!(f, "in_app"),
Self::Email => write!(f, "email"),
Self::Sms => write!(f, "sms"),
Self::Chat => write!(f, "chat"),
Self::Push => write!(f, "push"),
Self::Digest => write!(f, "digest"),
Self::Trigger => write!(f, "trigger"),
Self::Delay => write!(f, "delay"),
Self::Throttle => write!(f, "throttle"),
Self::Custom => write!(f, "custom"),
}
}
}
impl Default for StepType {
fn default() -> StepType {
Self::InApp
}
}