Rustの型で色々表現したいときのメモ
型レベルで表現しておいて、型パラメータとかに突っ込んでもっと複雑な型状態が作れたり。 勘で書いたので適当。 Type-level sum enumの型レベル表現的なもの enum Alphabets { A, B, } struct A; struct B; pub(crate) mod sealaed { pub trait Alphabets {} } impl sealed::Alphabets for A {} impl sealed::Alphabets for B {} sealaed traitにすることで、このtraitをimplできなくなる。はず ...