Rust 1.51 で const-generics が stable に降ってきたので, これを記念して D 次元Hilbert 曲線を Rust で実装しました.
Hilbert 曲線はフラクタル曲線の一種 (空間充填曲線) で, 立方体のなかのすべての格子点を重複なく辿る効率的な経路を与えてくれます. この種のもので最も有名なのは Peano 曲線だと思いますが, Peano 曲線が三進数に基づいているのに対して Hilbert 曲線は二進数で, 計算機とより親和性が高いです. そのため高次元データを扱うために用いられたりします. 既に Rust クレートは存在するのですが, 任意の空間次元で使えて手に馴染むクレートがなかったため自作しました. これまでは D 次元で実装しようと思うとマクロで頑張るかヒープを使うかしかなかったのですが, const-generics のおかげで [T; D]
がとても使いやすくなりました.