I'd like to have an Int enum which can be "serialized" as Int or String as well.
enum Fruits : Int {
case Banana = 1
case Apple = 123
}
let favorite = Frutis(fromRaw: 1)
let banana = Fruits(from: "Banana")
assert(favorite==banana)
assert(favorite.rawValue == 1)
assert(String(describing: favorite) == "Banana")
How can I do that without implementing init(fromRaw:) and init(from:) myself for all the cases? The enum contains many entries and I'd like to avoid a bloated code.