pub type ScoreUpdateType { Add Subtract Reset } pub type Error { InvalidUpdateType } pub fn serialize(score_update: ScoreUpdateType) -> String { case score_update { Add -> "Add" Subtract -> "Subtract" Reset -> "Reset" } } pub fn deseralize(score_update_string) -> Result(ScoreUpdateType, Error) { case score_update_string { "Add" -> Ok(Add) "Subtract" -> Ok(Subtract) "Reset" -> Ok(Reset) _ -> Error(InvalidUpdateType) } }