enumの要素の数や、全ての要素を配列として受け取りたい時に、

enum SomeType {
    case A, B, C, D
    var cases: [SomeType] {
        return [.A, .B, .C, .D]
    }
    var count: Int {
        return cases.count
    }
}

みたいなことをしたくなかったので、なんとかprotocolとかでこのあたりうまーくやれないかなと思って四苦八苦した結果キレイにまとめられた(と個人的には思っている)ので、公開しておきます。

長々と使い方や原理をQiitaに書いたので、リンクだけ貼っておきます。

相変わらずニッチな内容なのでアレですが、ニッチでもなんでもアウトプットしていけるよう努力します。モチベーション云々はありますが…!