///|
/// Represents an animated emoji that displays a random value.
pub struct Dice {
emoji : String
value : Int
} derive(Show, Eq)
///|
/// Creates a new [Dice].
pub fn Dice::new(emoji~ : String, value~ : Int) -> Dice {
{ emoji, value }
}
///|
pub impl ToJson for Dice with to_json(self) {
let object : Map[String, Json] = {
"emoji": self.emoji.to_json(),
"value": self.value.to_json(),
}
object.to_json()
}
///|
pub impl @json.FromJson for Dice with from_json(json, path) {
guard json is Object(object) else {
raise @json.JsonDecodeError((path, "Expected object for Dice"))
}
let emoji : String = @json.from_json(object["emoji"], path~)
let value : Int = @json.from_json(object["value"], path~)
{ emoji, value }
}