|
12 | 12 | // See the License for the specific language governing permissions and
|
13 | 13 | // limitations under the License.
|
14 | 14 |
|
15 |
| -use std::{ |
16 |
| - borrow::Cow, |
17 |
| - fmt::Debug, |
18 |
| - future::Future, |
19 |
| - hash::{BuildHasherDefault, Hash}, |
20 |
| - ops::Deref, |
21 |
| - sync::Arc, |
22 |
| -}; |
| 15 | +use std::{borrow::Cow, fmt::Debug, future::Future, hash::Hash, ops::Deref, sync::Arc}; |
23 | 16 |
|
24 |
| -use ahash::AHasher; |
25 | 17 | use equivalent::Equivalent;
|
26 | 18 | use foyer_common::{
|
27 |
| - code::{HashBuilder, Key, Value}, |
| 19 | + code::{DefaultHasher, HashBuilder, Key, Value}, |
28 | 20 | event::EventListener,
|
29 | 21 | future::Diversion,
|
30 | 22 | metrics::Metrics,
|
@@ -115,26 +107,25 @@ impl Properties for CacheProperties {
|
115 | 107 | }
|
116 | 108 | }
|
117 | 109 |
|
118 |
| -pub type FifoCache<K, V, S = BuildHasherDefault<AHasher>, P = CacheProperties> = RawCache<Fifo<K, V, P>, S>; |
119 |
| -pub type FifoCacheEntry<K, V, S = BuildHasherDefault<AHasher>, P = CacheProperties> = RawCacheEntry<Fifo<K, V, P>, S>; |
120 |
| -pub type FifoFetch<K, V, ER, S = BuildHasherDefault<AHasher>, P = CacheProperties> = RawFetch<Fifo<K, V, P>, ER, S>; |
| 110 | +pub type FifoCache<K, V, S = DefaultHasher, P = CacheProperties> = RawCache<Fifo<K, V, P>, S>; |
| 111 | +pub type FifoCacheEntry<K, V, S = DefaultHasher, P = CacheProperties> = RawCacheEntry<Fifo<K, V, P>, S>; |
| 112 | +pub type FifoFetch<K, V, ER, S = DefaultHasher, P = CacheProperties> = RawFetch<Fifo<K, V, P>, ER, S>; |
121 | 113 |
|
122 |
| -pub type S3FifoCache<K, V, S = BuildHasherDefault<AHasher>, P = CacheProperties> = RawCache<S3Fifo<K, V, P>, S>; |
123 |
| -pub type S3FifoCacheEntry<K, V, S = BuildHasherDefault<AHasher>, P = CacheProperties> = |
124 |
| - RawCacheEntry<S3Fifo<K, V, P>, S>; |
125 |
| -pub type S3FifoFetch<K, V, ER, S = BuildHasherDefault<AHasher>, P = CacheProperties> = RawFetch<S3Fifo<K, V, P>, ER, S>; |
| 114 | +pub type S3FifoCache<K, V, S = DefaultHasher, P = CacheProperties> = RawCache<S3Fifo<K, V, P>, S>; |
| 115 | +pub type S3FifoCacheEntry<K, V, S = DefaultHasher, P = CacheProperties> = RawCacheEntry<S3Fifo<K, V, P>, S>; |
| 116 | +pub type S3FifoFetch<K, V, ER, S = DefaultHasher, P = CacheProperties> = RawFetch<S3Fifo<K, V, P>, ER, S>; |
126 | 117 |
|
127 |
| -pub type LruCache<K, V, S = BuildHasherDefault<AHasher>, P = CacheProperties> = RawCache<Lru<K, V, P>, S>; |
128 |
| -pub type LruCacheEntry<K, V, S = BuildHasherDefault<AHasher>, P = CacheProperties> = RawCacheEntry<Lru<K, V, P>, S>; |
129 |
| -pub type LruFetch<K, V, ER, S = BuildHasherDefault<AHasher>, P = CacheProperties> = RawFetch<Lru<K, V, P>, ER, S>; |
| 118 | +pub type LruCache<K, V, S = DefaultHasher, P = CacheProperties> = RawCache<Lru<K, V, P>, S>; |
| 119 | +pub type LruCacheEntry<K, V, S = DefaultHasher, P = CacheProperties> = RawCacheEntry<Lru<K, V, P>, S>; |
| 120 | +pub type LruFetch<K, V, ER, S = DefaultHasher, P = CacheProperties> = RawFetch<Lru<K, V, P>, ER, S>; |
130 | 121 |
|
131 |
| -pub type LfuCache<K, V, S = BuildHasherDefault<AHasher>, P = CacheProperties> = RawCache<Lfu<K, V, P>, S>; |
132 |
| -pub type LfuCacheEntry<K, V, S = BuildHasherDefault<AHasher>, P = CacheProperties> = RawCacheEntry<Lfu<K, V, P>, S>; |
133 |
| -pub type LfuFetch<K, V, ER, S = BuildHasherDefault<AHasher>, P = CacheProperties> = RawFetch<Lfu<K, V, P>, ER, S>; |
| 122 | +pub type LfuCache<K, V, S = DefaultHasher, P = CacheProperties> = RawCache<Lfu<K, V, P>, S>; |
| 123 | +pub type LfuCacheEntry<K, V, S = DefaultHasher, P = CacheProperties> = RawCacheEntry<Lfu<K, V, P>, S>; |
| 124 | +pub type LfuFetch<K, V, ER, S = DefaultHasher, P = CacheProperties> = RawFetch<Lfu<K, V, P>, ER, S>; |
134 | 125 |
|
135 | 126 | /// A cached entry holder of the in-memory cache.
|
136 | 127 | #[derive(Debug)]
|
137 |
| -pub enum CacheEntry<K, V, S = BuildHasherDefault<AHasher>, P = CacheProperties> |
| 128 | +pub enum CacheEntry<K, V, S = DefaultHasher, P = CacheProperties> |
138 | 129 | where
|
139 | 130 | K: Key,
|
140 | 131 | V: Value,
|
@@ -382,7 +373,7 @@ where
|
382 | 373 | metrics: Option<Arc<Metrics>>,
|
383 | 374 | }
|
384 | 375 |
|
385 |
| -impl<K, V> CacheBuilder<K, V, BuildHasherDefault<AHasher>> |
| 376 | +impl<K, V> CacheBuilder<K, V, DefaultHasher> |
386 | 377 | where
|
387 | 378 | K: Key,
|
388 | 379 | V: Value,
|
@@ -543,7 +534,7 @@ where
|
543 | 534 | }
|
544 | 535 |
|
545 | 536 | /// In-memory cache with plug-and-play algorithms.
|
546 |
| -pub enum Cache<K, V, S = BuildHasherDefault<AHasher>, P = CacheProperties> |
| 537 | +pub enum Cache<K, V, S = DefaultHasher, P = CacheProperties> |
547 | 538 | where
|
548 | 539 | K: Key,
|
549 | 540 | V: Value,
|
@@ -594,13 +585,13 @@ where
|
594 | 585 | }
|
595 | 586 | }
|
596 | 587 |
|
597 |
| -impl<K, V> Cache<K, V, BuildHasherDefault<AHasher>, CacheProperties> |
| 588 | +impl<K, V> Cache<K, V, DefaultHasher, CacheProperties> |
598 | 589 | where
|
599 | 590 | K: Key,
|
600 | 591 | V: Value,
|
601 | 592 | {
|
602 | 593 | /// Create a new in-memory cache builder with capacity.
|
603 |
| - pub fn builder(capacity: usize) -> CacheBuilder<K, V, BuildHasherDefault<AHasher>> { |
| 594 | + pub fn builder(capacity: usize) -> CacheBuilder<K, V, DefaultHasher> { |
604 | 595 | CacheBuilder::new(capacity)
|
605 | 596 | }
|
606 | 597 | }
|
@@ -806,7 +797,7 @@ where
|
806 | 797 |
|
807 | 798 | /// A future that is used to get entry value from the remote storage for the in-memory cache.
|
808 | 799 | #[pin_project(project = FetchProj)]
|
809 |
| -pub enum Fetch<K, V, ER, S = BuildHasherDefault<AHasher>, P = CacheProperties> |
| 800 | +pub enum Fetch<K, V, ER, S = DefaultHasher, P = CacheProperties> |
810 | 801 | where
|
811 | 802 | K: Key,
|
812 | 803 | V: Value,
|
|
0 commit comments