Use rustc-hash for most of our HashMap and HashSet instances
This commit is contained in:
parent
14ed71e09b
commit
f5bcfec821
19 changed files with 60 additions and 49 deletions
|
|
@ -22,6 +22,7 @@ iced_core.workspace = true
|
|||
|
||||
futures.workspace = true
|
||||
log.workspace = true
|
||||
rustc-hash.workspace = true
|
||||
|
||||
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
||||
async-std.workspace = true
|
||||
|
|
|
|||
|
|
@ -18,8 +18,7 @@ impl crate::Executor for Executor {
|
|||
|
||||
pub mod time {
|
||||
//! Listen and react to time.
|
||||
use crate::core::Hasher;
|
||||
use crate::subscription::{self, Subscription};
|
||||
use crate::subscription::{self, Hasher, Subscription};
|
||||
|
||||
/// Returns a [`Subscription`] that produces messages at a set interval.
|
||||
///
|
||||
|
|
|
|||
|
|
@ -17,8 +17,7 @@ impl crate::Executor for Executor {
|
|||
|
||||
pub mod time {
|
||||
//! Listen and react to time.
|
||||
use crate::core::Hasher;
|
||||
use crate::subscription::{self, Subscription};
|
||||
use crate::subscription::{self, Hasher, Subscription};
|
||||
|
||||
/// Returns a [`Subscription`] that produces messages at a set interval.
|
||||
///
|
||||
|
|
|
|||
|
|
@ -22,8 +22,7 @@ impl crate::Executor for Executor {
|
|||
|
||||
pub mod time {
|
||||
//! Listen and react to time.
|
||||
use crate::core::Hasher;
|
||||
use crate::subscription::{self, Subscription};
|
||||
use crate::subscription::{self, Hasher, Subscription};
|
||||
|
||||
/// Returns a [`Subscription`] that produces messages at a set interval.
|
||||
///
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ mod tracker;
|
|||
pub use tracker::Tracker;
|
||||
|
||||
use crate::core::event::{self, Event};
|
||||
use crate::core::Hasher;
|
||||
use crate::futures::{Future, Stream};
|
||||
use crate::{BoxStream, MaybeSend};
|
||||
|
||||
|
|
@ -18,6 +17,9 @@ use std::hash::Hash;
|
|||
/// It is the input of a [`Subscription`].
|
||||
pub type EventStream = BoxStream<(Event, event::Status)>;
|
||||
|
||||
/// The hasher used for identifying subscriptions.
|
||||
pub type Hasher = rustc_hash::FxHasher;
|
||||
|
||||
/// A request to listen to external events.
|
||||
///
|
||||
/// Besides performing async actions on demand with `Command`, most
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
use crate::core::event::{self, Event};
|
||||
use crate::core::Hasher;
|
||||
use crate::subscription::Recipe;
|
||||
use crate::subscription::{Hasher, Recipe};
|
||||
use crate::{BoxFuture, MaybeSend};
|
||||
|
||||
use futures::channel::mpsc;
|
||||
use futures::sink::{Sink, SinkExt};
|
||||
use rustc_hash::FxHashMap;
|
||||
|
||||
use std::collections::HashMap;
|
||||
use std::hash::Hasher as _;
|
||||
|
||||
/// A registry of subscription streams.
|
||||
|
|
@ -18,7 +17,7 @@ use std::hash::Hasher as _;
|
|||
/// [`Subscription`]: crate::Subscription
|
||||
#[derive(Debug, Default)]
|
||||
pub struct Tracker {
|
||||
subscriptions: HashMap<u64, Execution>,
|
||||
subscriptions: FxHashMap<u64, Execution>,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
|
|
@ -31,7 +30,7 @@ impl Tracker {
|
|||
/// Creates a new empty [`Tracker`].
|
||||
pub fn new() -> Self {
|
||||
Self {
|
||||
subscriptions: HashMap::new(),
|
||||
subscriptions: FxHashMap::default(),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue