diff --git a/auto/Cargo.lock b/auto/Cargo.lock index a6729dc..d77333e 100644 --- a/auto/Cargo.lock +++ b/auto/Cargo.lock @@ -49,7 +49,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f47983a1084940ba9a39c077a8c63e55c619388be5476ac04c804cfbd1e63459" dependencies = [ "accesskit", - "hashbrown", + "hashbrown 0.15.2", "immutable-chunkmap", ] @@ -61,7 +61,7 @@ checksum = "7329821f3bd1101e03a7d2e03bd339e3ac0dc64c70b4c9f9ae1949e3ba8dece1" dependencies = [ "accesskit", "accesskit_consumer", - "hashbrown", + "hashbrown 0.15.2", "objc2", "objc2-app-kit", "objc2-foundation", @@ -93,7 +93,7 @@ checksum = "24fcd5d23d70670992b823e735e859374d694a3d12bfd8dd32bd3bd8bedb5d81" dependencies = [ "accesskit", "accesskit_consumer", - "hashbrown", + "hashbrown 0.15.2", "paste", "static_assertions", "windows 0.58.0", @@ -1088,6 +1088,20 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + [[package]] name = "dasp_sample" version = "0.11.0" @@ -1801,7 +1815,7 @@ checksum = "dcf29e94d6d243368b7a56caa16bc213e4f9f8ed38c4d9557069527b5d5281ca" dependencies = [ "bitflags 2.9.0", "gpu-descriptor-types", - "hashbrown", + "hashbrown 0.15.2", ] [[package]] @@ -1832,6 +1846,12 @@ dependencies = [ "byteorder", ] +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + [[package]] name = "hashbrown" version = "0.15.2" @@ -2123,7 +2143,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.15.2", ] [[package]] @@ -2135,6 +2155,7 @@ dependencies = [ "chrono", "common", "cpal", + "dashmap", "eframe", "egui-toast", "egui_extras", diff --git a/interface/Cargo.lock b/interface/Cargo.lock index 2c5d3f7..85d0c52 100644 --- a/interface/Cargo.lock +++ b/interface/Cargo.lock @@ -49,7 +49,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f47983a1084940ba9a39c077a8c63e55c619388be5476ac04c804cfbd1e63459" dependencies = [ "accesskit", - "hashbrown", + "hashbrown 0.15.2", "immutable-chunkmap", ] @@ -61,7 +61,7 @@ checksum = "7329821f3bd1101e03a7d2e03bd339e3ac0dc64c70b4c9f9ae1949e3ba8dece1" dependencies = [ "accesskit", "accesskit_consumer", - "hashbrown", + "hashbrown 0.15.2", "objc2", "objc2-app-kit", "objc2-foundation", @@ -93,7 +93,7 @@ checksum = "24fcd5d23d70670992b823e735e859374d694a3d12bfd8dd32bd3bd8bedb5d81" dependencies = [ "accesskit", "accesskit_consumer", - "hashbrown", + "hashbrown 0.15.2", "paste", "static_assertions", "windows 0.58.0", @@ -1080,6 +1080,20 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + [[package]] name = "dasp_sample" version = "0.11.0" @@ -1793,7 +1807,7 @@ checksum = "dcf29e94d6d243368b7a56caa16bc213e4f9f8ed38c4d9557069527b5d5281ca" dependencies = [ "bitflags 2.8.0", "gpu-descriptor-types", - "hashbrown", + "hashbrown 0.15.2", ] [[package]] @@ -1824,6 +1838,12 @@ dependencies = [ "byteorder", ] +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + [[package]] name = "hashbrown" version = "0.15.2" @@ -2115,7 +2135,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.15.2", ] [[package]] @@ -2127,6 +2147,7 @@ dependencies = [ "chrono", "common", "cpal", + "dashmap", "eframe", "egui-toast", "egui_extras", diff --git a/interface/Cargo.toml b/interface/Cargo.toml index e03a77c..ad272d1 100644 --- a/interface/Cargo.toml +++ b/interface/Cargo.toml @@ -23,3 +23,4 @@ chrono = "0.4.40" image = "0.25.5" libloading = "0.8.6" emath = "0.31.1" +dashmap = "6.1.0" diff --git a/interface/src/lib.rs b/interface/src/lib.rs index 7cc9afe..f6f0ebb 100644 --- a/interface/src/lib.rs +++ b/interface/src/lib.rs @@ -7,6 +7,7 @@ pub mod gui; pub mod storage_dir; pub mod combatlog; pub mod auto; +pub mod storage; pub const POWER_THRESHOLD: AtomicF32 = AtomicF32::new(DEFAULT_VOLUME_THRESHOLD); diff --git a/interface/src/loader.rs b/interface/src/loader.rs new file mode 100644 index 0000000..e69de29 diff --git a/interface/src/storage.rs b/interface/src/storage.rs new file mode 100644 index 0000000..7392d3b --- /dev/null +++ b/interface/src/storage.rs @@ -0,0 +1,14 @@ +use std::{cell::RefCell, collections::HashMap, path::PathBuf, sync::Arc}; + +use dashmap::DashMap; + +struct StorageManager { + map: DashMap, + storage: Arc, +} + +impl StorageManager { + fn new(path: PathBuf) -> Self { + Self { map, storage } + } +}