Rustではポインタだけでなく数値もNonZeroXxx型が各サイズ用意されたね
例えばOption<NonZeroU64>型はu64型と同じ64bitで表現されNoneの時に値0
従来の言語でのプログラミングでゼロ値を特殊扱いで値が無いことを意味させていたケースも安全に扱えるみたい