概要
Rustにおいて順序付きマップは、2024年の3月時点で標準の機能としては実装されていません。おそらくライブラリ等を使用して順序付きマップを実現することが多いと思いますが、では順序付きマップを定数で使用したい場合にどういうやり方があるのかというメモ書きです。
対応方針
そもそも、HashMapを定数で管理したい場合どうすれば良いかという点について、いくつかやり方が挙げられると思いますが、今回はRustの便利クレートで紹介されているphf
というライブラリを使用したいと思います。このphfですが、Module phf::ordered_mapのドキュメントで紹介されている通り、順序付きマップの機能もあります。
前提
- 使用したrustcのバージョンは
1.76.0
です。 - 使用したphfのバージョンは
0.11
です。
実装サンプル
use phf::phf_ordered_map;
pub const TEST_ORDERED_MAP: phf::OrderedMap<&'static str, &'static str> = phf_ordered_map! {
"key1" => "val1",
"key2" => "val2",
"key3" => "val3",
};