Skip to content

Commit 16276aa

Browse files
committed
move ByKeySpace into separate file
1 parent cd27a56 commit 16276aa

File tree

3 files changed

+57
-52
lines changed

3 files changed

+57
-52
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
use crate::database::key_value_database::KeySpace;
2+
3+
pub struct ByKeySpace<T> {
4+
infra: T,
5+
task_meta: T,
6+
task_data: T,
7+
forward_task_cache: T,
8+
reverse_task_cache: T,
9+
}
10+
11+
impl<T> ByKeySpace<T> {
12+
pub fn new(mut factory: impl FnMut(KeySpace) -> T) -> Self {
13+
Self {
14+
infra: factory(KeySpace::Infra),
15+
task_meta: factory(KeySpace::TaskMeta),
16+
task_data: factory(KeySpace::TaskData),
17+
forward_task_cache: factory(KeySpace::ForwardTaskCache),
18+
reverse_task_cache: factory(KeySpace::ReverseTaskCache),
19+
}
20+
}
21+
22+
pub fn get(&self, key_space: KeySpace) -> &T {
23+
match key_space {
24+
KeySpace::Infra => &self.infra,
25+
KeySpace::TaskMeta => &self.task_meta,
26+
KeySpace::TaskData => &self.task_data,
27+
KeySpace::ForwardTaskCache => &self.forward_task_cache,
28+
KeySpace::ReverseTaskCache => &self.reverse_task_cache,
29+
}
30+
}
31+
32+
pub fn get_mut(&mut self, key_space: KeySpace) -> &mut T {
33+
match key_space {
34+
KeySpace::Infra => &mut self.infra,
35+
KeySpace::TaskMeta => &mut self.task_meta,
36+
KeySpace::TaskData => &mut self.task_data,
37+
KeySpace::ForwardTaskCache => &mut self.forward_task_cache,
38+
KeySpace::ReverseTaskCache => &mut self.reverse_task_cache,
39+
}
40+
}
41+
42+
pub fn iter(&self) -> impl Iterator<Item = (KeySpace, &T)> {
43+
[
44+
(KeySpace::Infra, &self.infra),
45+
(KeySpace::TaskMeta, &self.task_meta),
46+
(KeySpace::TaskData, &self.task_data),
47+
(KeySpace::ForwardTaskCache, &self.forward_task_cache),
48+
(KeySpace::ReverseTaskCache, &self.reverse_task_cache),
49+
]
50+
.into_iter()
51+
}
52+
}

turbopack/crates/turbo-tasks-backend/src/database/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
mod by_key_space;
12
pub mod db_versioning;
23
pub mod fresh_db_optimization;
34
pub mod key_value_database;

turbopack/crates/turbo-tasks-backend/src/database/startup_cache.rs

Lines changed: 4 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -13,62 +13,14 @@ use byteorder::WriteBytesExt;
1313
use dashmap::DashMap;
1414
use rustc_hash::{FxHashMap, FxHasher};
1515

16-
use crate::database::key_value_database::{KeySpace, KeyValueDatabase, WriteBatch};
16+
use crate::database::{
17+
by_key_space::ByKeySpace,
18+
key_value_database::{KeySpace, KeyValueDatabase, WriteBatch},
19+
};
1720

1821
const CACHE_SIZE_LIMIT: usize = 100 * 1024 * 1024;
1922
const PAIR_HEADER_SIZE: usize = 9;
2023

21-
pub struct ByKeySpace<T> {
22-
infra: T,
23-
task_meta: T,
24-
task_data: T,
25-
forward_task_cache: T,
26-
reverse_task_cache: T,
27-
}
28-
29-
impl<T> ByKeySpace<T> {
30-
pub fn new(mut factory: impl FnMut(KeySpace) -> T) -> Self {
31-
Self {
32-
infra: factory(KeySpace::Infra),
33-
task_meta: factory(KeySpace::TaskMeta),
34-
task_data: factory(KeySpace::TaskData),
35-
forward_task_cache: factory(KeySpace::ForwardTaskCache),
36-
reverse_task_cache: factory(KeySpace::ReverseTaskCache),
37-
}
38-
}
39-
40-
pub fn get(&self, key_space: KeySpace) -> &T {
41-
match key_space {
42-
KeySpace::Infra => &self.infra,
43-
KeySpace::TaskMeta => &self.task_meta,
44-
KeySpace::TaskData => &self.task_data,
45-
KeySpace::ForwardTaskCache => &self.forward_task_cache,
46-
KeySpace::ReverseTaskCache => &self.reverse_task_cache,
47-
}
48-
}
49-
50-
pub fn get_mut(&mut self, key_space: KeySpace) -> &mut T {
51-
match key_space {
52-
KeySpace::Infra => &mut self.infra,
53-
KeySpace::TaskMeta => &mut self.task_meta,
54-
KeySpace::TaskData => &mut self.task_data,
55-
KeySpace::ForwardTaskCache => &mut self.forward_task_cache,
56-
KeySpace::ReverseTaskCache => &mut self.reverse_task_cache,
57-
}
58-
}
59-
60-
pub fn iter(&self) -> impl Iterator<Item = (KeySpace, &T)> {
61-
[
62-
(KeySpace::Infra, &self.infra),
63-
(KeySpace::TaskMeta, &self.task_meta),
64-
(KeySpace::TaskData, &self.task_data),
65-
(KeySpace::ForwardTaskCache, &self.forward_task_cache),
66-
(KeySpace::ReverseTaskCache, &self.reverse_task_cache),
67-
]
68-
.into_iter()
69-
}
70-
}
71-
7224
pub enum ValueBuffer<'l, T: KeyValueDatabase>
7325
where
7426
T: 'l,

0 commit comments

Comments
 (0)