// This file is auto-generated by build.rs using Askama templates.
// Do not edit manually.
{% for dict in dictionaries %}
pub(crate) const CODES_{{ dict.enum_name|upper }}: &[u64] = &[
    {% for code in dict.codes %}0x{{ "{:016X}"|format(code) }},
    {% endfor %}
];

pub(crate) const MIH_OFFSETS_{{ dict.enum_name|upper }}: &[usize] = &[
    {% for offset in dict.mih_offsets %}{{ offset }},
    {% endfor %}
];

pub(crate) const MIH_DATA_{{ dict.enum_name|upper }}: &[u32] = &[
    {% for data in dict.mih_data %}{{ data }},
    {% endfor %}
];

pub(crate) const POINTS_{{ dict.enum_name|upper }}: &[(f64, f64)] = &[
    {% for p in dict.canonical_sampling_points %}({{ "{:.6}"|format(p[0]) }}, {{ "{:.6}"|format(p[1]) }}),
    {% endfor %}
];

pub(crate) const DICT_{{ dict.enum_name|upper }}: TagDictionary = TagDictionary {
    payload_length: {{ dict.payload_length }},
    dimension: {{ dict.dimension }},
    min_hamming: {{ dict.minimum_hamming_distance }},
    num_codes_per_rotation: {{ dict.dictionary_size }},
    codes: CODES_{{ dict.enum_name|upper }},
    mih_chunks: {{ dict.mih_chunks }},
    mih_buckets: {{ dict.mih_buckets }},
    mih_bits_per_chunk: {{ dict.mih_bits_per_chunk }},
    mih_last_chunk_bits: {{ dict.mih_last_chunk_bits }},
    mih_offsets: MIH_OFFSETS_{{ dict.enum_name|upper }},
    mih_data: MIH_DATA_{{ dict.enum_name|upper }},
};
{% endfor %}

// Family mapping function match arm
{%- macro map_family(enum_name) -%}
    crate::config::TagFamily::{{ enum_name }} => &DICT_{{ enum_name|upper }},
{%- endmacro -%}
