bevy/crates/bevy_reflect/src
SpecificProtagonist 8faaef17e5
Hash stability guarantees (#11690)
# Objective

We currently over/underpromise hash stability:
- `HashMap`/`HashSet` use `BuildHasherDefault<AHasher>` instead of
`RandomState`. As a result, the hash is stable within the same run.
- [aHash isn't stable between devices (and
versions)](https://github.com/tkaitchuck/ahash?tab=readme-ov-file#goals-and-non-goals),
yet it's used for `StableHashMap`/`StableHashSet`
- the specialized hashmaps are stable

Interestingly, `StableHashMap`/`StableHashSet` aren't used by Bevy
itself (anymore).

## Solution
Add/fix documentation

## Alternatives
For `StableHashMap`/`StableHashSet`:
- remove them
- revive #7107

---

## Changelog
- added iteration stability guarantees for different hashmaps
2024-02-05 17:05:15 +00:00
..
enums Remove unnecessary path prefixes (#10749) 2023-11-28 23:43:40 +00:00
impls bevy_reflect: Reflect &'static str (#11686) 2024-02-04 01:32:48 +00:00
path Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
serde Replace or document ignored doctests (#11040) 2024-01-01 16:50:56 +00:00
array.rs Reorder impl to be the same as the trait (#11076) 2023-12-24 17:43:55 +00:00
fields.rs reflect: TypePath part 2 (#8768) 2023-10-09 19:33:03 +00:00
from_reflect.rs reflect: TypePath part 2 (#8768) 2023-10-09 19:33:03 +00:00
lib.rs Inverse missing_docs logic (#11676) 2024-02-03 21:40:55 +00:00
list.rs Remove unnecessary path prefixes (#10749) 2023-11-28 23:43:40 +00:00
map.rs Reorder impl to be the same as the trait (#11076) 2023-12-24 17:43:55 +00:00
reflect.rs delete methods deprecated in 0.12 (#10693) 2023-11-24 16:15:47 +00:00
std_traits.rs fix nightly clippy warnings (#6395) 2022-10-28 21:03:01 +00:00
struct_trait.rs Improve DynamicStruct::insert (#11068) 2024-02-05 13:57:25 +00:00
tuple_struct.rs Reorder impl to be the same as the trait (#11076) 2023-12-24 17:43:55 +00:00
tuple.rs Reorder impl to be the same as the trait (#11076) 2023-12-24 17:43:55 +00:00
type_info.rs Remove unnecessary path prefixes (#10749) 2023-11-28 23:43:40 +00:00
type_path.rs Replace or document ignored doctests (#11040) 2024-01-01 16:50:56 +00:00
type_registry.rs Use TypeIdMap whenever possible (#11684) 2024-02-03 23:47:04 +00:00
utility.rs Hash stability guarantees (#11690) 2024-02-05 17:05:15 +00:00