message: Use BTreeMap when serializing an IndexMap
diff: @@ -3,19 +3,21 @@ use core::hash::Hash;
  use indexmap::IndexMap;
  use rkyv::{Archive, Deserialize, Serialize};
  #[cfg(feature = "std")]
  -use std::{collections::HashMap, hash::Hash};
  +use std::{collections::BTreeMap, hash::Hash};
  #[derive(Serialize, Deserialize, Archive)]
  /// Rkyv Archivable IndexMap
  -pub struct ArchivableIndexMap<K: Hash + Eq + Archive, V: Archive> {
  - indices: HashMap<K, u64>,
  +pub struct ArchivableIndexMap<K: Hash + Ord + Archive, V: Archive> {
  + indices: BTreeMap<K, u64>,
  entries: Vec<(K, V)>,
  }
  -impl<K: Hash + Eq + Archive + Clone, V: Archive> From<IndexMap<K, V>> for ArchivableIndexMap<K, V> {
  +impl<K: Hash + Ord + Archive + Clone, V: Archive> From<IndexMap<K, V>>
  + for ArchivableIndexMap<K, V>
  +{
  fn from(it: IndexMap<K, V>) -> ArchivableIndexMap<K, V> {
  let mut r = ArchivableIndexMap {
  - indices: HashMap::new(),
  + indices: BTreeMap::new(),
  entries: Vec::new(),
  };
  let mut i: u64 = 0;
  @@ -28,7 +30,9 @@ impl<K: Hash + Eq + Archive + Clone, V: Archive> From<IndexMap<K, V>> for Archiv
  }
  }
  -impl<K: Hash + Eq + Archive + Clone, V: Archive> Into<IndexMap<K, V>> for ArchivableIndexMap<K, V> {
  +impl<K: Hash + Ord + Archive + Clone, V: Archive> Into<IndexMap<K, V>>
  + for ArchivableIndexMap<K, V>
  +{
  fn into(self) -> IndexMap<K, V> {
  let mut r = IndexMap::new();
  for (k, v) in self.entries.into_iter() {
  