///|
pub(all) enum UserStatus {
Pending
Approved
Rejected
} derive(Debug, Eq)
///|
pub fn UserStatus::from_string(s : String) -> UserStatus {
match s {
"approved" => Approved
"rejected" => Rejected
_ => Pending
}
}
///|
pub fn UserStatus::to_string(self : UserStatus) -> String {
match self {
Pending => "pending"
Approved => "approved"
Rejected => "rejected"
}
}
///|
pub impl ToJson for UserStatus with fn to_json(self) {
self.to_string().to_json()
}
///|
pub impl @json.FromJson for UserStatus with fn from_json(json, path) {
let s : String = @json.FromJson::from_json(json, path)
UserStatus::from_string(s)
}