Optimization: less HashMap, more AHashMap
This commit is contained in:
parent
22a3a75eb5
commit
cca11ea9cc
4 changed files with 10 additions and 10 deletions
|
@ -1,15 +1,15 @@
|
|||
use crate::any::element::{AnyMapElement, AnyMapTrait};
|
||||
use crate::epaint::ahash::AHashMap;
|
||||
use std::any::TypeId;
|
||||
use std::collections::HashMap;
|
||||
use std::hash::Hash;
|
||||
|
||||
/// Stores any object by `Key`.
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct AnyMap<Key: Hash + Eq>(HashMap<Key, AnyMapElement>);
|
||||
pub struct AnyMap<Key: Hash + Eq>(AHashMap<Key, AnyMapElement>);
|
||||
|
||||
impl<Key: Hash + Eq> Default for AnyMap<Key> {
|
||||
fn default() -> Self {
|
||||
AnyMap(HashMap::new())
|
||||
AnyMap(AHashMap::new())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
use crate::any::serializable::element::{AnyMapElement, AnyMapTrait};
|
||||
use crate::any::serializable::type_id::TypeId;
|
||||
use crate::epaint::ahash::AHashMap;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::collections::HashMap;
|
||||
use std::hash::Hash;
|
||||
|
||||
/// Stores any object by `Key`, and can be de/serialized.
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
pub struct AnyMap<Key: Hash + Eq>(HashMap<Key, AnyMapElement>);
|
||||
pub struct AnyMap<Key: Hash + Eq>(AHashMap<Key, AnyMapElement>);
|
||||
|
||||
impl<Key: Hash + Eq> Default for AnyMap<Key> {
|
||||
fn default() -> Self {
|
||||
AnyMap(HashMap::new())
|
||||
AnyMap(AHashMap::new())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
use crate::any::serializable::element::{AnyMapElement, AnyMapTrait};
|
||||
use crate::any::serializable::type_id::TypeId;
|
||||
use crate::epaint::ahash::AHashMap;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::collections::HashMap;
|
||||
|
||||
/// Maps types to a single instance of that type.
|
||||
///
|
||||
/// Used to store state per widget type. In effect a sort of singleton storage.
|
||||
/// Similar to [the `typemap` crate](https://docs.rs/typemap/0.3.3/typemap/) but allows serialization.
|
||||
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
|
||||
pub struct TypeMap(HashMap<TypeId, AnyMapElement>);
|
||||
pub struct TypeMap(AHashMap<TypeId, AnyMapElement>);
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
use crate::any::element::{AnyMapElement, AnyMapTrait};
|
||||
use crate::epaint::ahash::AHashMap;
|
||||
use std::any::TypeId;
|
||||
use std::collections::HashMap;
|
||||
|
||||
/// Maps types to a single instance of that type.
|
||||
///
|
||||
/// Used to store state per widget type. In effect a sort of singleton storage.
|
||||
/// Similar to [the `typemap` crate](https://docs.rs/typemap/0.3.3/typemap/).
|
||||
#[derive(Clone, Debug, Default)]
|
||||
pub struct TypeMap(HashMap<TypeId, AnyMapElement>);
|
||||
pub struct TypeMap(AHashMap<TypeId, AnyMapElement>);
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
|
|
Loading…
Reference in a new issue