From 362c0448ad0034da978ffe6bd7ca33e9d33d9313 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 7 Aug 2024 15:42:35 +0100 Subject: [PATCH 001/163] first commit --- README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..eebf9f8 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# enginelib From 7fa79de07a46f64795e9f75e06b88fcffa452fe5 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 7 Aug 2024 15:44:53 +0100 Subject: [PATCH 002/163] readme --- Cargo.toml | 8 ++++++++ README.md | 2 ++ src/lib.rs | 14 ++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 Cargo.toml create mode 100644 src/lib.rs diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..3628279 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "enginelib" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/README.md b/README.md index eebf9f8..bdddc20 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ # enginelib +The main library used by the GE engine. +All rights reserved according to the GE engine licence. diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..7d12d9a --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,14 @@ +pub fn add(left: usize, right: usize) -> usize { + left + right +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn it_works() { + let result = add(2, 2); + assert_eq!(result, 4); + } +} From a02f96d79c34fc6a6dd3cff2e35da1c7817c0181 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 7 Aug 2024 15:56:31 +0100 Subject: [PATCH 003/163] enginelib --- .gitignore | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..64bf0eb --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# Generated by Cargo +# will have compiled files and executables +debug/ +target/ + +# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries +# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html +Cargo.lock + +# These are backup files generated by rustfmt +**/*.rs.bk + +# MSVC Windows builds of rustc generate these, which store debugging information +*.pdb + +# RustRover +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ From 1e2f1d24aa1d807c22975da9d07134064d808fc7 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 7 Aug 2024 16:01:59 +0100 Subject: [PATCH 004/163] update readme for lib --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bdddc20..837aa31 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # enginelib -The main library used by the GE engine. +The main library used by the GE engine, contains mostly boilerplate shared between server and client. All rights reserved according to the GE engine licence. From 63693ffbc413d6f5b53528f4095995289a4ccc07 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 7 Aug 2024 16:08:54 +0100 Subject: [PATCH 005/163] update lib --- src/lib.rs | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 7d12d9a..afd8c9c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,14 +1,7 @@ -pub fn add(left: usize, right: usize) -> usize { - left + right +pub enum TaskRunner { + GPU, + CPU, } - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn it_works() { - let result = add(2, 2); - assert_eq!(result, 4); - } +pub enum Task { + AksPrime, } From 21e0c07efcb12ca925155861406cc3da74845064 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 8 Aug 2024 00:44:15 +0100 Subject: [PATCH 006/163] boilerplate --- src/lib.rs | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index afd8c9c..dc33f05 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,7 +1,24 @@ pub enum TaskRunner { - GPU, CPU, + ROCM, + CUDA, } -pub enum Task { - AksPrime, +pub struct Chunk { + pub start: u128, + pub end: u128, +} + +pub struct Task { + pub task_runner: TaskRunner, + pub task_id: u128, + pub task_fn: Box TaskOutput>, +} +impl Task { + pub fn execute(&self, input: TaskInput) -> TaskOutput { + (self.task_fn)(input, &self.task_runner) + } +} + +pub fn isprime(input: Chunk, runner: &TaskRunner) -> u128 { + input.end * (input.start + input.end) } From 1c5044baef7715cdeb9ddde0b4c5227bdfdcea64 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 6 Sep 2024 20:12:18 +0100 Subject: [PATCH 007/163] optimized api syntax --- src/lib.rs | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index dc33f05..b576b3e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,24 +1,20 @@ -pub enum TaskRunner { - CPU, - ROCM, - CUDA, -} -pub struct Chunk { - pub start: u128, - pub end: u128, -} - -pub struct Task { - pub task_runner: TaskRunner, - pub task_id: u128, - pub task_fn: Box TaskOutput>, -} -impl Task { - pub fn execute(&self, input: TaskInput) -> TaskOutput { - (self.task_fn)(input, &self.task_runner) +pub trait Task { + fn run_hip(&mut self) { + println!("HIP Runtime not availible running with the CPU"); + self.run_cpu(); + } + fn run_cpu(&mut self) { + panic!("CPU run not Implemented"); + } + fn run(&mut self, run: Option) { + match run { + Some(Runner::HIP) => self.run_hip(), + Some(Runner::CPU) => self.run_cpu(), + None => self.run_cpu(), + } } } - -pub fn isprime(input: Chunk, runner: &TaskRunner) -> u128 { - input.end * (input.start + input.end) +pub enum Runner { + HIP, + CPU, } From 3305302daa56c4c1df3417c51828abc17bd92fe4 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 12 Sep 2024 15:59:02 +0100 Subject: [PATCH 008/163] remove test file --- Cargo.toml | 4 ++++ src/lib.rs | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 3628279..05e9469 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,4 +5,8 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[[bin]] +name = "test" +path = "src/test.rs" + [dependencies] diff --git a/src/lib.rs b/src/lib.rs index b576b3e..7f67dcd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,6 @@ pub trait Task { fn run_hip(&mut self) { - println!("HIP Runtime not availible running with the CPU"); + println!("HIP Runtime not available, falling back to CPU"); self.run_cpu(); } fn run_cpu(&mut self) { @@ -9,11 +9,13 @@ pub trait Task { fn run(&mut self, run: Option) { match run { Some(Runner::HIP) => self.run_hip(), - Some(Runner::CPU) => self.run_cpu(), - None => self.run_cpu(), + Some(Runner::CPU) | None => self.run_cpu(), } } + fn from_bytes(&[u8]) -> Self; + fn to_bytes(&self) -> &[u8]; } +#[derive(Debug, Clone, Copy)] pub enum Runner { HIP, CPU, From ebc91c9a6d339d14467911eb55a6792846f48eb0 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 12 Sep 2024 16:02:13 +0100 Subject: [PATCH 009/163] i have no idea what wizardry im doing --- src/lib.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 7f67dcd..3485e75 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -20,3 +20,30 @@ pub enum Runner { HIP, CPU, } +pub struct FibTask { + iter: u64, + result: u64, +} +impl Task for FibTask{ + fn run_cpu(&mut self) { + let mut a = 0; + let mut b = 1; + for _ in 0..self.iter { + let tmp = a; + a = b; + b = tmp + b; + } + self.result = a; + } + fn from_bytes(bytes: &[u8]) -> Self { + let iter = u64::from_le_bytes(bytes[0..8].try_into().unwrap()); + let result = u64::from_le_bytes(bytes[8..16].try_into().unwrap()); + Self { iter, result } + } + fn to_bytes(&self) -> &[u8] { + let mut bytes = Vec::with_capacity(16); + bytes.extend_from_slice(&self.iter.to_le_bytes()); + bytes.extend_from_slice(&self.result.to_le_bytes()); + bytes + } +} From f826d52888e4764f9785723bb192b589a55ba9ca Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 12 Sep 2024 16:13:19 +0100 Subject: [PATCH 010/163] fixed sub obtiomal code --- src/lib.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 3485e75..ccbb538 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,8 +12,8 @@ pub trait Task { Some(Runner::CPU) | None => self.run_cpu(), } } - fn from_bytes(&[u8]) -> Self; - fn to_bytes(&self) -> &[u8]; + fn from_bytes(bytes: &[u8]) -> Self; + fn to_bytes(&self) -> Vec; } #[derive(Debug, Clone, Copy)] pub enum Runner { @@ -24,14 +24,14 @@ pub struct FibTask { iter: u64, result: u64, } -impl Task for FibTask{ +impl Task for FibTask { fn run_cpu(&mut self) { let mut a = 0; let mut b = 1; for _ in 0..self.iter { let tmp = a; a = b; - b = tmp + b; + b += tmp; } self.result = a; } @@ -40,7 +40,7 @@ impl Task for FibTask{ let result = u64::from_le_bytes(bytes[8..16].try_into().unwrap()); Self { iter, result } } - fn to_bytes(&self) -> &[u8] { + fn to_bytes(&self) -> Vec { let mut bytes = Vec::with_capacity(16); bytes.extend_from_slice(&self.iter.to_le_bytes()); bytes.extend_from_slice(&self.result.to_le_bytes()); From 62d3c26672b767da61cf330cf87fcf33afee212a Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 12 Sep 2024 17:08:31 +0100 Subject: [PATCH 011/163] bugfix --- src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index ccbb538..b76b5bf 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -21,8 +21,8 @@ pub enum Runner { CPU, } pub struct FibTask { - iter: u64, - result: u64, + pub iter: u64, + pub result: u64, } impl Task for FibTask { fn run_cpu(&mut self) { From 93bcbed3c80cb8b1e4649c99444a1329b8e05e4d Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 12 Sep 2024 17:29:42 +0100 Subject: [PATCH 012/163] added traits to Runner enum and FibTask --- src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib.rs b/src/lib.rs index b76b5bf..21d9f36 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -20,6 +20,7 @@ pub enum Runner { HIP, CPU, } +#[derive(Debug, Clone, Copy)] pub struct FibTask { pub iter: u64, pub result: u64, From fc675780e6950981d3d3441f154a788208663ff7 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 26 Oct 2024 10:57:53 +0100 Subject: [PATCH 013/163] huge progress on modules --- src/lib.rs | 46 ++++++++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 21d9f36..57a34ab 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,6 @@ -pub trait Task { +use std::{collections::HashMap, fmt::Debug, sync::Arc}; + +pub trait Task: Debug { fn run_hip(&mut self) { println!("HIP Runtime not available, falling back to CPU"); self.run_cpu(); @@ -12,7 +14,9 @@ pub trait Task { Some(Runner::CPU) | None => self.run_cpu(), } } - fn from_bytes(bytes: &[u8]) -> Self; + fn from_bytes(bytes: &[u8]) -> Self + where + Self: Sized; fn to_bytes(&self) -> Vec; } #[derive(Debug, Clone, Copy)] @@ -20,31 +24,21 @@ pub enum Runner { HIP, CPU, } -#[derive(Debug, Clone, Copy)] -pub struct FibTask { - pub iter: u64, - pub result: u64, + +pub trait TaskRegistry { + fn register(&mut self, task: Arc, mod_id: String, identifier: String); + fn get(&self, mod_id: String, identifier: String) -> Option<&dyn Task>; } -impl Task for FibTask { - fn run_cpu(&mut self) { - let mut a = 0; - let mut b = 1; - for _ in 0..self.iter { - let tmp = a; - a = b; - b += tmp; - } - self.result = a; - } - fn from_bytes(bytes: &[u8]) -> Self { - let iter = u64::from_le_bytes(bytes[0..8].try_into().unwrap()); - let result = u64::from_le_bytes(bytes[8..16].try_into().unwrap()); - Self { iter, result } +#[derive(Default, Clone)] +pub struct EngineTaskRegistry { + pub tasks: HashMap<(String, String), Arc>, +} +impl TaskRegistry for EngineTaskRegistry { + fn register(&mut self, task: Arc, mod_id: String, identifier: String) { + // Insert the task into the hashmap with (mod_id, identifier) as the key + self.tasks.insert((mod_id, identifier), task); } - fn to_bytes(&self) -> Vec { - let mut bytes = Vec::with_capacity(16); - bytes.extend_from_slice(&self.iter.to_le_bytes()); - bytes.extend_from_slice(&self.result.to_le_bytes()); - bytes + fn get(&self, mod_id: String, identifier: String) -> Option<&dyn Task> { + self.tasks.get(&(mod_id, identifier)).map(|t| &**t) } } From 02f91c73623834c9bef71b5221799396b01b6b93 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 3 Nov 2024 11:20:21 +0000 Subject: [PATCH 014/163] added support for encode/decode of the task reg --- Cargo.toml | 1 + src/lib.rs | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 05e9469..3bb7149 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,3 +10,4 @@ name = "test" path = "src/test.rs" [dependencies] +bincode = "1.3.3" diff --git a/src/lib.rs b/src/lib.rs index 57a34ab..2e8b1d5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -25,9 +25,11 @@ pub enum Runner { CPU, } -pub trait TaskRegistry { +pub trait TaskRegistry: Default + Clone { fn register(&mut self, task: Arc, mod_id: String, identifier: String); fn get(&self, mod_id: String, identifier: String) -> Option<&dyn Task>; + fn serialize(&self) -> Vec; + fn deserialize(bytes: &[u8]) -> Vec<(String, String)>; } #[derive(Default, Clone)] pub struct EngineTaskRegistry { @@ -41,4 +43,15 @@ impl TaskRegistry for EngineTaskRegistry { fn get(&self, mod_id: String, identifier: String) -> Option<&dyn Task> { self.tasks.get(&(mod_id, identifier)).map(|t| &**t) } + fn serialize(&self) -> Vec { + let keys = self + .tasks + .keys() + .cloned() + .collect::>(); + bincode::serialize(&keys).unwrap() + } + fn deserialize(bytes: &[u8]) -> Vec<(String, String)> { + bincode::deserialize(bytes).unwrap() + } } From 37ecd4d3663df04503dabc862c6d272762698456 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 3 Nov 2024 15:13:00 +0000 Subject: [PATCH 015/163] Huge! progress on events and the API --- Cargo.toml | 4 -- src/event.rs | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/lib.rs | 39 ++++++++--------- 3 files changed, 139 insertions(+), 24 deletions(-) create mode 100644 src/event.rs diff --git a/Cargo.toml b/Cargo.toml index 3bb7149..dd2e026 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,9 +5,5 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -[[bin]] -name = "test" -path = "src/test.rs" - [dependencies] bincode = "1.3.3" diff --git a/src/event.rs b/src/event.rs new file mode 100644 index 0000000..1d7939a --- /dev/null +++ b/src/event.rs @@ -0,0 +1,120 @@ +use crate::EngineTaskRegistry; +use crate::Identifier; +use crate::Registry; +use crate::VecRegistry; +use std::collections::HashMap; +use std::process; +use std::sync::Arc; +pub struct EngineAPI { + pub task_registry: EngineTaskRegistry, + pub event_bus: EventBus, +} + +pub struct EventBus { + pub event_registry: EngineEventRegistry, + pub event_handler_registry: EngineEventHandlerRegistry, +} + +pub trait Event { + fn cancel(&mut self); + fn is_cancelled(&self) -> bool; + fn get_id(&self) -> Identifier; +} + +pub trait EventHandler { + fn handle(&self, event: &mut Arc); +} + +#[derive(Default, Clone)] +pub struct EngineEventRegistry { + pub events: HashMap>, +} + +#[derive(Clone, Default)] +pub struct EngineEventHandlerRegistry { + pub event_handlers: HashMap>>, +} + +impl VecRegistry for EngineEventHandlerRegistry { + fn get(&self, identifier: &Identifier) -> Option>> { + self.event_handlers.get(identifier).cloned() + } + fn register(&mut self, registree: Arc, identifier: Identifier) { + let handlers = self.event_handlers.get(&identifier); + #[cfg(debug_assertions)] + println!("Registered Event Handler"); + if handlers.is_some() { + self.event_handlers + .get(&identifier) + .unwrap() + .clone() + .push(registree); + } else { + self.event_handlers.insert(identifier, vec![registree]); + } + } +} + +impl Registry for EngineEventRegistry { + fn register(&mut self, registree: Arc, identifier: Identifier) { + self.events.insert(identifier, registree); + } + + fn get(&self, identifier: &Identifier) -> Option> { + self.events.get(identifier).cloned() + } +} + +pub struct OnStartEvent { + pub modules: Vec, + pub cancelled: bool, + pub id: Identifier, +} + +impl Event for OnStartEvent { + fn cancel(&mut self) { + self.cancelled = true; + process::exit(0) + } + fn is_cancelled(&self) -> bool { + self.cancelled + } + fn get_id(&self) -> Identifier { + self.id.clone() + } +} +impl Default for EngineAPI { + fn default() -> Self { + Self { + task_registry: EngineTaskRegistry::default(), + event_bus: EventBus { + event_registry: EngineEventRegistry { + events: HashMap::new(), + }, + event_handler_registry: EngineEventHandlerRegistry { + event_handlers: HashMap::new(), + }, + }, + } + } +} + +impl EventBus { + pub fn handle(&self, id: Identifier, event: &mut Arc) { + #[cfg(debug_assertions)] + println!("Handling Event: {}:{}", id.0, id.1); + let handler = self.event_handler_registry.get(&id); + if handler.is_none() { + #[cfg(debug_assertions)] + println!("Empty Handler Vec"); + return; + } + for h in handler.unwrap() { + h.handle(event); + } + } + pub fn handle_default(&self, id: Identifier) { + let event = self.event_registry.get(&id); + self.handle(id, &mut event.unwrap()); + } +} diff --git a/src/lib.rs b/src/lib.rs index 2e8b1d5..dbb9a03 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,6 @@ use std::{collections::HashMap, fmt::Debug, sync::Arc}; +pub mod event; +pub type Identifier = (String, String); pub trait Task: Debug { fn run_hip(&mut self) { @@ -24,34 +26,31 @@ pub enum Runner { HIP, CPU, } - +pub trait Registry: Default + Clone { + fn register(&mut self, registree: Arc, identifier: Identifier); + fn get(&self, identifier: &Identifier) -> Option>; +} +pub trait VecRegistry: Default + Clone { + fn register(&mut self, registree: Arc, identifier: Identifier); + fn get(&self, identifier: &Identifier) -> Option>>; +} pub trait TaskRegistry: Default + Clone { - fn register(&mut self, task: Arc, mod_id: String, identifier: String); + fn register(&mut self, task: Arc, identifier: Identifier); fn get(&self, mod_id: String, identifier: String) -> Option<&dyn Task>; fn serialize(&self) -> Vec; - fn deserialize(bytes: &[u8]) -> Vec<(String, String)>; + fn deserialize(bytes: &[u8]) -> Vec; } #[derive(Default, Clone)] pub struct EngineTaskRegistry { - pub tasks: HashMap<(String, String), Arc>, + pub tasks: HashMap>, } -impl TaskRegistry for EngineTaskRegistry { - fn register(&mut self, task: Arc, mod_id: String, identifier: String) { +impl Registry for EngineTaskRegistry { + fn register(&mut self, task: Arc, identifier: Identifier) { // Insert the task into the hashmap with (mod_id, identifier) as the key - self.tasks.insert((mod_id, identifier), task); + self.tasks.insert(identifier, task); } - fn get(&self, mod_id: String, identifier: String) -> Option<&dyn Task> { - self.tasks.get(&(mod_id, identifier)).map(|t| &**t) - } - fn serialize(&self) -> Vec { - let keys = self - .tasks - .keys() - .cloned() - .collect::>(); - bincode::serialize(&keys).unwrap() - } - fn deserialize(bytes: &[u8]) -> Vec<(String, String)> { - bincode::deserialize(bytes).unwrap() + + fn get(&self, identifier: &Identifier) -> Option> { + self.tasks.get(identifier).cloned() } } From 624d5f6f51fe823567ff805e42ec1c08ccbbbad6 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 3 Nov 2024 15:13:00 +0000 Subject: [PATCH 016/163] Huge! progress on events and the API --- Cargo.toml | 13 ------------- README.md | 3 --- src/lib.rs | 57 ------------------------------------------------------ 3 files changed, 73 deletions(-) delete mode 100644 Cargo.toml delete mode 100644 README.md delete mode 100644 src/lib.rs diff --git a/Cargo.toml b/Cargo.toml deleted file mode 100644 index 3bb7149..0000000 --- a/Cargo.toml +++ /dev/null @@ -1,13 +0,0 @@ -[package] -name = "enginelib" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[[bin]] -name = "test" -path = "src/test.rs" - -[dependencies] -bincode = "1.3.3" diff --git a/README.md b/README.md deleted file mode 100644 index 837aa31..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# enginelib -The main library used by the GE engine, contains mostly boilerplate shared between server and client. -All rights reserved according to the GE engine licence. diff --git a/src/lib.rs b/src/lib.rs deleted file mode 100644 index 2e8b1d5..0000000 --- a/src/lib.rs +++ /dev/null @@ -1,57 +0,0 @@ -use std::{collections::HashMap, fmt::Debug, sync::Arc}; - -pub trait Task: Debug { - fn run_hip(&mut self) { - println!("HIP Runtime not available, falling back to CPU"); - self.run_cpu(); - } - fn run_cpu(&mut self) { - panic!("CPU run not Implemented"); - } - fn run(&mut self, run: Option) { - match run { - Some(Runner::HIP) => self.run_hip(), - Some(Runner::CPU) | None => self.run_cpu(), - } - } - fn from_bytes(bytes: &[u8]) -> Self - where - Self: Sized; - fn to_bytes(&self) -> Vec; -} -#[derive(Debug, Clone, Copy)] -pub enum Runner { - HIP, - CPU, -} - -pub trait TaskRegistry: Default + Clone { - fn register(&mut self, task: Arc, mod_id: String, identifier: String); - fn get(&self, mod_id: String, identifier: String) -> Option<&dyn Task>; - fn serialize(&self) -> Vec; - fn deserialize(bytes: &[u8]) -> Vec<(String, String)>; -} -#[derive(Default, Clone)] -pub struct EngineTaskRegistry { - pub tasks: HashMap<(String, String), Arc>, -} -impl TaskRegistry for EngineTaskRegistry { - fn register(&mut self, task: Arc, mod_id: String, identifier: String) { - // Insert the task into the hashmap with (mod_id, identifier) as the key - self.tasks.insert((mod_id, identifier), task); - } - fn get(&self, mod_id: String, identifier: String) -> Option<&dyn Task> { - self.tasks.get(&(mod_id, identifier)).map(|t| &**t) - } - fn serialize(&self) -> Vec { - let keys = self - .tasks - .keys() - .cloned() - .collect::>(); - bincode::serialize(&keys).unwrap() - } - fn deserialize(bytes: &[u8]) -> Vec<(String, String)> { - bincode::deserialize(bytes).unwrap() - } -} From e694d880e41417c101930baac66cd98a8aa0e19e Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 3 Nov 2024 23:09:33 +0000 Subject: [PATCH 017/163] fixed warn --- src/event.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/event.rs b/src/event.rs index 43fa0f4..2f7110d 100644 --- a/src/event.rs +++ b/src/event.rs @@ -1,7 +1,6 @@ use crate::EngineTaskRegistry; use crate::Identifier; use crate::Registry; -use crate::VecRegistry; use std::any::Any; use std::collections::HashMap; use std::process; @@ -16,6 +15,7 @@ pub trait EventCTX { fn get_event(event: &mut dyn Event) -> &mut T { event.as_any_mut().downcast_mut::().unwrap() } + #[allow(non_snake_case)] fn handleCTX(&self, event: &mut C); } From 6d42698cfb215e2738b6c0a30d9e9ceed13be3a8 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 4 Nov 2024 20:45:53 +0000 Subject: [PATCH 018/163] added a macro to reduce boilerplate --- src/event.rs | 24 +++++++++++++++++++++++- src/lib.rs | 2 +- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/event.rs b/src/event.rs index 2f7110d..6962329 100644 --- a/src/event.rs +++ b/src/event.rs @@ -1,6 +1,7 @@ use crate::EngineTaskRegistry; use crate::Identifier; use crate::Registry; +//use engine_derive; use std::any::Any; use std::collections::HashMap; use std::process; @@ -10,11 +11,32 @@ pub struct EngineAPI { pub task_registry: EngineTaskRegistry, pub event_bus: EventBus, } +#[macro_export] +macro_rules! BuildEventHandler { + ($handler:ident,$event:ty, $handler_fn:expr) => { + pub struct $handler; + impl EventHandler for $handler { + fn handle(&self, event: &mut dyn Event) { + let event: &mut $event = >::get_event::<$event>(event); + self.handleCTX(event); + } + } + impl EventCTX<$event> for $handler { + fn handleCTX(&self, event: &mut $event) { + $handler_fn(event) + } + } + }; +} -pub trait EventCTX { +pub trait EventCTX: EventHandler { fn get_event(event: &mut dyn Event) -> &mut T { event.as_any_mut().downcast_mut::().unwrap() } + fn handle(&self, event: &mut dyn Event) { + let event: &mut C = >::get_event::(event); + self.handleCTX(event); + } #[allow(non_snake_case)] fn handleCTX(&self, event: &mut C); } diff --git a/src/lib.rs b/src/lib.rs index 71c9a0e..d8725ac 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, fmt::Debug, sync::Arc}; pub mod event; pub type Identifier = (String, String); - +//pub use engine_derive; pub trait Task: Debug { fn run_hip(&mut self) { println!("HIP Runtime not available, falling back to CPU"); From f152a6f5aa31fe7f76b203c62de5d2c5d4597a46 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 5 Nov 2024 19:58:26 +0000 Subject: [PATCH 019/163] ctx passing safety --- src/event.rs | 15 +++++++++++++++ src/lib.rs | 8 ++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/event.rs b/src/event.rs index 6962329..e223644 100644 --- a/src/event.rs +++ b/src/event.rs @@ -27,6 +27,21 @@ macro_rules! BuildEventHandler { } } }; + ($handler:ident,$event:ty,$mod_data:expr, $handler_fn:expr) => { + pub struct $handler; + impl EventHandler for $handler { + fn handle(&self, event: &mut dyn Event) { + let event: &mut $event = >::get_event::<$event>(event); + self.handleCTX(event); + } + } + impl EventCTX<$event> for $handler { + fn handleCTX(&self, event: &mut $event) { + let mod_data = $mod_data; + $handler_fn(event) + } + } + }; } pub trait EventCTX: EventHandler { diff --git a/src/lib.rs b/src/lib.rs index d8725ac..76bc9c5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,8 +1,12 @@ use std::{collections::HashMap, fmt::Debug, sync::Arc}; pub mod event; pub type Identifier = (String, String); +pub struct ModCTX { + pub mod_id: String, + pub mod_author: String, +} //pub use engine_derive; -pub trait Task: Debug { +pub trait Task: Debug + Sync + Send { fn run_hip(&mut self) { println!("HIP Runtime not available, falling back to CPU"); self.run_cpu(); @@ -40,7 +44,7 @@ pub trait TaskRegistry: Default + Clone { fn serialize(&self) -> Vec; fn deserialize(bytes: &[u8]) -> Vec; } -#[derive(Default, Clone)] +#[derive(Default, Clone, Debug)] pub struct EngineTaskRegistry { pub tasks: HashMap>, } From 9f5c61afdc92a77dcebe9cb19488f3eef7a7404c Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 5 Nov 2024 20:03:55 +0000 Subject: [PATCH 020/163] mod ctx --- src/lib.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 76bc9c5..a101319 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,10 +1,21 @@ use std::{collections::HashMap, fmt::Debug, sync::Arc}; pub mod event; pub type Identifier = (String, String); +#[derive(Debug, Clone, Default)] pub struct ModCTX { pub mod_id: String, pub mod_author: String, + //pub rustc_version: String, + pub mod_name: String, + pub mod_version: String, + pub mod_description: String, + pub mod_license: String, + pub mod_credits: String, + pub mod_dependencies: Vec, + pub mod_display_url: String, + pub mod_issue_tracker: String, } + //pub use engine_derive; pub trait Task: Debug + Sync + Send { fn run_hip(&mut self) { From 976ef17186b010cbb499bbff2814e4faf9485c40 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 5 Nov 2024 20:15:29 +0000 Subject: [PATCH 021/163] modifid macro allowing for event modctx --- src/event.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/event.rs b/src/event.rs index e223644..9b99eb9 100644 --- a/src/event.rs +++ b/src/event.rs @@ -27,8 +27,15 @@ macro_rules! BuildEventHandler { } } }; - ($handler:ident,$event:ty,$mod_data:expr, $handler_fn:expr) => { - pub struct $handler; + ($handler:ident,$event:ty,$mod_ctx:expr, $handler_fn:expr) => { + pub struct $handler { + mod_ctx: ModCTX, + }; + impl $handler { + pub fn new(mod_ctx: ModCTX) -> Self { + Self { mod_ctx } + } + } impl EventHandler for $handler { fn handle(&self, event: &mut dyn Event) { let event: &mut $event = >::get_event::<$event>(event); @@ -37,7 +44,7 @@ macro_rules! BuildEventHandler { } impl EventCTX<$event> for $handler { fn handleCTX(&self, event: &mut $event) { - let mod_data = $mod_data; + let mod_data: &ModCTX = &self.mod_ctx; $handler_fn(event) } } From 13c58272b3e79c774538cd94bb2a6a988b0fba84 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 5 Nov 2024 20:33:09 +0000 Subject: [PATCH 022/163] slight upgrade to event ctx --- src/event.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/event.rs b/src/event.rs index 9b99eb9..9a7921f 100644 --- a/src/event.rs +++ b/src/event.rs @@ -44,8 +44,8 @@ macro_rules! BuildEventHandler { } impl EventCTX<$event> for $handler { fn handleCTX(&self, event: &mut $event) { - let mod_data: &ModCTX = &self.mod_ctx; - $handler_fn(event) + let mod_ctx: &ModCTX = &self.mod_ctx; + $handler_fn(event, mod_ctx.clone()) } } }; From a506f1801f5e24dd470af4a673d09653a1287b55 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 5 Nov 2024 21:16:08 +0000 Subject: [PATCH 023/163] format --- src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib.rs b/src/lib.rs index a101319..d297f70 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,6 @@ use std::{collections::HashMap, fmt::Debug, sync::Arc}; pub mod event; + pub type Identifier = (String, String); #[derive(Debug, Clone, Default)] pub struct ModCTX { From e8e854bf9bb445f65d90c4372c11843e17b933d8 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 25 Nov 2024 07:31:53 +0000 Subject: [PATCH 024/163] buz --- Cargo.toml | 2 ++ src/lib.rs | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index dd2e026..77a718c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,3 +7,5 @@ edition = "2021" [dependencies] bincode = "1.3.3" +log = "0.4.22" +pretty_env_logger = "0.5.0" diff --git a/src/lib.rs b/src/lib.rs index d297f70..73501ea 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,7 @@ -use std::{collections::HashMap, fmt::Debug, sync::Arc}; +use std::{collections::HashMap, fmt::Debug, ops::DerefMut, sync::Arc}; pub mod event; +#[macro_use] +extern crate log; pub type Identifier = (String, String); #[derive(Debug, Clone, Default)] @@ -24,7 +26,7 @@ pub trait Task: Debug + Sync + Send { self.run_cpu(); } fn run_cpu(&mut self) { - panic!("CPU run not Implemented"); + error!("CPU run not Implemented") } fn run(&mut self, run: Option) { match run { @@ -32,7 +34,7 @@ pub trait Task: Debug + Sync + Send { Some(Runner::CPU) | None => self.run_cpu(), } } - fn from_bytes(bytes: &[u8]) -> Self + fn from_bytes(&self, bytes: &[u8]) -> Self where Self: Sized; fn to_bytes(&self) -> Vec; From 67cebb6f0abb4c1a4da3805d2f7d22e01663f041 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 26 Nov 2024 19:36:49 +0000 Subject: [PATCH 025/163] allow for cloning --- src/event.rs | 18 +++++++++++++----- src/lib.rs | 21 ++++++++++++++------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/event.rs b/src/event.rs index 9a7921f..e512a94 100644 --- a/src/event.rs +++ b/src/event.rs @@ -1,7 +1,6 @@ use crate::EngineTaskRegistry; use crate::Identifier; use crate::Registry; -//use engine_derive; use std::any::Any; use std::collections::HashMap; use std::process; @@ -69,6 +68,7 @@ pub struct EventBus { } pub trait Event: Any + Send + Sync { + fn clone_box(&self) -> Box; fn cancel(&mut self); fn is_cancelled(&self) -> bool; fn get_id(&self) -> Identifier; @@ -103,18 +103,22 @@ impl EngineEventHandlerRegistry { println!("Handler registered for event ID: {:?}", identifier.clone()); } } - +impl Clone for Box { + fn clone(&self) -> Box { + self.clone_box() + } +} impl Registry for EngineEventRegistry { fn register(&mut self, registree: Arc, identifier: Identifier) { self.events.insert(identifier.clone(), registree); println!("Event registered with ID: {:?}", identifier.clone()); } - fn get(&self, identifier: &Identifier) -> Option> { - self.events.get(identifier).cloned() + fn get(&self, identifier: &Identifier) -> Option> { + self.events.get(identifier).map(|obj| obj.clone_box()) } } - +#[derive(Clone)] pub struct OnStartEvent { pub modules: Vec, pub cancelled: bool, @@ -122,6 +126,10 @@ pub struct OnStartEvent { } impl Event for OnStartEvent { + fn clone_box(&self) -> Box { + Box::new(self.clone()) + } + fn cancel(&mut self) { self.cancelled = true; process::exit(0) diff --git a/src/lib.rs b/src/lib.rs index 73501ea..f3d13aa 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,6 @@ -use std::{collections::HashMap, fmt::Debug, ops::DerefMut, sync::Arc}; +use std::{collections::HashMap, fmt::Debug, sync::Arc}; pub mod event; +extern crate pretty_env_logger; #[macro_use] extern crate log; @@ -18,15 +19,21 @@ pub struct ModCTX { pub mod_display_url: String, pub mod_issue_tracker: String, } - +impl Clone for Box { + fn clone(&self) -> Box { + self.clone_box() + } +} //pub use engine_derive; pub trait Task: Debug + Sync + Send { + fn clone_box(&self) -> Box; fn run_hip(&mut self) { println!("HIP Runtime not available, falling back to CPU"); self.run_cpu(); } fn run_cpu(&mut self) { - error!("CPU run not Implemented") + println!("hi!"); + panic!("CPU run not Implemented"); } fn run(&mut self, run: Option) { match run { @@ -34,7 +41,7 @@ pub trait Task: Debug + Sync + Send { Some(Runner::CPU) | None => self.run_cpu(), } } - fn from_bytes(&self, bytes: &[u8]) -> Self + fn from_bytes(bytes: &[u8]) -> Self where Self: Sized; fn to_bytes(&self) -> Vec; @@ -46,7 +53,7 @@ pub enum Runner { } pub trait Registry: Default + Clone { fn register(&mut self, registree: Arc, identifier: Identifier); - fn get(&self, identifier: &Identifier) -> Option>; + fn get(&self, identifier: &Identifier) -> Option>; } pub trait VecRegistry: Default + Clone { fn register(&mut self, registree: H, identifier: Identifier); @@ -68,7 +75,7 @@ impl Registry for EngineTaskRegistry { self.tasks.insert(identifier, task); } - fn get(&self, identifier: &Identifier) -> Option> { - self.tasks.get(identifier).cloned() + fn get(&self, identifier: &Identifier) -> Option> { + self.tasks.get(identifier).map(|obj| obj.clone_box()) } } From c030c0108367020711ce2f8ab7408636f91b34f3 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 26 Nov 2024 19:42:12 +0000 Subject: [PATCH 026/163] upped my iq --- src/event.rs | 2 ++ src/lib.rs | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/event.rs b/src/event.rs index e512a94..efa3b5a 100644 --- a/src/event.rs +++ b/src/event.rs @@ -10,6 +10,8 @@ pub struct EngineAPI { pub task_registry: EngineTaskRegistry, pub event_bus: EventBus, } +// The Actual Fuck +// this fucking piece of god given code saves so much time #[macro_export] macro_rules! BuildEventHandler { ($handler:ident,$event:ty, $handler_fn:expr) => { diff --git a/src/lib.rs b/src/lib.rs index f3d13aa..5fcee16 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -32,7 +32,7 @@ pub trait Task: Debug + Sync + Send { self.run_cpu(); } fn run_cpu(&mut self) { - println!("hi!"); + error!("CPU run not Implemented"); panic!("CPU run not Implemented"); } fn run(&mut self, run: Option) { From ea7238b8ba6ca522024136ef7bd8803fa0f28f7b Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 27 Nov 2024 17:42:35 +0000 Subject: [PATCH 027/163] working on logs --- Cargo.toml | 3 ++- src/event.rs | 16 +++++++++++++++- src/lib.rs | 8 +++----- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 77a718c..61cbccf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,5 +7,6 @@ edition = "2021" [dependencies] bincode = "1.3.3" +fern = "0.7.0" +humantime = "2.1.0" log = "0.4.22" -pretty_env_logger = "0.5.0" diff --git a/src/event.rs b/src/event.rs index efa3b5a..3b9d350 100644 --- a/src/event.rs +++ b/src/event.rs @@ -5,7 +5,6 @@ use std::any::Any; use std::collections::HashMap; use std::process; use std::sync::Arc; - pub struct EngineAPI { pub task_registry: EngineTaskRegistry, pub event_bus: EventBus, @@ -153,6 +152,21 @@ impl Event for OnStartEvent { impl Default for EngineAPI { fn default() -> Self { + //Init Logger Here + fern::Dispatch::new() + .format(|out, message, record| { + out.finish(format_args!( + "[{} {} {}] {}", + humantime::format_rfc3339(std::time::SystemTime::now()), + record.level(), + record.target(), + message + )) + }) + .level(log::LevelFilter::Info) + .chain(std::io::stdout()) + .apply() + .unwrap(); Self { task_registry: EngineTaskRegistry::default(), event_bus: EventBus { diff --git a/src/lib.rs b/src/lib.rs index 5fcee16..42053b5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,9 +1,6 @@ use std::{collections::HashMap, fmt::Debug, sync::Arc}; pub mod event; -extern crate pretty_env_logger; -#[macro_use] -extern crate log; - +use log::{debug, error, info, trace, warn}; pub type Identifier = (String, String); #[derive(Debug, Clone, Default)] pub struct ModCTX { @@ -33,7 +30,8 @@ pub trait Task: Debug + Sync + Send { } fn run_cpu(&mut self) { error!("CPU run not Implemented"); - panic!("CPU run not Implemented"); + println!("Hi Mom!") + //panic!("CPU run not Implemented"); } fn run(&mut self, run: Option) { match run { From 952bce8049832498dca6b1f91f2e7e0bb994a071 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 27 Nov 2024 19:09:13 +0000 Subject: [PATCH 028/163] logging --- Cargo.toml | 5 ++--- src/event.rs | 44 ++++++++++++++++++++++++++++---------------- src/lib.rs | 12 ++++++++++-- 3 files changed, 40 insertions(+), 21 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 61cbccf..e3851a9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,5 @@ edition = "2021" [dependencies] bincode = "1.3.3" -fern = "0.7.0" -humantime = "2.1.0" -log = "0.4.22" +tracing = "0.1.41" +tracing-subscriber = "0.3.18" diff --git a/src/event.rs b/src/event.rs index 3b9d350..a2fcdd0 100644 --- a/src/event.rs +++ b/src/event.rs @@ -1,14 +1,18 @@ use crate::EngineTaskRegistry; use crate::Identifier; +use crate::ModCTX; use crate::Registry; use std::any::Any; use std::collections::HashMap; use std::process; use std::sync::Arc; +use tracing::{span, Level}; pub struct EngineAPI { pub task_registry: EngineTaskRegistry, pub event_bus: EventBus, + pub modules: HashMap>, } +pub use tracing::{debug, error, event, info, warn}; // The Actual Fuck // this fucking piece of god given code saves so much time #[macro_export] @@ -121,7 +125,7 @@ impl Registry for EngineEventRegistry { } #[derive(Clone)] pub struct OnStartEvent { - pub modules: Vec, + pub modules: Vec>, pub cancelled: bool, pub id: Identifier, } @@ -153,20 +157,13 @@ impl Event for OnStartEvent { impl Default for EngineAPI { fn default() -> Self { //Init Logger Here - fern::Dispatch::new() - .format(|out, message, record| { - out.finish(format_args!( - "[{} {} {}] {}", - humantime::format_rfc3339(std::time::SystemTime::now()), - record.level(), - record.target(), - message - )) - }) - .level(log::LevelFilter::Info) - .chain(std::io::stdout()) - .apply() - .unwrap(); + tracing_subscriber::FmtSubscriber::builder() + // all spans/events with a level higher than TRACE (e.g, debug, info, warn, etc.) + // will be written to stdout. + .with_max_level(Level::INFO) + // builds the subscriber. + .init(); + Self { task_registry: EngineTaskRegistry::default(), event_bus: EventBus { @@ -177,10 +174,25 @@ impl Default for EngineAPI { event_handlers: HashMap::new(), }, }, + modules: HashMap::new(), } } } - +impl EngineAPI { + pub fn register_module(&mut self, ctx: ModCTX) -> ModCTX { + self.modules + .insert(ctx.clone().mod_id, Arc::new(ctx.clone())); + ctx + } + pub fn setup_logger() { + tracing_subscriber::FmtSubscriber::builder() + // all spans/events with a level higher than TRACE (e.g, debug, info, warn, etc.) + // will be written to stdout. + .with_max_level(Level::INFO) + // builds the subscriber. + .init(); + } +} impl EventBus { pub fn handle(&self, id: Identifier, event: &mut T) { #[cfg(debug_assertions)] diff --git a/src/lib.rs b/src/lib.rs index 42053b5..d454375 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,10 @@ use std::{collections::HashMap, fmt::Debug, sync::Arc}; + +use tracing::event as tevent; +use tracing::instrument; +use tracing::Level; pub mod event; -use log::{debug, error, info, trace, warn}; + pub type Identifier = (String, String); #[derive(Debug, Clone, Default)] pub struct ModCTX { @@ -22,17 +26,21 @@ impl Clone for Box { } } //pub use engine_derive; + pub trait Task: Debug + Sync + Send { fn clone_box(&self) -> Box; + #[instrument] fn run_hip(&mut self) { println!("HIP Runtime not available, falling back to CPU"); self.run_cpu(); } + #[instrument] fn run_cpu(&mut self) { - error!("CPU run not Implemented"); + tevent!(Level::ERROR, "CPU run not Implemented"); println!("Hi Mom!") //panic!("CPU run not Implemented"); } + #[instrument] fn run(&mut self, run: Option) { match run { Some(Runner::HIP) => self.run_hip(), From 4d26ad2007d91fcfb575ce1399071f57a4005c31 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 7 Dec 2024 19:47:28 +0000 Subject: [PATCH 029/163] organized and started on cfg --- Cargo.toml | 2 ++ src/api.rs | 53 +++++++++++++++++++++++++++++ src/event.rs | 46 +------------------------ src/events/OnStartEvent.rs | 30 ++++++++++++++++ src/lib.rs | 70 +++----------------------------------- src/prelude.rs | 0 src/task.rs | 64 ++++++++++++++++++++++++++++++++++ 7 files changed, 154 insertions(+), 111 deletions(-) create mode 100644 src/api.rs create mode 100644 src/events/OnStartEvent.rs create mode 100644 src/prelude.rs create mode 100644 src/task.rs diff --git a/Cargo.toml b/Cargo.toml index e3851a9..76863e7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,5 +7,7 @@ edition = "2021" [dependencies] bincode = "1.3.3" +directories = "5.0.1" +toml = "0.8.19" tracing = "0.1.41" tracing-subscriber = "0.3.18" diff --git a/src/api.rs b/src/api.rs new file mode 100644 index 0000000..6c40486 --- /dev/null +++ b/src/api.rs @@ -0,0 +1,53 @@ +use tracing::Level; + +use crate::{ + event::{EngineEventHandlerRegistry, EngineEventRegistry, EventBus}, + task::EngineTaskRegistry, + ModCTX, +}; +use std::{collections::HashMap, sync::Arc}; + +pub struct EngineAPI { + pub task_registry: EngineTaskRegistry, + pub event_bus: EventBus, + pub modules: HashMap>, +} +impl Default for EngineAPI { + fn default() -> Self { + //Init Logger Here + tracing_subscriber::FmtSubscriber::builder() + // all spans/events with a level higher than TRACE (e.g, debug, info, warn, etc.) + // will be written to stdout. + .with_max_level(Level::INFO) + // builds the subscriber. + .init(); + + Self { + task_registry: EngineTaskRegistry::default(), + event_bus: EventBus { + event_registry: EngineEventRegistry { + events: HashMap::new(), + }, + event_handler_registry: EngineEventHandlerRegistry { + event_handlers: HashMap::new(), + }, + }, + modules: HashMap::new(), + } + } +} +impl EngineAPI { + pub fn register_module(&mut self, ctx: ModCTX) -> ModCTX { + self.modules + .insert(ctx.clone().mod_id, Arc::new(ctx.clone())); + ctx + } + pub fn setup_logger() { + tracing_subscriber::FmtSubscriber::builder() + // all spans/events with a level higher than TRACE (e.g, debug, info, warn, etc.) + // will be written to stdout. + .with_max_level(Level::INFO) + // builds the subscriber. + .init(); + } +} diff --git a/src/event.rs b/src/event.rs index a2fcdd0..4b15443 100644 --- a/src/event.rs +++ b/src/event.rs @@ -1,4 +1,3 @@ -use crate::EngineTaskRegistry; use crate::Identifier; use crate::ModCTX; use crate::Registry; @@ -7,11 +6,7 @@ use std::collections::HashMap; use std::process; use std::sync::Arc; use tracing::{span, Level}; -pub struct EngineAPI { - pub task_registry: EngineTaskRegistry, - pub event_bus: EventBus, - pub modules: HashMap>, -} + pub use tracing::{debug, error, event, info, warn}; // The Actual Fuck // this fucking piece of god given code saves so much time @@ -154,45 +149,6 @@ impl Event for OnStartEvent { } } -impl Default for EngineAPI { - fn default() -> Self { - //Init Logger Here - tracing_subscriber::FmtSubscriber::builder() - // all spans/events with a level higher than TRACE (e.g, debug, info, warn, etc.) - // will be written to stdout. - .with_max_level(Level::INFO) - // builds the subscriber. - .init(); - - Self { - task_registry: EngineTaskRegistry::default(), - event_bus: EventBus { - event_registry: EngineEventRegistry { - events: HashMap::new(), - }, - event_handler_registry: EngineEventHandlerRegistry { - event_handlers: HashMap::new(), - }, - }, - modules: HashMap::new(), - } - } -} -impl EngineAPI { - pub fn register_module(&mut self, ctx: ModCTX) -> ModCTX { - self.modules - .insert(ctx.clone().mod_id, Arc::new(ctx.clone())); - ctx - } - pub fn setup_logger() { - tracing_subscriber::FmtSubscriber::builder() - // all spans/events with a level higher than TRACE (e.g, debug, info, warn, etc.) - // will be written to stdout. - .with_max_level(Level::INFO) - // builds the subscriber. - .init(); - } -} impl EventBus { pub fn handle(&self, id: Identifier, event: &mut T) { #[cfg(debug_assertions)] diff --git a/src/events/OnStartEvent.rs b/src/events/OnStartEvent.rs new file mode 100644 index 0000000..d014666 --- /dev/null +++ b/src/events/OnStartEvent.rs @@ -0,0 +1,30 @@ +#[derive(Clone)] +pub struct OnStartEvent { + pub modules: Vec>, + pub cancelled: bool, + pub id: Identifier, +} + +impl Event for OnStartEvent { + fn clone_box(&self) -> Box { + Box::new(self.clone()) + } + + fn cancel(&mut self) { + self.cancelled = true; + process::exit(0) + } + fn is_cancelled(&self) -> bool { + self.cancelled + } + fn get_id(&self) -> Identifier { + self.id.clone() + } + fn as_any(&self) -> &dyn Any { + self + } + + fn as_any_mut(&mut self) -> &mut dyn Any { + self + } +} diff --git a/src/lib.rs b/src/lib.rs index d454375..e948ca6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,10 +1,9 @@ -use std::{collections::HashMap, fmt::Debug, sync::Arc}; - -use tracing::event as tevent; -use tracing::instrument; -use tracing::Level; +use std::{fmt::Debug, sync::Arc}; +pub mod api; pub mod event; +pub mod prelude; +pub mod task; pub type Identifier = (String, String); #[derive(Debug, Clone, Default)] pub struct ModCTX { @@ -20,68 +19,7 @@ pub struct ModCTX { pub mod_display_url: String, pub mod_issue_tracker: String, } -impl Clone for Box { - fn clone(&self) -> Box { - self.clone_box() - } -} -//pub use engine_derive; - -pub trait Task: Debug + Sync + Send { - fn clone_box(&self) -> Box; - #[instrument] - fn run_hip(&mut self) { - println!("HIP Runtime not available, falling back to CPU"); - self.run_cpu(); - } - #[instrument] - fn run_cpu(&mut self) { - tevent!(Level::ERROR, "CPU run not Implemented"); - println!("Hi Mom!") - //panic!("CPU run not Implemented"); - } - #[instrument] - fn run(&mut self, run: Option) { - match run { - Some(Runner::HIP) => self.run_hip(), - Some(Runner::CPU) | None => self.run_cpu(), - } - } - fn from_bytes(bytes: &[u8]) -> Self - where - Self: Sized; - fn to_bytes(&self) -> Vec; -} -#[derive(Debug, Clone, Copy)] -pub enum Runner { - HIP, - CPU, -} pub trait Registry: Default + Clone { fn register(&mut self, registree: Arc, identifier: Identifier); fn get(&self, identifier: &Identifier) -> Option>; } -pub trait VecRegistry: Default + Clone { - fn register(&mut self, registree: H, identifier: Identifier); - fn get(&self, identifier: &Identifier) -> Option>>; -} -pub trait TaskRegistry: Default + Clone { - fn register(&mut self, task: Arc, identifier: Identifier); - fn get(&self, mod_id: String, identifier: String) -> Option<&dyn Task>; - fn serialize(&self) -> Vec; - fn deserialize(bytes: &[u8]) -> Vec; -} -#[derive(Default, Clone, Debug)] -pub struct EngineTaskRegistry { - pub tasks: HashMap>, -} -impl Registry for EngineTaskRegistry { - fn register(&mut self, task: Arc, identifier: Identifier) { - // Insert the task into the hashmap with (mod_id, identifier) as the key - self.tasks.insert(identifier, task); - } - - fn get(&self, identifier: &Identifier) -> Option> { - self.tasks.get(identifier).map(|obj| obj.clone_box()) - } -} diff --git a/src/prelude.rs b/src/prelude.rs new file mode 100644 index 0000000..e69de29 diff --git a/src/task.rs b/src/task.rs new file mode 100644 index 0000000..e4c89cd --- /dev/null +++ b/src/task.rs @@ -0,0 +1,64 @@ +use std::{collections::HashMap, fmt::Debug, sync::Arc}; + +use crate::Identifier; +use crate::Registry; +use tracing::event as tevent; +use tracing::instrument; +use tracing::Level; + +pub trait Task: Debug + Sync + Send { + fn clone_box(&self) -> Box; + #[instrument] + fn run_hip(&mut self) { + println!("HIP Runtime not available, falling back to CPU"); + self.run_cpu(); + } + #[instrument] + fn run_cpu(&mut self) { + tevent!(Level::ERROR, "CPU run not Implemented"); + println!("Hi Mom!") + //panic!("CPU run not Implemented"); + } + #[instrument] + fn run(&mut self, run: Option) { + match run { + Some(Runner::HIP) => self.run_hip(), + Some(Runner::CPU) | None => self.run_cpu(), + } + } + fn from_bytes(bytes: &[u8]) -> Self + where + Self: Sized; + fn to_bytes(&self) -> Vec; +} +#[derive(Debug, Clone, Copy)] +pub enum Runner { + HIP, + CPU, +} + +pub trait TaskRegistry: Default + Clone { + fn register(&mut self, task: Arc, identifier: Identifier); + fn get(&self, mod_id: String, identifier: String) -> Option<&dyn Task>; + fn serialize(&self) -> Vec; + fn deserialize(bytes: &[u8]) -> Vec; +} +#[derive(Default, Clone, Debug)] +pub struct EngineTaskRegistry { + pub tasks: HashMap>, +} +impl Registry for EngineTaskRegistry { + fn register(&mut self, task: Arc, identifier: Identifier) { + // Insert the task into the hashmap with (mod_id, identifier) as the key + self.tasks.insert(identifier, task); + } + + fn get(&self, identifier: &Identifier) -> Option> { + self.tasks.get(identifier).map(|obj| obj.clone_box()) + } +} +impl Clone for Box { + fn clone(&self) -> Box { + self.clone_box() + } +} From 4b6439d6f4f399e2d2af4e486a4fc4578c624533 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 7 Dec 2024 20:23:31 +0000 Subject: [PATCH 030/163] smthg i guess --- src/api.rs | 18 ++++++++- src/event.rs | 40 ------------------- src/events/mod.rs | 1 + .../{OnStartEvent.rs => start_event.rs} | 8 +++- src/lib.rs | 3 +- src/macros.rs | 39 ++++++++++++++++++ src/task.rs | 16 +------- 7 files changed, 65 insertions(+), 60 deletions(-) create mode 100644 src/events/mod.rs rename src/events/{OnStartEvent.rs => start_event.rs} (78%) create mode 100644 src/macros.rs diff --git a/src/api.rs b/src/api.rs index 6c40486..465f0f0 100644 --- a/src/api.rs +++ b/src/api.rs @@ -2,8 +2,8 @@ use tracing::Level; use crate::{ event::{EngineEventHandlerRegistry, EngineEventRegistry, EventBus}, - task::EngineTaskRegistry, - ModCTX, + task::Task, + Identifier, ModCTX, Registry, }; use std::{collections::HashMap, sync::Arc}; @@ -51,3 +51,17 @@ impl EngineAPI { .init(); } } +#[derive(Default, Clone, Debug)] +pub struct EngineTaskRegistry { + pub tasks: HashMap>, +} +impl Registry for EngineTaskRegistry { + fn register(&mut self, task: Arc, identifier: Identifier) { + // Insert the task into the hashmap with (mod_id, identifier) as the key + self.tasks.insert(identifier, task); + } + + fn get(&self, identifier: &Identifier) -> Option> { + self.tasks.get(identifier).map(|obj| obj.clone_box()) + } +} diff --git a/src/event.rs b/src/event.rs index 4b15443..1f37f71 100644 --- a/src/event.rs +++ b/src/event.rs @@ -5,50 +5,10 @@ use std::any::Any; use std::collections::HashMap; use std::process; use std::sync::Arc; -use tracing::{span, Level}; pub use tracing::{debug, error, event, info, warn}; // The Actual Fuck // this fucking piece of god given code saves so much time -#[macro_export] -macro_rules! BuildEventHandler { - ($handler:ident,$event:ty, $handler_fn:expr) => { - pub struct $handler; - impl EventHandler for $handler { - fn handle(&self, event: &mut dyn Event) { - let event: &mut $event = >::get_event::<$event>(event); - self.handleCTX(event); - } - } - impl EventCTX<$event> for $handler { - fn handleCTX(&self, event: &mut $event) { - $handler_fn(event) - } - } - }; - ($handler:ident,$event:ty,$mod_ctx:expr, $handler_fn:expr) => { - pub struct $handler { - mod_ctx: ModCTX, - }; - impl $handler { - pub fn new(mod_ctx: ModCTX) -> Self { - Self { mod_ctx } - } - } - impl EventHandler for $handler { - fn handle(&self, event: &mut dyn Event) { - let event: &mut $event = >::get_event::<$event>(event); - self.handleCTX(event); - } - } - impl EventCTX<$event> for $handler { - fn handleCTX(&self, event: &mut $event) { - let mod_ctx: &ModCTX = &self.mod_ctx; - $handler_fn(event, mod_ctx.clone()) - } - } - }; -} pub trait EventCTX: EventHandler { fn get_event(event: &mut dyn Event) -> &mut T { diff --git a/src/events/mod.rs b/src/events/mod.rs new file mode 100644 index 0000000..ef7d7d8 --- /dev/null +++ b/src/events/mod.rs @@ -0,0 +1 @@ +pub mod start_event; diff --git a/src/events/OnStartEvent.rs b/src/events/start_event.rs similarity index 78% rename from src/events/OnStartEvent.rs rename to src/events/start_event.rs index d014666..a34a600 100644 --- a/src/events/OnStartEvent.rs +++ b/src/events/start_event.rs @@ -1,11 +1,15 @@ +use std::{any::Any, process, sync::Arc}; + +use crate::{event::Event, Identifier, ModCTX}; + #[derive(Clone)] -pub struct OnStartEvent { +pub struct StartEvent { pub modules: Vec>, pub cancelled: bool, pub id: Identifier, } -impl Event for OnStartEvent { +impl Event for StartEvent { fn clone_box(&self) -> Box { Box::new(self.clone()) } diff --git a/src/lib.rs b/src/lib.rs index e948ca6..8e45992 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,7 +1,8 @@ use std::{fmt::Debug, sync::Arc}; pub mod api; pub mod event; - +pub mod events; +pub mod macros; pub mod prelude; pub mod task; pub type Identifier = (String, String); diff --git a/src/macros.rs b/src/macros.rs new file mode 100644 index 0000000..e7b8a37 --- /dev/null +++ b/src/macros.rs @@ -0,0 +1,39 @@ +#[macro_export] +macro_rules! BuildEventHandler { + ($handler:ident,$event:ty, $handler_fn:expr) => { + pub struct $handler; + impl EventHandler for $handler { + fn handle(&self, event: &mut dyn Event) { + let event: &mut $event = >::get_event::<$event>(event); + self.handleCTX(event); + } + } + impl EventCTX<$event> for $handler { + fn handleCTX(&self, event: &mut $event) { + $handler_fn(event) + } + } + }; + ($handler:ident,$event:ty,$mod_ctx:expr, $handler_fn:expr) => { + pub struct $handler { + mod_ctx: ModCTX, + }; + impl $handler { + pub fn new(mod_ctx: ModCTX) -> Self { + Self { mod_ctx } + } + } + impl EventHandler for $handler { + fn handle(&self, event: &mut dyn Event) { + let event: &mut $event = >::get_event::<$event>(event); + self.handleCTX(event); + } + } + impl EventCTX<$event> for $handler { + fn handleCTX(&self, event: &mut $event) { + let mod_ctx: &ModCTX = &self.mod_ctx; + $handler_fn(event, mod_ctx.clone()) + } + } + }; +} diff --git a/src/task.rs b/src/task.rs index e4c89cd..d56af44 100644 --- a/src/task.rs +++ b/src/task.rs @@ -1,7 +1,6 @@ -use std::{collections::HashMap, fmt::Debug, sync::Arc}; +use std::{fmt::Debug, sync::Arc}; use crate::Identifier; -use crate::Registry; use tracing::event as tevent; use tracing::instrument; use tracing::Level; @@ -43,20 +42,7 @@ pub trait TaskRegistry: Default + Clone { fn serialize(&self) -> Vec; fn deserialize(bytes: &[u8]) -> Vec; } -#[derive(Default, Clone, Debug)] -pub struct EngineTaskRegistry { - pub tasks: HashMap>, -} -impl Registry for EngineTaskRegistry { - fn register(&mut self, task: Arc, identifier: Identifier) { - // Insert the task into the hashmap with (mod_id, identifier) as the key - self.tasks.insert(identifier, task); - } - fn get(&self, identifier: &Identifier) -> Option> { - self.tasks.get(identifier).map(|obj| obj.clone_box()) - } -} impl Clone for Box { fn clone(&self) -> Box { self.clone_box() From 7db3f564e37087920ece8a654642077c1fd0c20e Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 8 Dec 2024 00:48:03 +0000 Subject: [PATCH 031/163] idk --- LICENSE.md | 33 +++++++++++++++++++++++++++++++++ src/api.rs | 1 + src/event.rs | 21 +++++++++++---------- src/task.rs | 2 +- 4 files changed, 46 insertions(+), 11 deletions(-) create mode 100644 LICENSE.md diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..5d15248 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,33 @@ +# Grand Engineering License +## Terms +This licence will use the term GE to refer to GrandEngineering. +## License & Use +[GE](https://github.com/GrandEngineering) reserve all rights and [GE](https://github.com/GrandEngineering) also reserves the rights to restrain individuals abilities to use this software and its code. The points below outline what you can, cannot and must do when dealing with the +contents of this repository. Licenses for commercial use can only be granted by [GE](https://github.com/GrandEngineering) +### You CAN +* Write your own code that uses this code as a dependency. +* Submit Pull Requests to this repository. +* Use this software for research. +* Fork and modify the code as long as modifications are distributed publicly. + +### You CANNOT +* Claim this software as your own. +* Use this SOFTWARE commercially/for profit without a License given by [GE](https://github.com/GrandEngineering) +* Share this software without express permission from [GE](https://github.com/GrandEngineering) in the form of a License. +* Distribute modifications of this software without giving credit to [GE](https://github.com/GrandEngineering) +* Use this software in a way that damages other humans. + +### Disclaimer + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +### Licences +Licenses are granted on a individual entity basis, for person or entity, if you require a license please contact GrandEngineering at styly.smithing@gmail.com. +Commercial licences may come with a fee, which may be one time or on a time basis. +Licensing terms are done in a per entity/individual basis trying to follow a company/individual needs. diff --git a/src/api.rs b/src/api.rs index 465f0f0..56bc492 100644 --- a/src/api.rs +++ b/src/api.rs @@ -58,6 +58,7 @@ pub struct EngineTaskRegistry { impl Registry for EngineTaskRegistry { fn register(&mut self, task: Arc, identifier: Identifier) { // Insert the task into the hashmap with (mod_id, identifier) as the key + println!("Inserting task into reg"); self.tasks.insert(identifier, task); } diff --git a/src/event.rs b/src/event.rs index 1f37f71..ffecce3 100644 --- a/src/event.rs +++ b/src/event.rs @@ -26,7 +26,6 @@ pub struct EventBus { pub event_registry: EngineEventRegistry, pub event_handler_registry: EngineEventHandlerRegistry, } - pub trait Event: Any + Send + Sync { fn clone_box(&self) -> Box; fn cancel(&mut self); @@ -110,16 +109,18 @@ impl Event for OnStartEvent { } impl EventBus { - pub fn handle(&self, id: Identifier, event: &mut T) { + pub fn handle(&self, id: Identifier, event: &mut T) { #[cfg(debug_assertions)] - println!("Handling event: {:?}", &event.get_id()); - - let handlers: &Vec> = - self.event_handler_registry.event_handlers.get(&id).unwrap(); - - for handler in handlers { - let event = event.as_any_mut().downcast_mut::().unwrap(); - handler.handle(event) + println!("Handling events: {:?}", &event.get_id()); + let handlers: Option<&Vec>> = + self.event_handler_registry.event_handlers.get(&id); + if let Some(handlers) = handlers { + for handler in handlers { + let event = event.as_any_mut().downcast_mut::().unwrap(); + handler.handle(event) + } + } else { + println!("No EventHandlers subscribed to {:?}:{:?}", id.0, id.1) } } } diff --git a/src/task.rs b/src/task.rs index d56af44..4c6ae5b 100644 --- a/src/task.rs +++ b/src/task.rs @@ -5,7 +5,7 @@ use tracing::event as tevent; use tracing::instrument; use tracing::Level; -pub trait Task: Debug + Sync + Send { +pub trait Task: Debug + Sync + Send + 'static { fn clone_box(&self) -> Box; #[instrument] fn run_hip(&mut self) { From b7e38bfa6b97e4476be6ace349c01962ab6bbaf1 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 11 Dec 2024 19:47:19 +0000 Subject: [PATCH 032/163] refactoring and work on UB --- Cargo.toml | 1 + src/api.rs | 9 +-------- src/event.rs | 5 +++-- src/events/start_event.rs | 4 ++-- src/lib.rs | 16 ++-------------- src/plugin.rs | 28 ++++++++++++++++++++++++++++ src/task.rs | 2 +- 7 files changed, 38 insertions(+), 27 deletions(-) create mode 100644 src/plugin.rs diff --git a/Cargo.toml b/Cargo.toml index 76863e7..06eff83 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,7 @@ edition = "2021" [dependencies] bincode = "1.3.3" directories = "5.0.1" +libloading = "0.8.6" toml = "0.8.19" tracing = "0.1.41" tracing-subscriber = "0.3.18" diff --git a/src/api.rs b/src/api.rs index 56bc492..acecff3 100644 --- a/src/api.rs +++ b/src/api.rs @@ -3,14 +3,13 @@ use tracing::Level; use crate::{ event::{EngineEventHandlerRegistry, EngineEventRegistry, EventBus}, task::Task, - Identifier, ModCTX, Registry, + Identifier, Registry, }; use std::{collections::HashMap, sync::Arc}; pub struct EngineAPI { pub task_registry: EngineTaskRegistry, pub event_bus: EventBus, - pub modules: HashMap>, } impl Default for EngineAPI { fn default() -> Self { @@ -32,16 +31,10 @@ impl Default for EngineAPI { event_handlers: HashMap::new(), }, }, - modules: HashMap::new(), } } } impl EngineAPI { - pub fn register_module(&mut self, ctx: ModCTX) -> ModCTX { - self.modules - .insert(ctx.clone().mod_id, Arc::new(ctx.clone())); - ctx - } pub fn setup_logger() { tracing_subscriber::FmtSubscriber::builder() // all spans/events with a level higher than TRACE (e.g, debug, info, warn, etc.) diff --git a/src/event.rs b/src/event.rs index ffecce3..524d2cc 100644 --- a/src/event.rs +++ b/src/event.rs @@ -1,5 +1,6 @@ +use crate::plugin::LibraryInstance; +use crate::plugin::LibraryMetadata; use crate::Identifier; -use crate::ModCTX; use crate::Registry; use std::any::Any; use std::collections::HashMap; @@ -79,7 +80,7 @@ impl Registry for EngineEventRegistry { } #[derive(Clone)] pub struct OnStartEvent { - pub modules: Vec>, + pub modules: Vec>, pub cancelled: bool, pub id: Identifier, } diff --git a/src/events/start_event.rs b/src/events/start_event.rs index a34a600..f15e1a5 100644 --- a/src/events/start_event.rs +++ b/src/events/start_event.rs @@ -1,10 +1,10 @@ use std::{any::Any, process, sync::Arc}; -use crate::{event::Event, Identifier, ModCTX}; +use crate::{event::Event, plugin::LibraryMetadata, Identifier}; #[derive(Clone)] pub struct StartEvent { - pub modules: Vec>, + pub modules: Vec>, pub cancelled: bool, pub id: Identifier, } diff --git a/src/lib.rs b/src/lib.rs index 8e45992..dfeeb06 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3,23 +3,11 @@ pub mod api; pub mod event; pub mod events; pub mod macros; +pub mod plugin; pub mod prelude; pub mod task; pub type Identifier = (String, String); -#[derive(Debug, Clone, Default)] -pub struct ModCTX { - pub mod_id: String, - pub mod_author: String, - //pub rustc_version: String, - pub mod_name: String, - pub mod_version: String, - pub mod_description: String, - pub mod_license: String, - pub mod_credits: String, - pub mod_dependencies: Vec, - pub mod_display_url: String, - pub mod_issue_tracker: String, -} + pub trait Registry: Default + Clone { fn register(&mut self, registree: Arc, identifier: Identifier); fn get(&self, identifier: &Identifier) -> Option>; diff --git a/src/plugin.rs b/src/plugin.rs new file mode 100644 index 0000000..dae7e97 --- /dev/null +++ b/src/plugin.rs @@ -0,0 +1,28 @@ +use libloading::Library; +use std::any::Any; +use std::collections::HashMap; +use std::sync::{Arc, RwLock}; + +pub struct LibraryInstance { + dynamicLibrary: Arc, + metadata: Arc, +} +#[derive(Debug, Clone, Default)] +pub struct LibraryMetadata { + pub mod_id: String, + pub mod_author: String, + //pub rustc_version: String, + //pub api_version:String, + pub mod_name: String, + pub mod_version: String, + pub mod_description: String, + pub mod_license: String, + pub mod_credits: String, + pub mod_dependencies: Vec, + pub mod_display_url: String, + pub mod_issue_tracker: String, +} + +pub struct LibraryManager { + libraries: HashMap>, +} diff --git a/src/task.rs b/src/task.rs index 4c6ae5b..d56af44 100644 --- a/src/task.rs +++ b/src/task.rs @@ -5,7 +5,7 @@ use tracing::event as tevent; use tracing::instrument; use tracing::Level; -pub trait Task: Debug + Sync + Send + 'static { +pub trait Task: Debug + Sync + Send { fn clone_box(&self) -> Box; #[instrument] fn run_hip(&mut self) { From 1f2b15fa1cfefe8fcf7aa17c79e51fe7e0484d07 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 11 Dec 2024 20:03:56 +0000 Subject: [PATCH 033/163] new lib system --- src/macros.rs | 29 +++++++++++++++-------------- src/plugin.rs | 23 ++++++++++++++++++++++- 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index e7b8a37..6cd0f5f 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -1,7 +1,15 @@ #[macro_export] macro_rules! BuildEventHandler { - ($handler:ident,$event:ty, $handler_fn:expr) => { - pub struct $handler; + ($handler:ident,$event:ty,$mod_ctx:expr, $handler_fn:expr) => { + use std::sync::Arc; + pub struct $handler { + mod_ctx: Arc, + }; + impl $handler { + pub fn new(mod_ctx: Arc) -> Self { + Self { mod_ctx } + } + } impl EventHandler for $handler { fn handle(&self, event: &mut dyn Event) { let event: &mut $event = >::get_event::<$event>(event); @@ -10,19 +18,13 @@ macro_rules! BuildEventHandler { } impl EventCTX<$event> for $handler { fn handleCTX(&self, event: &mut $event) { - $handler_fn(event) + let mod_ctx: &Arc = &self.mod_ctx; + $handler_fn(event, mod_ctx) } } }; - ($handler:ident,$event:ty,$mod_ctx:expr, $handler_fn:expr) => { - pub struct $handler { - mod_ctx: ModCTX, - }; - impl $handler { - pub fn new(mod_ctx: ModCTX) -> Self { - Self { mod_ctx } - } - } + ($handler:ident,$event:ty, $handler_fn:expr) => { + pub struct $handler; impl EventHandler for $handler { fn handle(&self, event: &mut dyn Event) { let event: &mut $event = >::get_event::<$event>(event); @@ -31,8 +33,7 @@ macro_rules! BuildEventHandler { } impl EventCTX<$event> for $handler { fn handleCTX(&self, event: &mut $event) { - let mod_ctx: &ModCTX = &self.mod_ctx; - $handler_fn(event, mod_ctx.clone()) + $handler_fn(event) } } }; diff --git a/src/plugin.rs b/src/plugin.rs index dae7e97..e9164bd 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -1,8 +1,10 @@ -use libloading::Library; +use libloading::{Library, Symbol}; use std::any::Any; use std::collections::HashMap; use std::sync::{Arc, RwLock}; +use crate::api::EngineAPI; + pub struct LibraryInstance { dynamicLibrary: Arc, metadata: Arc, @@ -26,3 +28,22 @@ pub struct LibraryMetadata { pub struct LibraryManager { libraries: HashMap>, } + +impl LibraryManager { + fn new() -> Self { + Self { + libraries: HashMap::new(), + } + } + fn register_module(path: String, api: &mut EngineAPI) { + let run: Symbol; + let lib = unsafe { + let library = Library::new("target/debug/libengine_core.so").unwrap(); + let run: Symbol = + library.get(b"run").unwrap(); + run(api); + library // Return the library to keep it in scope + }; + std::mem::forget(lib); + } +} From 219c35bf45b846d607e346611de13c38afae5037 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 11 Dec 2024 20:45:07 +0000 Subject: [PATCH 034/163] improve events --- src/events/mod.rs | 30 ++++++++++++++++++++++++++++++ src/lib.rs | 1 + src/macros.rs | 19 +++++++++++++++---- 3 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/events/mod.rs b/src/events/mod.rs index ef7d7d8..f89f94a 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -1 +1,31 @@ +use crate::api::EngineAPI; +use crate::event::Event; +use crate::Identifier; +use std::collections::HashMap; +use std::sync::Arc; pub mod start_event; + +pub struct Events { + events: HashMap>, +} +pub fn ID(namespace: &str, id: &str) -> Identifier { + (namespace.to_string(), id.to_string()) +} +impl Events { + pub fn init(api: &mut EngineAPI) -> Self { + let inst = Self { + events: HashMap::new(), + }; + //Register Events to the Default impl for less boilerplate + crate::register_event!( + api, + start_event, + crate::events::start_event::StartEvent { + modules: vec![], + id: start_event.clone(), + cancelled: false, + } + ); + inst + } +} diff --git a/src/lib.rs b/src/lib.rs index dfeeb06..9a4cb59 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,6 +2,7 @@ use std::{fmt::Debug, sync::Arc}; pub mod api; pub mod event; pub mod events; +#[macro_use] pub mod macros; pub mod plugin; pub mod prelude; diff --git a/src/macros.rs b/src/macros.rs index 6cd0f5f..6d641e4 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -1,12 +1,23 @@ +#[macro_export] +macro_rules! register_event { + ($api:expr,$name:ident,$default_state:expr) => { + use crate::Registry; + let $name = ID("core", stringify!($name)); + $api.event_bus + .event_registry + .register(Arc::new($default_state), $name.clone()); + }; +} + #[macro_export] macro_rules! BuildEventHandler { - ($handler:ident,$event:ty,$mod_ctx:expr, $handler_fn:expr) => { + ($handler:ident,$event:ty,$mod_ctx:ty, $handler_fn:expr) => { use std::sync::Arc; pub struct $handler { - mod_ctx: Arc, + mod_ctx: Arc<$mod_ctx>, }; impl $handler { - pub fn new(mod_ctx: Arc) -> Self { + pub fn new(mod_ctx: Arc<$mod_ctx>) -> Self { Self { mod_ctx } } } @@ -18,7 +29,7 @@ macro_rules! BuildEventHandler { } impl EventCTX<$event> for $handler { fn handleCTX(&self, event: &mut $event) { - let mod_ctx: &Arc = &self.mod_ctx; + let mod_ctx: &Arc<$mod_ctx> = &self.mod_ctx; $handler_fn(event, mod_ctx) } } From e9e4622c270b435c240f914a117a845aacc23c6a Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 11 Dec 2024 21:42:32 +0000 Subject: [PATCH 035/163] finalize LibManager --- src/plugin.rs | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/plugin.rs b/src/plugin.rs index e9164bd..d789617 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -1,6 +1,7 @@ use libloading::{Library, Symbol}; use std::any::Any; use std::collections::HashMap; +use std::mem::ManuallyDrop; use std::sync::{Arc, RwLock}; use crate::api::EngineAPI; @@ -24,26 +25,28 @@ pub struct LibraryMetadata { pub mod_display_url: String, pub mod_issue_tracker: String, } - +#[derive(Default, Clone)] pub struct LibraryManager { libraries: HashMap>, } impl LibraryManager { - fn new() -> Self { - Self { - libraries: HashMap::new(), - } - } - fn register_module(path: String, api: &mut EngineAPI) { + pub fn register_module(&mut self, path: &str, api: &mut EngineAPI) { let run: Symbol; + let metadata: LibraryMetadata; let lib = unsafe { - let library = Library::new("target/debug/libengine_core.so").unwrap(); - let run: Symbol = + let library = Library::new(path).unwrap(); + let run: Symbol LibraryMetadata> = library.get(b"run").unwrap(); - run(api); - library // Return the library to keep it in scope + metadata = run(api); + library }; - std::mem::forget(lib); + self.libraries.insert( + metadata.mod_id.clone(), + Arc::new(LibraryInstance { + dynamicLibrary: Arc::new(lib), + metadata: Arc::new(metadata), + }), + ); } } From 8a7e734239009cbdebd6e477d18a02254d7383b1 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 11 Dec 2024 21:49:03 +0000 Subject: [PATCH 036/163] bugfix --- src/events/mod.rs | 10 ++-------- src/plugin.rs | 4 ++-- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/events/mod.rs b/src/events/mod.rs index f89f94a..f9c686b 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -5,17 +5,12 @@ use std::collections::HashMap; use std::sync::Arc; pub mod start_event; -pub struct Events { - events: HashMap>, -} +pub struct Events {} pub fn ID(namespace: &str, id: &str) -> Identifier { (namespace.to_string(), id.to_string()) } impl Events { - pub fn init(api: &mut EngineAPI) -> Self { - let inst = Self { - events: HashMap::new(), - }; + pub fn init(api: &mut EngineAPI) { //Register Events to the Default impl for less boilerplate crate::register_event!( api, @@ -26,6 +21,5 @@ impl Events { cancelled: false, } ); - inst } } diff --git a/src/plugin.rs b/src/plugin.rs index d789617..6c2445a 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -7,7 +7,7 @@ use std::sync::{Arc, RwLock}; use crate::api::EngineAPI; pub struct LibraryInstance { - dynamicLibrary: Arc, + dynamicLibrary: Arc>, metadata: Arc, } #[derive(Debug, Clone, Default)] @@ -44,7 +44,7 @@ impl LibraryManager { self.libraries.insert( metadata.mod_id.clone(), Arc::new(LibraryInstance { - dynamicLibrary: Arc::new(lib), + dynamicLibrary: Arc::new(ManuallyDrop::new(lib)), metadata: Arc::new(metadata), }), ); From 123fb9a260e0a8e796288a2ae7a00cdf75e1d452 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 11 Dec 2024 22:10:09 +0000 Subject: [PATCH 037/163] finalize work --- src/api.rs | 12 ++++++++++-- src/event.rs | 12 +++++++----- src/task.rs | 8 ++++---- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/api.rs b/src/api.rs index acecff3..d74695d 100644 --- a/src/api.rs +++ b/src/api.rs @@ -1,4 +1,4 @@ -use tracing::Level; +use tracing::{debug, info, Level}; use crate::{ event::{EngineEventHandlerRegistry, EngineEventRegistry, EventBus}, @@ -36,6 +36,14 @@ impl Default for EngineAPI { } impl EngineAPI { pub fn setup_logger() { + #[cfg(debug_assertions)] + tracing_subscriber::FmtSubscriber::builder() + // all spans/events with a level higher than TRACE (e.g, debug, info, warn, etc.) + // will be written to stdout. + .with_max_level(Level::DEBUG) + // builds the subscriber. + .init(); + #[cfg(not(debug_assertions))] tracing_subscriber::FmtSubscriber::builder() // all spans/events with a level higher than TRACE (e.g, debug, info, warn, etc.) // will be written to stdout. @@ -51,7 +59,7 @@ pub struct EngineTaskRegistry { impl Registry for EngineTaskRegistry { fn register(&mut self, task: Arc, identifier: Identifier) { // Insert the task into the hashmap with (mod_id, identifier) as the key - println!("Inserting task into reg"); + debug!("Inserting task into registry"); self.tasks.insert(identifier, task); } diff --git a/src/event.rs b/src/event.rs index 524d2cc..f78c6ea 100644 --- a/src/event.rs +++ b/src/event.rs @@ -6,7 +6,6 @@ use std::any::Any; use std::collections::HashMap; use std::process; use std::sync::Arc; - pub use tracing::{debug, error, event, info, warn}; // The Actual Fuck // this fucking piece of god given code saves so much time @@ -60,7 +59,10 @@ impl EngineEventHandlerRegistry { let handler = Arc::new(handler); let handlers = self.event_handlers.entry(identifier.clone()).or_default(); handlers.push(handler); - println!("Handler registered for event ID: {:?}", identifier.clone()); + debug!( + "Event Handler registered for event ID: {:?}", + identifier.clone() + ); } } impl Clone for Box { @@ -71,7 +73,7 @@ impl Clone for Box { impl Registry for EngineEventRegistry { fn register(&mut self, registree: Arc, identifier: Identifier) { self.events.insert(identifier.clone(), registree); - println!("Event registered with ID: {:?}", identifier.clone()); + debug!("Event registered with ID: {:?}", identifier.clone()); } fn get(&self, identifier: &Identifier) -> Option> { @@ -112,7 +114,7 @@ impl Event for OnStartEvent { impl EventBus { pub fn handle(&self, id: Identifier, event: &mut T) { #[cfg(debug_assertions)] - println!("Handling events: {:?}", &event.get_id()); + debug!("Handling events: {:?}", &event.get_id()); let handlers: Option<&Vec>> = self.event_handler_registry.event_handlers.get(&id); if let Some(handlers) = handlers { @@ -121,7 +123,7 @@ impl EventBus { handler.handle(event) } } else { - println!("No EventHandlers subscribed to {:?}:{:?}", id.0, id.1) + debug!("No EventHandlers subscribed to {:?}:{:?}", id.0, id.1) } } } diff --git a/src/task.rs b/src/task.rs index d56af44..0f53193 100644 --- a/src/task.rs +++ b/src/task.rs @@ -1,22 +1,22 @@ use std::{fmt::Debug, sync::Arc}; use crate::Identifier; +use tracing::error; use tracing::event as tevent; use tracing::instrument; +use tracing::warn; use tracing::Level; pub trait Task: Debug + Sync + Send { fn clone_box(&self) -> Box; #[instrument] fn run_hip(&mut self) { - println!("HIP Runtime not available, falling back to CPU"); + warn!("HIP Runtime not available, falling back to CPU"); self.run_cpu(); } #[instrument] fn run_cpu(&mut self) { - tevent!(Level::ERROR, "CPU run not Implemented"); - println!("Hi Mom!") - //panic!("CPU run not Implemented"); + error!("CPU run not Implemented"); } #[instrument] fn run(&mut self, run: Option) { From b78316d6940820901cdbdd8eec4a51cb788c55e3 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 11 Dec 2024 22:26:49 +0000 Subject: [PATCH 038/163] logging upgrades --- src/api.rs | 5 ++++- src/plugin.rs | 18 ++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/api.rs b/src/api.rs index d74695d..9d4d10b 100644 --- a/src/api.rs +++ b/src/api.rs @@ -59,7 +59,10 @@ pub struct EngineTaskRegistry { impl Registry for EngineTaskRegistry { fn register(&mut self, task: Arc, identifier: Identifier) { // Insert the task into the hashmap with (mod_id, identifier) as the key - debug!("Inserting task into registry"); + debug!( + "Inserting task {:?}:{:?} into registry", + identifier.0, identifier.1 + ); self.tasks.insert(identifier, task); } diff --git a/src/plugin.rs b/src/plugin.rs index 6c2445a..b17f7be 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -3,12 +3,14 @@ use std::any::Any; use std::collections::HashMap; use std::mem::ManuallyDrop; use std::sync::{Arc, RwLock}; +use tracing::field::debug; +use tracing::{debug, info}; use crate::api::EngineAPI; - +#[derive(Clone, Debug)] pub struct LibraryInstance { dynamicLibrary: Arc>, - metadata: Arc, + pub metadata: Arc, } #[derive(Debug, Clone, Default)] pub struct LibraryMetadata { @@ -27,7 +29,7 @@ pub struct LibraryMetadata { } #[derive(Default, Clone)] pub struct LibraryManager { - libraries: HashMap>, + pub libraries: HashMap, } impl LibraryManager { @@ -43,10 +45,14 @@ impl LibraryManager { }; self.libraries.insert( metadata.mod_id.clone(), - Arc::new(LibraryInstance { + LibraryInstance { dynamicLibrary: Arc::new(ManuallyDrop::new(lib)), - metadata: Arc::new(metadata), - }), + metadata: Arc::new(metadata.clone()), + }, ); + debug!( + "Module {} Loaded, made by {}", + metadata.mod_name, metadata.mod_author + ) } } From 1a7e720704c12cd18b8ef7fc48acf8769bed1763 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 11 Dec 2024 22:34:04 +0000 Subject: [PATCH 039/163] fix mem leak --- src/plugin.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugin.rs b/src/plugin.rs index b17f7be..87e040d 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -33,6 +33,10 @@ pub struct LibraryManager { } impl LibraryManager { + pub fn drop(self, api: EngineAPI) { + drop(api); + drop(self); + } pub fn register_module(&mut self, path: &str, api: &mut EngineAPI) { let run: Symbol; let metadata: LibraryMetadata; From 5fdde06f2a4257ed0a1fc73671eff5aec7e3314a Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 14 Dec 2024 22:13:36 +0000 Subject: [PATCH 040/163] add in lib versions and rustc vers for safety --- Cargo.toml | 2 ++ build.rs | 24 ++++++++++++++++++++++++ src/event.rs | 11 ++++++++--- src/lib.rs | 3 ++- src/plugin.rs | 38 +++++++++++++++++++++++++++++--------- src/prelude.rs | 1 + 6 files changed, 66 insertions(+), 13 deletions(-) create mode 100644 build.rs diff --git a/Cargo.toml b/Cargo.toml index 06eff83..90c63bf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,3 +12,5 @@ libloading = "0.8.6" toml = "0.8.19" tracing = "0.1.41" tracing-subscriber = "0.3.18" +[build-dependencies] +vergen-git2 = { version = "1.0.0", features = ["build", "cargo", "rustc"] } diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..657bf2f --- /dev/null +++ b/build.rs @@ -0,0 +1,24 @@ +// build.rs + +use vergen_git2::{BuildBuilder, CargoBuilder, Emitter, Git2Builder, RustcBuilder}; + +fn main() { + // NOTE: This will output everything, and requires all features enabled. + // NOTE: See the specific builder documentation for configuration options. + let build = BuildBuilder::all_build().unwrap(); + let cargo = CargoBuilder::all_cargo().unwrap(); + let git = Git2Builder::all_git().unwrap(); + let rustc = RustcBuilder::all_rustc().unwrap(); + + Emitter::default() + .add_instructions(&build) + .unwrap() + .add_instructions(&cargo) + .unwrap() + .add_instructions(&rustc) + .unwrap() + .add_instructions(&git) + .unwrap() + .emit() + .unwrap(); +} diff --git a/src/event.rs b/src/event.rs index f78c6ea..6b71e1e 100644 --- a/src/event.rs +++ b/src/event.rs @@ -6,6 +6,7 @@ use std::any::Any; use std::collections::HashMap; use std::process; use std::sync::Arc; +use tracing::instrument; pub use tracing::{debug, error, event, info, warn}; // The Actual Fuck // this fucking piece of god given code saves so much time @@ -26,6 +27,7 @@ pub struct EventBus { pub event_registry: EngineEventRegistry, pub event_handler_registry: EngineEventHandlerRegistry, } + pub trait Event: Any + Send + Sync { fn clone_box(&self) -> Box; fn cancel(&mut self); @@ -113,14 +115,17 @@ impl Event for OnStartEvent { impl EventBus { pub fn handle(&self, id: Identifier, event: &mut T) { - #[cfg(debug_assertions)] debug!("Handling events: {:?}", &event.get_id()); let handlers: Option<&Vec>> = self.event_handler_registry.event_handlers.get(&id); + if let Some(handlers) = handlers { for handler in handlers { - let event = event.as_any_mut().downcast_mut::().unwrap(); - handler.handle(event) + if let Some(event) = event.as_any_mut().downcast_mut::() { + handler.handle(event) + } else { + error!("Failed to downcast event during handling"); + } } } else { debug!("No EventHandlers subscribed to {:?}:{:?}", id.0, id.1) diff --git a/src/lib.rs b/src/lib.rs index 9a4cb59..da946e6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -8,7 +8,8 @@ pub mod plugin; pub mod prelude; pub mod task; pub type Identifier = (String, String); - +pub const GIT_VERSION: &str = env!("VERGEN_GIT_SHA"); +pub const RUSTC_VERSION: &str = env!("VERGEN_RUSTC_SEMVER"); pub trait Registry: Default + Clone { fn register(&mut self, registree: Arc, identifier: Identifier); fn get(&self, identifier: &Identifier) -> Option>; diff --git a/src/plugin.rs b/src/plugin.rs index 87e040d..2a90878 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -12,12 +12,12 @@ pub struct LibraryInstance { dynamicLibrary: Arc>, pub metadata: Arc, } -#[derive(Debug, Clone, Default)] +#[derive(Debug, Clone)] pub struct LibraryMetadata { pub mod_id: String, pub mod_author: String, - //pub rustc_version: String, - //pub api_version:String, + pub rustc_version: String, + pub api_version: String, pub mod_name: String, pub mod_version: String, pub mod_description: String, @@ -27,6 +27,24 @@ pub struct LibraryMetadata { pub mod_display_url: String, pub mod_issue_tracker: String, } +impl Default for LibraryMetadata { + fn default() -> Self { + Self { + mod_id: String::new(), + mod_author: String::new(), + rustc_version: crate::RUSTC_VERSION.to_string(), + api_version: crate::GIT_VERSION.to_string(), + mod_name: String::new(), + mod_version: String::new(), + mod_description: String::new(), + mod_license: String::new(), + mod_credits: String::new(), + mod_dependencies: Vec::new(), + mod_display_url: String::new(), + mod_issue_tracker: String::new(), + } + } +} #[derive(Default, Clone)] pub struct LibraryManager { pub libraries: HashMap, @@ -38,15 +56,17 @@ impl LibraryManager { drop(self); } pub fn register_module(&mut self, path: &str, api: &mut EngineAPI) { - let run: Symbol; - let metadata: LibraryMetadata; - let lib = unsafe { + let (lib, metadata): (Library, LibraryMetadata) = unsafe { let library = Library::new(path).unwrap(); - let run: Symbol LibraryMetadata> = + let metadataFN: Symbol LibraryMetadata> = + library.get(b"metadata").unwrap(); + let run: Symbol = library.get(b"run").unwrap(); - metadata = run(api); - library + let metadata: LibraryMetadata = metadataFN(); + run(api); + (library, metadata) }; + self.libraries.insert( metadata.mod_id.clone(), LibraryInstance { diff --git a/src/prelude.rs b/src/prelude.rs index e69de29..8b13789 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -0,0 +1 @@ + From 02dbd2181fe06b113e52515fb468eccbc0671bd3 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 14 Dec 2024 22:17:29 +0000 Subject: [PATCH 041/163] better safety --- src/plugin.rs | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/src/plugin.rs b/src/plugin.rs index 2a90878..5f4124a 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -56,27 +56,37 @@ impl LibraryManager { drop(self); } pub fn register_module(&mut self, path: &str, api: &mut EngineAPI) { + let run: Symbol; let (lib, metadata): (Library, LibraryMetadata) = unsafe { let library = Library::new(path).unwrap(); let metadataFN: Symbol LibraryMetadata> = library.get(b"metadata").unwrap(); - let run: Symbol = - library.get(b"run").unwrap(); let metadata: LibraryMetadata = metadataFN(); - run(api); (library, metadata) }; - - self.libraries.insert( - metadata.mod_id.clone(), - LibraryInstance { - dynamicLibrary: Arc::new(ManuallyDrop::new(lib)), - metadata: Arc::new(metadata.clone()), - }, - ); - debug!( - "Module {} Loaded, made by {}", - metadata.mod_name, metadata.mod_author - ) + if metadata.api_version == crate::GIT_VERSION + && metadata.rustc_version == crate::RUSTC_VERSION + { + unsafe { + run = lib.get(b"run").unwrap(); + run(api); + } + self.libraries.insert( + metadata.mod_id.clone(), + LibraryInstance { + dynamicLibrary: Arc::new(ManuallyDrop::new(lib)), + metadata: Arc::new(metadata.clone()), + }, + ); + debug!( + "Module {} Loaded, made by {}", + metadata.mod_name, metadata.mod_author + ) + } else { + info!( + "Module {} was not loaded due to version mismatch, Lib API: {}, Engine API: {}, Lib Rustc: {}, Engine Rustc: {}", + metadata.mod_name, metadata.api_version, crate::GIT_VERSION, metadata.rustc_version, crate::RUSTC_VERSION + ); + } } } From e1a23618d4e46664d96a4736079294212b54d853 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 16 Dec 2024 19:28:00 +0000 Subject: [PATCH 042/163] fixes --- Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.toml b/Cargo.toml index 90c63bf..cbab56d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,6 +9,7 @@ edition = "2021" bincode = "1.3.3" directories = "5.0.1" libloading = "0.8.6" +oxifs = "0.1.0" toml = "0.8.19" tracing = "0.1.41" tracing-subscriber = "0.3.18" From 292de620a0a42aabd5ced2acacab4232adfed18d Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 16 Dec 2024 19:38:34 +0000 Subject: [PATCH 043/163] fmt --- src/api.rs | 2 +- src/event.rs | 2 -- src/events/mod.rs | 2 -- src/lib.rs | 2 +- src/plugin.rs | 4 +--- src/task.rs | 2 -- 6 files changed, 3 insertions(+), 11 deletions(-) diff --git a/src/api.rs b/src/api.rs index 9d4d10b..a629063 100644 --- a/src/api.rs +++ b/src/api.rs @@ -1,4 +1,4 @@ -use tracing::{debug, info, Level}; +use tracing::{debug, Level}; use crate::{ event::{EngineEventHandlerRegistry, EngineEventRegistry, EventBus}, diff --git a/src/event.rs b/src/event.rs index 6b71e1e..783092e 100644 --- a/src/event.rs +++ b/src/event.rs @@ -1,12 +1,10 @@ use crate::plugin::LibraryInstance; -use crate::plugin::LibraryMetadata; use crate::Identifier; use crate::Registry; use std::any::Any; use std::collections::HashMap; use std::process; use std::sync::Arc; -use tracing::instrument; pub use tracing::{debug, error, event, info, warn}; // The Actual Fuck // this fucking piece of god given code saves so much time diff --git a/src/events/mod.rs b/src/events/mod.rs index f9c686b..d9d7297 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -1,7 +1,5 @@ use crate::api::EngineAPI; -use crate::event::Event; use crate::Identifier; -use std::collections::HashMap; use std::sync::Arc; pub mod start_event; diff --git a/src/lib.rs b/src/lib.rs index da946e6..dec00c7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,4 @@ -use std::{fmt::Debug, sync::Arc}; +use std::sync::Arc; pub mod api; pub mod event; pub mod events; diff --git a/src/plugin.rs b/src/plugin.rs index 5f4124a..5c55859 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -1,9 +1,7 @@ use libloading::{Library, Symbol}; -use std::any::Any; use std::collections::HashMap; use std::mem::ManuallyDrop; -use std::sync::{Arc, RwLock}; -use tracing::field::debug; +use std::sync::Arc; use tracing::{debug, info}; use crate::api::EngineAPI; diff --git a/src/task.rs b/src/task.rs index 0f53193..23f01e3 100644 --- a/src/task.rs +++ b/src/task.rs @@ -2,10 +2,8 @@ use std::{fmt::Debug, sync::Arc}; use crate::Identifier; use tracing::error; -use tracing::event as tevent; use tracing::instrument; use tracing::warn; -use tracing::Level; pub trait Task: Debug + Sync + Send { fn clone_box(&self) -> Box; From d01db52bb75c9e3d140552cd44e1a7d1ce4d7858 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 16 Dec 2024 20:47:37 +0000 Subject: [PATCH 044/163] oxifs --- src/plugin.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/plugin.rs b/src/plugin.rs index 5c55859..5ab099e 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -1,10 +1,10 @@ +use crate::api::EngineAPI; use libloading::{Library, Symbol}; +use oxifs::OxiFS; use std::collections::HashMap; use std::mem::ManuallyDrop; use std::sync::Arc; use tracing::{debug, info}; - -use crate::api::EngineAPI; #[derive(Clone, Debug)] pub struct LibraryInstance { dynamicLibrary: Arc>, @@ -53,6 +53,14 @@ impl LibraryManager { drop(api); drop(self); } + pub fn load_module(&mut self, path: &str, api: &mut EngineAPI) { + let fs = OxiFS::new(path); + let tmp_path = fs.tempdir.path(); + #[cfg(unix)] + self.register_module(tmp_path.join("mod.so").to_str().unwrap(), api); + #[cfg(windows)] + self.register_module(tmp_path.join("mod.dll").to_str().unwrap(), api); + } pub fn register_module(&mut self, path: &str, api: &mut EngineAPI) { let run: Symbol; let (lib, metadata): (Library, LibraryMetadata) = unsafe { From 995e39bc8bf05bcfaf2244a24d7b9ff158112e0a Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 20 Jan 2025 18:13:15 +0000 Subject: [PATCH 045/163] improvements and updates --- src/events/start_event.rs | 19 ++++++++++++++++++- src/lib.rs | 1 + src/plugin.rs | 6 +++--- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/events/start_event.rs b/src/events/start_event.rs index f15e1a5..6503edc 100644 --- a/src/events/start_event.rs +++ b/src/events/start_event.rs @@ -8,7 +8,24 @@ pub struct StartEvent { pub cancelled: bool, pub id: Identifier, } - +#[macro_export] +macro_rules! StartEvent { + ($lib_manager:expr, $api:expr) => { + $api.event_bus.handle( + ID("core", "start_event"), + &mut events::start_event::StartEvent { + cancelled: false, + id: ID("core", "start_event").clone(), + modules: $lib_manager + .libraries + .values() + .cloned() + .map(|lib| lib.metadata) + .collect(), + }, + ); + }; +} impl Event for StartEvent { fn clone_box(&self) -> Box { Box::new(self.clone()) diff --git a/src/lib.rs b/src/lib.rs index dec00c7..841f64e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -8,6 +8,7 @@ pub mod plugin; pub mod prelude; pub mod task; pub type Identifier = (String, String); +pub type RawIdentier = String; pub const GIT_VERSION: &str = env!("VERGEN_GIT_SHA"); pub const RUSTC_VERSION: &str = env!("VERGEN_RUSTC_SEMVER"); pub trait Registry: Default + Clone { diff --git a/src/plugin.rs b/src/plugin.rs index 5ab099e..e5fd76c 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -57,11 +57,11 @@ impl LibraryManager { let fs = OxiFS::new(path); let tmp_path = fs.tempdir.path(); #[cfg(unix)] - self.register_module(tmp_path.join("mod.so").to_str().unwrap(), api); + self.load_library(tmp_path.join("mod.so").to_str().unwrap(), api); #[cfg(windows)] - self.register_module(tmp_path.join("mod.dll").to_str().unwrap(), api); + self.load_library(tmp_path.join("mod.dll").to_str().unwrap(), api); } - pub fn register_module(&mut self, path: &str, api: &mut EngineAPI) { + pub fn load_library(&mut self, path: &str, api: &mut EngineAPI) { let run: Symbol; let (lib, metadata): (Library, LibraryMetadata) = unsafe { let library = Library::new(path).unwrap(); From 9b047e0fb5a5a96cef8f7d5a1cec0ecab2bcf71c Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 2 Feb 2025 09:43:29 +0000 Subject: [PATCH 046/163] changed to gix instead of git2 --- Cargo.toml | 2 +- build.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index cbab56d..86af4cd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,4 +14,4 @@ toml = "0.8.19" tracing = "0.1.41" tracing-subscriber = "0.3.18" [build-dependencies] -vergen-git2 = { version = "1.0.0", features = ["build", "cargo", "rustc"] } +vergen-gix = { version = "1.0.0", features = ["build", "cargo", "rustc"] } diff --git a/build.rs b/build.rs index 657bf2f..d627f86 100644 --- a/build.rs +++ b/build.rs @@ -1,13 +1,13 @@ // build.rs -use vergen_git2::{BuildBuilder, CargoBuilder, Emitter, Git2Builder, RustcBuilder}; +use vergen_gix::{BuildBuilder, CargoBuilder, Emitter, GixBuilder, RustcBuilder}; fn main() { // NOTE: This will output everything, and requires all features enabled. // NOTE: See the specific builder documentation for configuration options. let build = BuildBuilder::all_build().unwrap(); let cargo = CargoBuilder::all_cargo().unwrap(); - let git = Git2Builder::all_git().unwrap(); + let git = GixBuilder::all_git().unwrap(); let rustc = RustcBuilder::all_rustc().unwrap(); Emitter::default() From 1f360b182ffe3adb9855cc2cb9977aa19f8fd754 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 2 Feb 2025 13:34:27 +0000 Subject: [PATCH 047/163] work on taks queue --- Cargo.toml | 1 + src/api.rs | 4 +++- src/task.rs | 54 ++++++++++++++++++++++++++++++++++++++++++++--------- 3 files changed, 49 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 86af4cd..938b856 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,7 @@ bincode = "1.3.3" directories = "5.0.1" libloading = "0.8.6" oxifs = "0.1.0" +serde = { version = "1.0.217", features = ["derive"] } toml = "0.8.19" tracing = "0.1.41" tracing-subscriber = "0.3.18" diff --git a/src/api.rs b/src/api.rs index a629063..72e2bea 100644 --- a/src/api.rs +++ b/src/api.rs @@ -2,12 +2,13 @@ use tracing::{debug, Level}; use crate::{ event::{EngineEventHandlerRegistry, EngineEventRegistry, EventBus}, - task::Task, + task::{Task, TaskQueue}, Identifier, Registry, }; use std::{collections::HashMap, sync::Arc}; pub struct EngineAPI { + pub task_queue: TaskQueue, pub task_registry: EngineTaskRegistry, pub event_bus: EventBus, } @@ -22,6 +23,7 @@ impl Default for EngineAPI { .init(); Self { + task_queue: TaskQueue::default(), task_registry: EngineTaskRegistry::default(), event_bus: EventBus { event_registry: EngineEventRegistry { diff --git a/src/task.rs b/src/task.rs index 23f01e3..b6f5191 100644 --- a/src/task.rs +++ b/src/task.rs @@ -1,11 +1,48 @@ -use std::{fmt::Debug, sync::Arc}; - -use crate::Identifier; -use tracing::error; -use tracing::instrument; -use tracing::warn; +use std::{any::Any, fmt::Debug, sync::Arc}; +use crate::api::EngineAPI; +use crate::{Identifier, Registry}; +use serde::{Deserialize, Serialize}; +use tracing::{error, instrument, warn}; +pub type StoredTask = (Identifier, Vec); +#[derive(Debug, Default, Clone, Serialize, Deserialize)] +pub struct TaskQueueStorage { + pub tasks: Vec>, +} +impl TaskQueueStorage { + pub fn from_task_queue(task_queue: &TaskQueue) -> Self { + let mut tasks = Vec::new(); + for task in &task_queue.tasks { + tasks.push(Box::new((task.get_id(), task.to_bytes()))); + } + Self { tasks } + } +} +#[derive(Debug, Default, Clone)] +pub struct TaskQueue { + pub tasks: Vec>, +} +impl TaskQueue { + pub fn from_storage(storage: &TaskQueueStorage, api: &EngineAPI) -> Self { + let tasks = storage + .tasks + .iter() + .map(|task_bytes| { + let x: Box = api.task_registry.get(&task_bytes.0).unwrap_or_else(|| { + error!("Failed to convert TaskBytes into Solid Task"); + panic!("Failed to convert TaskBytes into Solid Task") + }); + // Assuming you have a way to get the task type and deserialize it + // This is a placeholder and should be replaced with actual deserialization logic + let task: Box = x.from_bytes(&task_bytes.1); + task + }) + .collect(); + TaskQueue { tasks } + } +} pub trait Task: Debug + Sync + Send { + fn get_id(&self) -> Identifier; fn clone_box(&self) -> Box; #[instrument] fn run_hip(&mut self) { @@ -23,11 +60,10 @@ pub trait Task: Debug + Sync + Send { Some(Runner::CPU) | None => self.run_cpu(), } } - fn from_bytes(bytes: &[u8]) -> Self - where - Self: Sized; fn to_bytes(&self) -> Vec; + fn from_bytes(&self, bytes: &[u8]) -> Box; } + #[derive(Debug, Clone, Copy)] pub enum Runner { HIP, From c20581189b12abb23f8e16f1e4a2ba2ba3ed4b7c Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 2 Feb 2025 17:50:35 +0000 Subject: [PATCH 048/163] rexport for less waste --- src/api.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/api.rs b/src/api.rs index 72e2bea..5c39875 100644 --- a/src/api.rs +++ b/src/api.rs @@ -5,8 +5,9 @@ use crate::{ task::{Task, TaskQueue}, Identifier, Registry, }; +pub use bincode::deserialize; +pub use bincode::serialize; use std::{collections::HashMap, sync::Arc}; - pub struct EngineAPI { pub task_queue: TaskQueue, pub task_registry: EngineTaskRegistry, From bbce804801c372198126ae7284ebbfc9b388c61c Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 16 Feb 2025 17:25:25 +0000 Subject: [PATCH 049/163] update LibraryMetadata for deps --- src/plugin.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugin.rs b/src/plugin.rs index e5fd76c..25da846 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -21,10 +21,15 @@ pub struct LibraryMetadata { pub mod_description: String, pub mod_license: String, pub mod_credits: String, - pub mod_dependencies: Vec, + pub mod_dependencies: Vec, pub mod_display_url: String, pub mod_issue_tracker: String, } +#[derive(Debug, Clone, Default)] +pub struct LibraryDependency { + pub mod_git_repo: String, + pub mod_git_commit: String, +} impl Default for LibraryMetadata { fn default() -> Self { Self { From 29e0183af4507b35be76d8ee8a775cf3fe096536 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 16 Feb 2025 17:44:47 +0000 Subject: [PATCH 050/163] desc and license --- Cargo.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 938b856..f23d5b2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,8 @@ name = "enginelib" version = "0.1.0" edition = "2021" - +description = "A library for the GE engine allowing for modding and removing boilerplate." +license = "GE License" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] From 3f9d495446a6a029306bc981c6a569039a35ce98 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 16 Feb 2025 17:46:20 +0000 Subject: [PATCH 051/163] license file --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index f23d5b2..0b82a47 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "enginelib" version = "0.1.0" edition = "2021" description = "A library for the GE engine allowing for modding and removing boilerplate." -license = "GE License" +license-file = "LICENSE.md" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] From 67affd7c4e66b40b98c014a96f55e310b966a0bd Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 16 Feb 2025 17:49:15 +0000 Subject: [PATCH 052/163] serde serialize and deserialize for cfg use --- Cargo.toml | 2 +- src/plugin.rs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 0b82a47..36099fb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "enginelib" -version = "0.1.0" +version = "0.1.1" edition = "2021" description = "A library for the GE engine allowing for modding and removing boilerplate." license-file = "LICENSE.md" diff --git a/src/plugin.rs b/src/plugin.rs index 25da846..550a9c4 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -1,6 +1,7 @@ use crate::api::EngineAPI; use libloading::{Library, Symbol}; use oxifs::OxiFS; +use serde::{Deserialize, Serialize}; use std::collections::HashMap; use std::mem::ManuallyDrop; use std::sync::Arc; @@ -10,7 +11,7 @@ pub struct LibraryInstance { dynamicLibrary: Arc>, pub metadata: Arc, } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Serialize, Deserialize)] pub struct LibraryMetadata { pub mod_id: String, pub mod_author: String, @@ -25,7 +26,7 @@ pub struct LibraryMetadata { pub mod_display_url: String, pub mod_issue_tracker: String, } -#[derive(Debug, Clone, Default)] +#[derive(Debug, Clone, Default, Serialize, Deserialize)] pub struct LibraryDependency { pub mod_git_repo: String, pub mod_git_commit: String, From f50e416ae9423d4ec967aa226467c5a6f01e07f3 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 16 Feb 2025 21:06:14 +0000 Subject: [PATCH 053/163] add modid property to Deps --- src/plugin.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugin.rs b/src/plugin.rs index 550a9c4..4f8d597 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -30,6 +30,7 @@ pub struct LibraryMetadata { pub struct LibraryDependency { pub mod_git_repo: String, pub mod_git_commit: String, + pub mod_id: String, } impl Default for LibraryMetadata { fn default() -> Self { From 756d270ab7bbefdeae5b63b4744889ebd7cb3fcd Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 17 Feb 2025 18:44:13 +0000 Subject: [PATCH 054/163] better functionality --- Cargo.toml | 2 +- src/plugin.rs | 30 +++++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 36099fb..e27ce55 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "enginelib" -version = "0.1.1" +version = "0.1.3" edition = "2021" description = "A library for the GE engine allowing for modding and removing boilerplate." license-file = "LICENSE.md" diff --git a/src/plugin.rs b/src/plugin.rs index 4f8d597..f41c208 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -2,9 +2,9 @@ use crate::api::EngineAPI; use libloading::{Library, Symbol}; use oxifs::OxiFS; use serde::{Deserialize, Serialize}; -use std::collections::HashMap; use std::mem::ManuallyDrop; use std::sync::Arc; +use std::{collections::HashMap, fs}; use tracing::{debug, info}; #[derive(Clone, Debug)] pub struct LibraryInstance { @@ -60,7 +60,35 @@ impl LibraryManager { drop(api); drop(self); } + pub fn load_modules(&mut self, api: &mut EngineAPI) { + //get all files in ./mods + let dir_path = "./mods"; // Target directory + let mut files: Vec = Vec::new(); + + if let Ok(entries) = fs::read_dir(dir_path) { + for entry in entries.filter_map(Result::ok) { + let path = entry.path(); + if path.is_file() { + if let Some(extension) = path.extension() { + if extension == "tar" { + if let Some(stem) = path.file_stem() { + if stem.to_string_lossy().ends_with(".rustforge") { + files.push(path.display().to_string()); + } + } + } + } + } + } + } else { + eprintln!("Error reading directory: {}", dir_path); + } + for file in files { + self.load_module(&file, api); + } + } pub fn load_module(&mut self, path: &str, api: &mut EngineAPI) { + info!("Loading module {}", path); let fs = OxiFS::new(path); let tmp_path = fs.tempdir.path(); #[cfg(unix)] From 8e7fe7d70bfb107a1b7447d18799d4a3fbd228d0 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 17 Feb 2025 19:25:41 +0000 Subject: [PATCH 055/163] use cargo pkg version for safety check --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 841f64e..05a3b87 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -9,7 +9,7 @@ pub mod prelude; pub mod task; pub type Identifier = (String, String); pub type RawIdentier = String; -pub const GIT_VERSION: &str = env!("VERGEN_GIT_SHA"); +pub const GIT_VERSION: &str = env!("CARGO_PKG_VERSION"); pub const RUSTC_VERSION: &str = env!("VERGEN_RUSTC_SEMVER"); pub trait Registry: Default + Clone { fn register(&mut self, registree: Arc, identifier: Identifier); From b5e77a839af47881a6527d87e253f24cf025ff2f Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 17 Feb 2025 19:26:10 +0000 Subject: [PATCH 056/163] up ver --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index e27ce55..a06a287 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "enginelib" -version = "0.1.3" +version = "0.1.4" edition = "2021" description = "A library for the GE engine allowing for modding and removing boilerplate." license-file = "LICENSE.md" From 2d5922b3ea841f119290893a325b807bf41d36ad Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 17 Feb 2025 19:53:44 +0000 Subject: [PATCH 057/163] fix fs --- src/plugin.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugin.rs b/src/plugin.rs index f41c208..f557beb 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -90,11 +90,13 @@ impl LibraryManager { pub fn load_module(&mut self, path: &str, api: &mut EngineAPI) { info!("Loading module {}", path); let fs = OxiFS::new(path); + let tmp_path = fs.tempdir.path(); #[cfg(unix)] self.load_library(tmp_path.join("mod.so").to_str().unwrap(), api); #[cfg(windows)] self.load_library(tmp_path.join("mod.dll").to_str().unwrap(), api); + std::mem::forget(fs); } pub fn load_library(&mut self, path: &str, api: &mut EngineAPI) { let run: Symbol; From 09a46f6770f15ccbbd3ef76bffa5f9657dc72a11 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 17 Feb 2025 19:57:31 +0000 Subject: [PATCH 058/163] up ver --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index a06a287..333d05e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "enginelib" -version = "0.1.4" +version = "0.1.5" edition = "2021" description = "A library for the GE engine allowing for modding and removing boilerplate." license-file = "LICENSE.md" From b479c1aae4eb608af119b830fbe3501ff7ddc86f Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 17 Feb 2025 20:23:15 +0000 Subject: [PATCH 059/163] up ver --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 333d05e..9a2fec6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "enginelib" -version = "0.1.5" +version = "0.1.6" edition = "2021" description = "A library for the GE engine allowing for modding and removing boilerplate." license-file = "LICENSE.md" From a139c8be29e0bce1d4c57df5d581063a0fae6fac Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 21 Feb 2025 06:58:11 +0000 Subject: [PATCH 060/163] better log --- src/event.rs | 5 +++++ src/plugin.rs | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/event.rs b/src/event.rs index 783092e..74473a5 100644 --- a/src/event.rs +++ b/src/event.rs @@ -11,9 +11,14 @@ pub use tracing::{debug, error, event, info, warn}; pub trait EventCTX: EventHandler { fn get_event(event: &mut dyn Event) -> &mut T { + debug!("Aquiring Event"); event.as_any_mut().downcast_mut::().unwrap() } fn handle(&self, event: &mut dyn Event) { + let namespace = event.get_id().0; + let id = event.get_id().1; + let msg = format!("Handling Event: {}:{}", namespace, id); + debug!(msg); let event: &mut C = >::get_event::(event); self.handleCTX(event); } diff --git a/src/plugin.rs b/src/plugin.rs index f557beb..2ef5f6a 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -5,6 +5,7 @@ use serde::{Deserialize, Serialize}; use std::mem::ManuallyDrop; use std::sync::Arc; use std::{collections::HashMap, fs}; +use tracing::field::debug; use tracing::{debug, info}; #[derive(Clone, Debug)] pub struct LibraryInstance { @@ -99,6 +100,7 @@ impl LibraryManager { std::mem::forget(fs); } pub fn load_library(&mut self, path: &str, api: &mut EngineAPI) { + debug!("Loading library {}", path); let run: Symbol; let (lib, metadata): (Library, LibraryMetadata) = unsafe { let library = Library::new(path).unwrap(); From c0d2381d18ce3004f72fbb1c118e94e456accb29 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 21 Feb 2025 20:19:10 +0000 Subject: [PATCH 061/163] reprodcible? --- Cargo.toml | 4 ++++ src/task.rs | 1 + 2 files changed, 5 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 9a2fec6..d68e8aa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,3 +17,7 @@ tracing = "0.1.41" tracing-subscriber = "0.3.18" [build-dependencies] vergen-gix = { version = "1.0.0", features = ["build", "cargo", "rustc"] } +[profile.release] +codegen-units = 1 # Make builds deterministic +[profile.dev] +codegen-units = 1 # Make builds deterministic diff --git a/src/task.rs b/src/task.rs index b6f5191..44202d5 100644 --- a/src/task.rs +++ b/src/task.rs @@ -41,6 +41,7 @@ impl TaskQueue { TaskQueue { tasks } } } + pub trait Task: Debug + Sync + Send { fn get_id(&self) -> Identifier; fn clone_box(&self) -> Box; From d1ceed256422fbafdbef1459e08dc37ade94e9ec Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 21 Feb 2025 20:19:56 +0000 Subject: [PATCH 062/163] up ver --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index d68e8aa..f56f10a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "enginelib" -version = "0.1.6" +version = "0.1.7" edition = "2021" description = "A library for the GE engine allowing for modding and removing boilerplate." license-file = "LICENSE.md" From 323412789264778a49705bc47f3a5cb8de4a1a42 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 22 Feb 2025 14:41:13 +0000 Subject: [PATCH 063/163] fix --- Cargo.nix | 3101 ++++++++++++++++++++++++++++++++++++++++++++++++++++ flake.lock | 131 +++ flake.nix | 28 + 3 files changed, 3260 insertions(+) create mode 100644 Cargo.nix create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/Cargo.nix b/Cargo.nix new file mode 100644 index 0000000..cd8cf44 --- /dev/null +++ b/Cargo.nix @@ -0,0 +1,3101 @@ +# This file was @generated by cargo2nix 0.11.0. +# It is not intended to be manually edited. + +args@{ + release ? true, + rootFeatures ? [ + "enginelib/default" + ], + rustPackages, + buildRustPackages, + hostPlatform, + hostPlatformCpu ? null, + hostPlatformFeatures ? [], + target ? null, + codegenOpts ? null, + profileOpts ? null, + cargoUnstableFlags ? null, + rustcLinkFlags ? null, + rustcBuildFlags ? null, + mkRustCrate, + rustLib, + lib, + workspaceSrc, + ignoreLockHash, +}: +let + nixifiedLockHash = "7a7a4e7f2cc7b8aa955e47026c14e2ed580095137b482255a2139e0782164ee5"; + workspaceSrc = if args.workspaceSrc == null then ./. else args.workspaceSrc; + currentLockHash = builtins.hashFile "sha256" (workspaceSrc + /Cargo.lock); + lockHashIgnored = if ignoreLockHash + then builtins.trace "Ignoring lock hash" ignoreLockHash + else ignoreLockHash; +in if !lockHashIgnored && (nixifiedLockHash != currentLockHash) then + throw ("Cargo.nix ${nixifiedLockHash} is out of sync with Cargo.lock ${currentLockHash}") +else let + inherit (rustLib) fetchCratesIo fetchCrateLocal fetchCrateGit fetchCrateAlternativeRegistry expandFeatures decideProfile genDrvsByProfile; + profilesByName = { + dev = builtins.fromTOML "codegen-units = 1\n"; + release = builtins.fromTOML "codegen-units = 1\n"; + }; + rootFeatures' = expandFeatures rootFeatures; + overridableMkRustCrate = f: + let + drvs = genDrvsByProfile profilesByName ({ profile, profileName }: mkRustCrate ({ inherit release profile hostPlatformCpu hostPlatformFeatures target profileOpts codegenOpts cargoUnstableFlags rustcLinkFlags rustcBuildFlags; } // (f profileName))); + in { compileMode ? null, profileName ? decideProfile compileMode release }: + let drv = drvs.${profileName}; in if compileMode == null then drv else drv.override { inherit compileMode; }; +in +{ + cargo2nixVersion = "0.11.0"; + workspace = { + enginelib = rustPackages.unknown.enginelib."0.1.7"; + }; + "registry+https://github.com/rust-lang/crates.io-index".adler2."2.0.0" = overridableMkRustCrate (profileName: rec { + name = "adler2"; + version = "2.0.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".ahash."0.8.11" = overridableMkRustCrate (profileName: rec { + name = "ahash"; + version = "0.8.11"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"; }; + dependencies = { + cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; + ${ if !((hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l") && hostPlatform.parsed.kernel.name == "none") then "once_cell" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; + zerocopy = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerocopy."0.7.35" { inherit profileName; }).out; + }; + buildDependencies = { + version_check = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".version_check."0.9.5" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".aho-corasick."1.1.3" = overridableMkRustCrate (profileName: rec { + name = "aho-corasick"; + version = "1.1.3"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"; }; + features = builtins.concatLists [ + [ "perf-literal" ] + [ "std" ] + ]; + dependencies = { + memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".allocator-api2."0.2.21" = overridableMkRustCrate (profileName: rec { + name = "allocator-api2"; + version = "0.2.21"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"; }; + features = builtins.concatLists [ + [ "alloc" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".anyhow."1.0.96" = overridableMkRustCrate (profileName: rec { + name = "anyhow"; + version = "1.0.96"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4"; }; + features = builtins.concatLists [ + [ "default" ] + [ "std" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".arc-swap."1.7.1" = overridableMkRustCrate (profileName: rec { + name = "arc-swap"; + version = "1.7.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".autocfg."1.4.0" = overridableMkRustCrate (profileName: rec { + name = "autocfg"; + version = "1.4.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".bincode."1.3.3" = overridableMkRustCrate (profileName: rec { + name = "bincode"; + version = "1.3.3"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"; }; + dependencies = { + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" = overridableMkRustCrate (profileName: rec { + name = "bitflags"; + version = "2.8.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36"; }; + features = builtins.concatLists [ + [ "std" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" = overridableMkRustCrate (profileName: rec { + name = "bstr"; + version = "1.11.3"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "std" ] + [ "unicode" ] + ]; + dependencies = { + memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; + regex_automata = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".regex-automata."0.4.9" { inherit profileName; }).out; + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".camino."1.1.9" = overridableMkRustCrate (profileName: rec { + name = "camino"; + version = "1.1.9"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3"; }; + features = builtins.concatLists [ + [ "serde" ] + [ "serde1" ] + ]; + dependencies = { + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".cargo-platform."0.1.9" = overridableMkRustCrate (profileName: rec { + name = "cargo-platform"; + version = "0.1.9"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea"; }; + dependencies = { + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".cargo_metadata."0.19.1" = overridableMkRustCrate (profileName: rec { + name = "cargo_metadata"; + version = "0.19.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "8769706aad5d996120af43197bf46ef6ad0fda35216b4505f926a365a232d924"; }; + features = builtins.concatLists [ + [ "default" ] + ]; + dependencies = { + camino = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".camino."1.1.9" { inherit profileName; }).out; + cargo_platform = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cargo-platform."0.1.9" { inherit profileName; }).out; + semver = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".semver."1.0.25" { inherit profileName; }).out; + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + serde_json = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.139" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" = overridableMkRustCrate (profileName: rec { + name = "cfg-if"; + version = "1.0.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".clru."0.6.2" = overridableMkRustCrate (profileName: rec { + name = "clru"; + version = "0.6.2"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".crc32fast."1.4.2" = overridableMkRustCrate (profileName: rec { + name = "crc32fast"; + version = "1.4.2"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"; }; + features = builtins.concatLists [ + [ "default" ] + [ "std" ] + ]; + dependencies = { + cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".darling."0.20.10" = overridableMkRustCrate (profileName: rec { + name = "darling"; + version = "0.20.10"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"; }; + features = builtins.concatLists [ + [ "default" ] + [ "suggestions" ] + ]; + dependencies = { + darling_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".darling_core."0.20.10" { inherit profileName; }).out; + darling_macro = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".darling_macro."0.20.10" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".darling_core."0.20.10" = overridableMkRustCrate (profileName: rec { + name = "darling_core"; + version = "0.20.10"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"; }; + features = builtins.concatLists [ + [ "strsim" ] + [ "suggestions" ] + ]; + dependencies = { + fnv = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".fnv."1.0.7" { inherit profileName; }).out; + ident_case = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".ident_case."1.0.1" { inherit profileName; }).out; + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + strsim = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".strsim."0.11.1" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".darling_macro."0.20.10" = overridableMkRustCrate (profileName: rec { + name = "darling_macro"; + version = "0.20.10"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"; }; + dependencies = { + darling_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".darling_core."0.20.10" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".deranged."0.3.11" = overridableMkRustCrate (profileName: rec { + name = "deranged"; + version = "0.3.11"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "powerfmt" ] + [ "std" ] + ]; + dependencies = { + powerfmt = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".powerfmt."0.2.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".derive_builder."0.20.2" = overridableMkRustCrate (profileName: rec { + name = "derive_builder"; + version = "0.20.2"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947"; }; + features = builtins.concatLists [ + [ "default" ] + [ "std" ] + ]; + dependencies = { + derive_builder_macro = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_builder_macro."0.20.2" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".derive_builder_core."0.20.2" = overridableMkRustCrate (profileName: rec { + name = "derive_builder_core"; + version = "0.20.2"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8"; }; + features = builtins.concatLists [ + [ "lib_has_std" ] + ]; + dependencies = { + darling = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".darling."0.20.10" { inherit profileName; }).out; + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".derive_builder_macro."0.20.2" = overridableMkRustCrate (profileName: rec { + name = "derive_builder_macro"; + version = "0.20.2"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c"; }; + features = builtins.concatLists [ + [ "lib_has_std" ] + ]; + dependencies = { + derive_builder_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_builder_core."0.20.2" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".directories."5.0.1" = overridableMkRustCrate (profileName: rec { + name = "directories"; + version = "5.0.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35"; }; + dependencies = { + dirs_sys = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".dirs-sys."0.4.1" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".dirs-sys."0.4.1" = overridableMkRustCrate (profileName: rec { + name = "dirs-sys"; + version = "0.4.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"; }; + dependencies = { + ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + option_ext = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".option-ext."0.2.0" { inherit profileName; }).out; + ${ if hostPlatform.parsed.kernel.name == "redox" then "redox_users" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".redox_users."0.4.6" { inherit profileName; }).out; + ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.48.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" = overridableMkRustCrate (profileName: rec { + name = "displaydoc"; + version = "0.2.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"; }; + dependencies = { + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".dunce."1.0.5" = overridableMkRustCrate (profileName: rec { + name = "dunce"; + version = "1.0.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"; }; + }); + + "unknown".enginelib."0.1.7" = overridableMkRustCrate (profileName: rec { + name = "enginelib"; + version = "0.1.7"; + registry = "unknown"; + src = fetchCrateLocal workspaceSrc; + dependencies = { + bincode = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bincode."1.3.3" { inherit profileName; }).out; + directories = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".directories."5.0.1" { inherit profileName; }).out; + libloading = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libloading."0.8.6" { inherit profileName; }).out; + oxifs = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".oxifs."0.1.0" { inherit profileName; }).out; + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + toml = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".toml."0.8.20" { inherit profileName; }).out; + tracing = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing."0.1.41" { inherit profileName; }).out; + tracing_subscriber = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing-subscriber."0.3.19" { inherit profileName; }).out; + }; + buildDependencies = { + vergen_gix = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".vergen-gix."1.0.6" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".equivalent."1.0.2" = overridableMkRustCrate (profileName: rec { + name = "equivalent"; + version = "1.0.2"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".errno."0.3.10" = overridableMkRustCrate (profileName: rec { + name = "errno"; + version = "0.3.10"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d"; }; + features = builtins.concatLists [ + [ "std" ] + ]; + dependencies = { + ${ if hostPlatform.isUnix || hostPlatform.parsed.kernel.name == "hermit" || hostPlatform.parsed.kernel.name == "wasi" then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".faster-hex."0.9.0" = overridableMkRustCrate (profileName: rec { + name = "faster-hex"; + version = "0.9.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "default" ] + [ "serde" ] + [ "std" ] + ]; + dependencies = { + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".fastrand."2.3.0" = overridableMkRustCrate (profileName: rec { + name = "fastrand"; + version = "2.3.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "default" ] + [ "std" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".filetime."0.2.25" = overridableMkRustCrate (profileName: rec { + name = "filetime"; + version = "0.2.25"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586"; }; + dependencies = { + cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; + ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + ${ if hostPlatform.parsed.kernel.name == "redox" then "libredox" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libredox."0.1.3" { inherit profileName; }).out; + ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".flate2."1.0.35" = overridableMkRustCrate (profileName: rec { + name = "flate2"; + version = "1.0.35"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c"; }; + features = builtins.concatLists [ + [ "any_impl" ] + [ "miniz_oxide" ] + [ "rust_backend" ] + ]; + dependencies = { + crc32fast = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".crc32fast."1.4.2" { inherit profileName; }).out; + miniz_oxide = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".miniz_oxide."0.8.5" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".fnv."1.0.7" = overridableMkRustCrate (profileName: rec { + name = "fnv"; + version = "1.0.7"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"; }; + features = builtins.concatLists [ + [ "default" ] + [ "std" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".form_urlencoded."1.2.1" = overridableMkRustCrate (profileName: rec { + name = "form_urlencoded"; + version = "1.2.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "std" ] + ]; + dependencies = { + percent_encoding = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".percent-encoding."2.3.1" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".getrandom."0.2.15" = overridableMkRustCrate (profileName: rec { + name = "getrandom"; + version = "0.2.15"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"; }; + features = builtins.concatLists [ + [ "std" ] + ]; + dependencies = { + cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; + ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + ${ if hostPlatform.parsed.kernel.name == "wasi" then "wasi" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".wasi."0.11.0+wasi-snapshot-preview1" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".getrandom."0.3.1" = overridableMkRustCrate (profileName: rec { + name = "getrandom"; + version = "0.3.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8"; }; + dependencies = { + cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; + ${ if hostPlatform.parsed.kernel.name == "linux" || hostPlatform.parsed.kernel.name == "android" || hostPlatform.parsed.kernel.name == "dragonfly" || hostPlatform.parsed.kernel.name == "freebsd" || hostPlatform.parsed.kernel.name == "hurd" || hostPlatform.parsed.kernel.name == "illumos" || hostPlatform.parsed.kernel.name == "horizon" && (hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l") || hostPlatform.parsed.kernel.name == "haiku" || hostPlatform.parsed.kernel.name == "redox" || hostPlatform.parsed.kernel.name == "nto" || hostPlatform.parsed.kernel.name == "aix" || hostPlatform.parsed.kernel.name == "ios" || hostPlatform.parsed.kernel.name == "visionos" || hostPlatform.parsed.kernel.name == "watchos" || hostPlatform.parsed.kernel.name == "tvos" || hostPlatform.parsed.kernel.name == "darwin" || hostPlatform.parsed.kernel.name == "openbsd" || hostPlatform.parsed.kernel.name == "vita" || hostPlatform.parsed.kernel.name == "emscripten" || hostPlatform.parsed.kernel.name == "netbsd" || hostPlatform.parsed.kernel.name == "solaris" || hostPlatform.parsed.kernel.name == "vxworks" then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + ${ if hostPlatform.parsed.cpu.name == "wasm32" && hostPlatform.parsed.kernel.name == "wasi" && hostPlatform.parsed.abi.name == "p2" then "wasi" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".wasi."0.13.3+wasi-0.2.2" { inherit profileName; }).out; + ${ if hostPlatform.isWindows && !(hostPlatform.parsed.vendor.name == "win7") then "windows_targets" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.52.6" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix."0.69.1" = overridableMkRustCrate (profileName: rec { + name = "gix"; + version = "0.69.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "8d0eebdaecdcf405d5433a36f85e4f058cf4de48ee2604388be0dbccbaad353e"; }; + features = builtins.concatLists [ + [ "index" ] + [ "interrupt" ] + [ "revision" ] + ]; + dependencies = { + gix_actor = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-actor."0.33.2" { inherit profileName; }).out; + gix_commitgraph = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-commitgraph."0.25.1" { inherit profileName; }).out; + gix_config = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-config."0.42.0" { inherit profileName; }).out; + gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; + gix_diff = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-diff."0.49.0" { inherit profileName; }).out; + gix_discover = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-discover."0.37.0" { inherit profileName; }).out; + gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; + gix_fs = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-fs."0.12.1" { inherit profileName; }).out; + gix_glob = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-glob."0.17.1" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_hashtable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" { inherit profileName; }).out; + gix_index = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-index."0.37.0" { inherit profileName; }).out; + gix_lock = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-lock."15.0.1" { inherit profileName; }).out; + gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; + gix_odb = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-odb."0.66.0" { inherit profileName; }).out; + gix_pack = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-pack."0.56.0" { inherit profileName; }).out; + gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; + gix_protocol = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-protocol."0.47.0" { inherit profileName; }).out; + gix_ref = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-ref."0.49.1" { inherit profileName; }).out; + gix_refspec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-refspec."0.27.0" { inherit profileName; }).out; + gix_revision = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-revision."0.31.1" { inherit profileName; }).out; + gix_revwalk = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-revwalk."0.17.0" { inherit profileName; }).out; + gix_sec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-sec."0.10.11" { inherit profileName; }).out; + gix_shallow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-shallow."0.1.0" { inherit profileName; }).out; + gix_tempfile = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-tempfile."15.0.0" { inherit profileName; }).out; + gix_trace = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-trace."0.1.12" { inherit profileName; }).out; + gix_traverse = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-traverse."0.43.1" { inherit profileName; }).out; + gix_url = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-url."0.28.2" { inherit profileName; }).out; + gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; + gix_validate = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-validate."0.9.3" { inherit profileName; }).out; + once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; + parking_lot = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.12.3" { inherit profileName; }).out; + signal_hook = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".signal-hook."0.3.17" { inherit profileName; }).out; + smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-actor."0.33.2" = overridableMkRustCrate (profileName: rec { + name = "gix-actor"; + version = "0.33.2"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "20018a1a6332e065f1fcc8305c1c932c6b8c9985edea2284b3c79dc6fa3ee4b2"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; + gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; + itoa = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".itoa."1.0.14" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + winnow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winnow."0.6.26" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-bitmap."0.2.14" = overridableMkRustCrate (profileName: rec { + name = "gix-bitmap"; + version = "0.2.14"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "b1db9765c69502650da68f0804e3dc2b5f8ccc6a2d104ca6c85bc40700d37540"; }; + dependencies = { + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-chunk."0.4.11" = overridableMkRustCrate (profileName: rec { + name = "gix-chunk"; + version = "0.4.11"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "0b1f1d8764958699dc764e3f727cef280ff4d1bd92c107bbf8acd85b30c1bd6f"; }; + dependencies = { + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-command."0.4.1" = overridableMkRustCrate (profileName: rec { + name = "gix-command"; + version = "0.4.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "cb410b84d6575db45e62025a9118bdbf4d4b099ce7575a76161e898d9ca98df1"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; + gix_trace = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-trace."0.1.12" { inherit profileName; }).out; + shell_words = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".shell-words."1.1.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-commitgraph."0.25.1" = overridableMkRustCrate (profileName: rec { + name = "gix-commitgraph"; + version = "0.25.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "a8da6591a7868fb2b6dabddea6b09988b0b05e0213f938dbaa11a03dd7a48d85"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_chunk = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-chunk."0.4.11" { inherit profileName; }).out; + gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + memmap2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memmap2."0.9.5" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-config."0.42.0" = overridableMkRustCrate (profileName: rec { + name = "gix-config"; + version = "0.42.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "6649b406ca1f99cb148959cf00468b231f07950f8ec438cc0903cda563606f19"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_config_value = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-config-value."0.14.11" { inherit profileName; }).out; + gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; + gix_glob = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-glob."0.17.1" { inherit profileName; }).out; + gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; + gix_ref = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-ref."0.49.1" { inherit profileName; }).out; + gix_sec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-sec."0.10.11" { inherit profileName; }).out; + memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; + once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; + smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + unicode_bom = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".unicode-bom."2.0.3" { inherit profileName; }).out; + winnow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winnow."0.6.26" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-config-value."0.14.11" = overridableMkRustCrate (profileName: rec { + name = "gix-config-value"; + version = "0.14.11"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "11365144ef93082f3403471dbaa94cfe4b5e72743bdb9560719a251d439f4cee"; }; + dependencies = { + bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; + ${ if !hostPlatform.isWindows then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" = overridableMkRustCrate (profileName: rec { + name = "gix-date"; + version = "0.9.3"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "c57c477b645ee248b173bb1176b52dd528872f12c50375801a58aaf5ae91113f"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + itoa = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".itoa."1.0.14" { inherit profileName; }).out; + jiff = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".jiff."0.1.29" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-diff."0.49.0" = overridableMkRustCrate (profileName: rec { + name = "gix-diff"; + version = "0.49.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "a8e92566eccbca205a0a0f96ffb0327c061e85bc5c95abbcddfe177498aa04f6"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-discover."0.37.0" = overridableMkRustCrate (profileName: rec { + name = "gix-discover"; + version = "0.37.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "83bf6dfa4e266a4a9becb4d18fc801f92c3f7cc6c433dd86fdadbcf315ffb6ef"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + ${ if hostPlatform.isWindows then "dunce" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".dunce."1.0.5" { inherit profileName; }).out; + gix_fs = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-fs."0.12.1" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; + gix_ref = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-ref."0.49.1" { inherit profileName; }).out; + gix_sec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-sec."0.10.11" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" = overridableMkRustCrate (profileName: rec { + name = "gix-features"; + version = "0.39.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "7d85d673f2e022a340dba4713bed77ef2cf4cd737d2f3e0f159d45e0935fd81f"; }; + features = builtins.concatLists [ + [ "crc32" ] + [ "default" ] + [ "fs-read-dir" ] + [ "once_cell" ] + [ "prodash" ] + [ "progress" ] + [ "rustsha1" ] + [ "walkdir" ] + [ "zlib" ] + ]; + dependencies = { + crc32fast = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".crc32fast."1.4.2" { inherit profileName; }).out; + flate2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".flate2."1.0.35" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_trace = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-trace."0.1.12" { inherit profileName; }).out; + gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; + ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; + prodash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".prodash."29.0.0" { inherit profileName; }).out; + sha1_smol = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".sha1_smol."1.0.1" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + walkdir = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".walkdir."2.5.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-fs."0.12.1" = overridableMkRustCrate (profileName: rec { + name = "gix-fs"; + version = "0.12.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "3b3d4fac505a621f97e5ce2c69fdc425742af00c0920363ca4074f0eb48b1db9"; }; + dependencies = { + fastrand = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".fastrand."2.3.0" { inherit profileName; }).out; + gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; + gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-glob."0.17.1" = overridableMkRustCrate (profileName: rec { + name = "gix-glob"; + version = "0.17.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "aaf69a6bec0a3581567484bf99a4003afcaf6c469fd4214352517ea355cf3435"; }; + dependencies = { + bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; + gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" = overridableMkRustCrate (profileName: rec { + name = "gix-hash"; + version = "0.15.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "0b5eccc17194ed0e67d49285e4853307e4147e95407f91c1c3e4a13ba9f4e4ce"; }; + dependencies = { + faster_hex = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".faster-hex."0.9.0" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" = overridableMkRustCrate (profileName: rec { + name = "gix-hashtable"; + version = "0.6.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "0ef65b256631078ef733bc5530c4e6b1c2e7d5c2830b75d4e9034ab3997d18fe"; }; + dependencies = { + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + hashbrown = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hashbrown."0.14.5" { inherit profileName; }).out; + parking_lot = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.12.3" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-index."0.37.0" = overridableMkRustCrate (profileName: rec { + name = "gix-index"; + version = "0.37.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "270645fd20556b64c8ffa1540d921b281e6994413a0ca068596f97e9367a257a"; }; + dependencies = { + bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + filetime = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".filetime."0.2.25" { inherit profileName; }).out; + fnv = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".fnv."1.0.7" { inherit profileName; }).out; + gix_bitmap = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-bitmap."0.2.14" { inherit profileName; }).out; + gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; + gix_fs = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-fs."0.12.1" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_lock = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-lock."15.0.1" { inherit profileName; }).out; + gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; + gix_traverse = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-traverse."0.43.1" { inherit profileName; }).out; + gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; + gix_validate = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-validate."0.9.3" { inherit profileName; }).out; + hashbrown = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hashbrown."0.14.5" { inherit profileName; }).out; + itoa = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".itoa."1.0.14" { inherit profileName; }).out; + ${ if !hostPlatform.isWindows then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + memmap2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memmap2."0.9.5" { inherit profileName; }).out; + ${ if !hostPlatform.isWindows then "rustix" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".rustix."0.38.44" { inherit profileName; }).out; + smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-lock."15.0.1" = overridableMkRustCrate (profileName: rec { + name = "gix-lock"; + version = "15.0.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "1cd3ab68a452db63d9f3ebdacb10f30dba1fa0d31ac64f4203d395ed1102d940"; }; + dependencies = { + gix_tempfile = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-tempfile."15.0.0" { inherit profileName; }).out; + gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" = overridableMkRustCrate (profileName: rec { + name = "gix-object"; + version = "0.46.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "e42d58010183ef033f31088479b4eb92b44fe341b35b62d39eb8b185573d77ea"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_actor = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-actor."0.33.2" { inherit profileName; }).out; + gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; + gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_hashtable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" { inherit profileName; }).out; + gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; + gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; + gix_validate = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-validate."0.9.3" { inherit profileName; }).out; + itoa = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".itoa."1.0.14" { inherit profileName; }).out; + smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + winnow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winnow."0.6.26" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-odb."0.66.0" = overridableMkRustCrate (profileName: rec { + name = "gix-odb"; + version = "0.66.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "cb780eceb3372ee204469478de02eaa34f6ba98247df0186337e0333de97d0ae"; }; + dependencies = { + arc_swap = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".arc-swap."1.7.1" { inherit profileName; }).out; + gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; + gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; + gix_fs = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-fs."0.12.1" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_hashtable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" { inherit profileName; }).out; + gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; + gix_pack = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-pack."0.56.0" { inherit profileName; }).out; + gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; + gix_quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-quote."0.4.15" { inherit profileName; }).out; + parking_lot = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.12.3" { inherit profileName; }).out; + tempfile = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tempfile."3.17.1" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-pack."0.56.0" = overridableMkRustCrate (profileName: rec { + name = "gix-pack"; + version = "0.56.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "4158928929be29cae7ab97afc8e820a932071a7f39d8ba388eed2380c12c566c"; }; + features = builtins.concatLists [ + [ "object-cache-dynamic" ] + ]; + dependencies = { + clru = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".clru."0.6.2" { inherit profileName; }).out; + gix_chunk = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-chunk."0.4.11" { inherit profileName; }).out; + gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_hashtable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" { inherit profileName; }).out; + gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; + gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; + memmap2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memmap2."0.9.5" { inherit profileName; }).out; + smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-packetline."0.18.3" = overridableMkRustCrate (profileName: rec { + name = "gix-packetline"; + version = "0.18.3"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "c7e5ae6bc3ac160a6bf44a55f5537813ca3ddb08549c0fd3e7ef699c73c439cd"; }; + features = builtins.concatLists [ + [ "default" ] + ]; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + faster_hex = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".faster-hex."0.9.0" { inherit profileName; }).out; + gix_trace = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-trace."0.1.12" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" = overridableMkRustCrate (profileName: rec { + name = "gix-path"; + version = "0.10.14"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "c40f12bb65a8299be0cfb90fe718e3be236b7a94b434877012980863a883a99f"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_trace = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-trace."0.1.12" { inherit profileName; }).out; + home = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".home."0.5.11" { inherit profileName; }).out; + once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-protocol."0.47.0" = overridableMkRustCrate (profileName: rec { + name = "gix-protocol"; + version = "0.47.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "c84642e8b6fed7035ce9cc449593019c55b0ec1af7a5dce1ab8a0636eaaeb067"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; + gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_ref = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-ref."0.49.1" { inherit profileName; }).out; + gix_shallow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-shallow."0.1.0" { inherit profileName; }).out; + gix_transport = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-transport."0.44.0" { inherit profileName; }).out; + gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; + maybe_async = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".maybe-async."0.2.10" { profileName = "__noProfile"; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + winnow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winnow."0.6.26" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-quote."0.4.15" = overridableMkRustCrate (profileName: rec { + name = "gix-quote"; + version = "0.4.15"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "e49357fccdb0c85c0d3a3292a9f6db32d9b3535959b5471bb9624908f4a066c6"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-ref."0.49.1" = overridableMkRustCrate (profileName: rec { + name = "gix-ref"; + version = "0.49.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "a91b61776c839d0f1b7114901179afb0947aa7f4d30793ca1c56d335dfef485f"; }; + dependencies = { + gix_actor = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-actor."0.33.2" { inherit profileName; }).out; + gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; + gix_fs = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-fs."0.12.1" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_lock = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-lock."15.0.1" { inherit profileName; }).out; + gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; + gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; + gix_tempfile = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-tempfile."15.0.0" { inherit profileName; }).out; + gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; + gix_validate = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-validate."0.9.3" { inherit profileName; }).out; + memmap2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memmap2."0.9.5" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + winnow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winnow."0.6.26" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-refspec."0.27.0" = overridableMkRustCrate (profileName: rec { + name = "gix-refspec"; + version = "0.27.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "00c056bb747868c7eb0aeb352c9f9181ab8ca3d0a2550f16470803500c6c413d"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_revision = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-revision."0.31.1" { inherit profileName; }).out; + gix_validate = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-validate."0.9.3" { inherit profileName; }).out; + smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-revision."0.31.1" = overridableMkRustCrate (profileName: rec { + name = "gix-revision"; + version = "0.31.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "61e1ddc474405a68d2ce8485705dd72fe6ce959f2f5fe718601ead5da2c8f9e7"; }; + features = builtins.concatLists [ + [ "describe" ] + [ "merge_base" ] + ]; + dependencies = { + bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_commitgraph = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-commitgraph."0.25.1" { inherit profileName; }).out; + gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_hashtable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" { inherit profileName; }).out; + gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; + gix_revwalk = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-revwalk."0.17.0" { inherit profileName; }).out; + gix_trace = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-trace."0.1.12" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-revwalk."0.17.0" = overridableMkRustCrate (profileName: rec { + name = "gix-revwalk"; + version = "0.17.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "510026fc32f456f8f067d8f37c34088b97a36b2229d88a6a5023ef179fcb109d"; }; + dependencies = { + gix_commitgraph = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-commitgraph."0.25.1" { inherit profileName; }).out; + gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_hashtable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" { inherit profileName; }).out; + gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; + smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-sec."0.10.11" = overridableMkRustCrate (profileName: rec { + name = "gix-sec"; + version = "0.10.11"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "d84dae13271f4313f8d60a166bf27e54c968c7c33e2ffd31c48cafe5da649875"; }; + dependencies = { + bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; + ${ if hostPlatform.isWindows then "gix_path" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; + ${ if !hostPlatform.isWindows then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.52.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-shallow."0.1.0" = overridableMkRustCrate (profileName: rec { + name = "gix-shallow"; + version = "0.1.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "88d2673242e87492cb6ff671f0c01f689061ca306c4020f137197f3abc84ce01"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_lock = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-lock."15.0.1" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-tempfile."15.0.0" = overridableMkRustCrate (profileName: rec { + name = "gix-tempfile"; + version = "15.0.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "2feb86ef094cc77a4a9a5afbfe5de626897351bbbd0de3cb9314baf3049adb82"; }; + features = builtins.concatLists [ + [ "signals" ] + ]; + dependencies = { + gix_fs = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-fs."0.12.1" { inherit profileName; }).out; + ${ if !hostPlatform.isWindows then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; + parking_lot = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.12.3" { inherit profileName; }).out; + signal_hook = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".signal-hook."0.3.17" { inherit profileName; }).out; + signal_hook_registry = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".signal-hook-registry."1.4.2" { inherit profileName; }).out; + tempfile = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tempfile."3.17.1" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-trace."0.1.12" = overridableMkRustCrate (profileName: rec { + name = "gix-trace"; + version = "0.1.12"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "7c396a2036920c69695f760a65e7f2677267ccf483f25046977d87e4cb2665f7"; }; + features = builtins.concatLists [ + [ "default" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-transport."0.44.0" = overridableMkRustCrate (profileName: rec { + name = "gix-transport"; + version = "0.44.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "dd04d91e507a8713cfa2318d5a85d75b36e53a40379cc7eb7634ce400ecacbaf"; }; + features = builtins.concatLists [ + [ "default" ] + ]; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_command = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-command."0.4.1" { inherit profileName; }).out; + gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; + gix_packetline = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-packetline."0.18.3" { inherit profileName; }).out; + gix_quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-quote."0.4.15" { inherit profileName; }).out; + gix_sec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-sec."0.10.11" { inherit profileName; }).out; + gix_url = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-url."0.28.2" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-traverse."0.43.1" = overridableMkRustCrate (profileName: rec { + name = "gix-traverse"; + version = "0.43.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "6ed47d648619e23e93f971d2bba0d10c1100e54ef95d2981d609907a8cabac89"; }; + dependencies = { + bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; + gix_commitgraph = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-commitgraph."0.25.1" { inherit profileName; }).out; + gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; + gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; + gix_hashtable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" { inherit profileName; }).out; + gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; + gix_revwalk = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-revwalk."0.17.0" { inherit profileName; }).out; + smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-url."0.28.2" = overridableMkRustCrate (profileName: rec { + name = "gix-url"; + version = "0.28.2"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "d096fb733ba6bd3f5403dba8bd72bdd8809fe2b347b57844040b8f49c93492d9"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; + gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; + percent_encoding = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".percent-encoding."2.3.1" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + url = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".url."2.5.4" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" = overridableMkRustCrate (profileName: rec { + name = "gix-utils"; + version = "0.1.14"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "ff08f24e03ac8916c478c8419d7d3c33393da9bb41fa4c24455d5406aeefd35f"; }; + dependencies = { + fastrand = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".fastrand."2.3.0" { inherit profileName; }).out; + unicode_normalization = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".unicode-normalization."0.1.24" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".gix-validate."0.9.3" = overridableMkRustCrate (profileName: rec { + name = "gix-validate"; + version = "0.9.3"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "9eaa01c3337d885617c0a42e92823922a2aea71f4caeace6fe87002bdcadbd90"; }; + dependencies = { + bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".hashbrown."0.14.5" = overridableMkRustCrate (profileName: rec { + name = "hashbrown"; + version = "0.14.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"; }; + features = builtins.concatLists [ + [ "ahash" ] + [ "allocator-api2" ] + [ "default" ] + [ "inline-more" ] + [ "raw" ] + ]; + dependencies = { + ahash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".ahash."0.8.11" { inherit profileName; }).out; + allocator_api2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".allocator-api2."0.2.21" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".hashbrown."0.15.2" = overridableMkRustCrate (profileName: rec { + name = "hashbrown"; + version = "0.15.2"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".home."0.5.11" = overridableMkRustCrate (profileName: rec { + name = "home"; + version = "0.5.11"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf"; }; + dependencies = { + ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".icu_collections."1.5.0" = overridableMkRustCrate (profileName: rec { + name = "icu_collections"; + version = "1.5.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"; }; + dependencies = { + displaydoc = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" { profileName = "__noProfile"; }).out; + yoke = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".yoke."0.7.5" { inherit profileName; }).out; + zerofrom = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerofrom."0.1.5" { inherit profileName; }).out; + zerovec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".icu_locid."1.5.0" = overridableMkRustCrate (profileName: rec { + name = "icu_locid"; + version = "1.5.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"; }; + features = builtins.concatLists [ + [ "zerovec" ] + ]; + dependencies = { + displaydoc = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" { profileName = "__noProfile"; }).out; + litemap = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".litemap."0.7.4" { inherit profileName; }).out; + tinystr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tinystr."0.7.6" { inherit profileName; }).out; + writeable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".writeable."0.5.5" { inherit profileName; }).out; + zerovec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".icu_locid_transform."1.5.0" = overridableMkRustCrate (profileName: rec { + name = "icu_locid_transform"; + version = "1.5.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"; }; + features = builtins.concatLists [ + [ "compiled_data" ] + ]; + dependencies = { + displaydoc = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" { profileName = "__noProfile"; }).out; + icu_locid = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_locid."1.5.0" { inherit profileName; }).out; + icu_locid_transform_data = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_locid_transform_data."1.5.0" { inherit profileName; }).out; + icu_provider = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_provider."1.5.0" { inherit profileName; }).out; + tinystr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tinystr."0.7.6" { inherit profileName; }).out; + zerovec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".icu_locid_transform_data."1.5.0" = overridableMkRustCrate (profileName: rec { + name = "icu_locid_transform_data"; + version = "1.5.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".icu_normalizer."1.5.0" = overridableMkRustCrate (profileName: rec { + name = "icu_normalizer"; + version = "1.5.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"; }; + features = builtins.concatLists [ + [ "compiled_data" ] + [ "default" ] + ]; + dependencies = { + displaydoc = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" { profileName = "__noProfile"; }).out; + icu_collections = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_collections."1.5.0" { inherit profileName; }).out; + icu_normalizer_data = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_normalizer_data."1.5.0" { inherit profileName; }).out; + icu_properties = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_properties."1.5.1" { inherit profileName; }).out; + icu_provider = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_provider."1.5.0" { inherit profileName; }).out; + smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; + utf16_iter = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".utf16_iter."1.0.5" { inherit profileName; }).out; + utf8_iter = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".utf8_iter."1.0.4" { inherit profileName; }).out; + write16 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".write16."1.0.0" { inherit profileName; }).out; + zerovec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".icu_normalizer_data."1.5.0" = overridableMkRustCrate (profileName: rec { + name = "icu_normalizer_data"; + version = "1.5.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".icu_properties."1.5.1" = overridableMkRustCrate (profileName: rec { + name = "icu_properties"; + version = "1.5.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5"; }; + features = builtins.concatLists [ + [ "compiled_data" ] + [ "default" ] + ]; + dependencies = { + displaydoc = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" { profileName = "__noProfile"; }).out; + icu_collections = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_collections."1.5.0" { inherit profileName; }).out; + icu_locid_transform = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_locid_transform."1.5.0" { inherit profileName; }).out; + icu_properties_data = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_properties_data."1.5.0" { inherit profileName; }).out; + icu_provider = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_provider."1.5.0" { inherit profileName; }).out; + tinystr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tinystr."0.7.6" { inherit profileName; }).out; + zerovec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".icu_properties_data."1.5.0" = overridableMkRustCrate (profileName: rec { + name = "icu_properties_data"; + version = "1.5.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".icu_provider."1.5.0" = overridableMkRustCrate (profileName: rec { + name = "icu_provider"; + version = "1.5.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"; }; + features = builtins.concatLists [ + [ "macros" ] + ]; + dependencies = { + displaydoc = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" { profileName = "__noProfile"; }).out; + icu_locid = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_locid."1.5.0" { inherit profileName; }).out; + icu_provider_macros = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_provider_macros."1.5.0" { profileName = "__noProfile"; }).out; + stable_deref_trait = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".stable_deref_trait."1.2.0" { inherit profileName; }).out; + tinystr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tinystr."0.7.6" { inherit profileName; }).out; + writeable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".writeable."0.5.5" { inherit profileName; }).out; + yoke = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".yoke."0.7.5" { inherit profileName; }).out; + zerofrom = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerofrom."0.1.5" { inherit profileName; }).out; + zerovec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".icu_provider_macros."1.5.0" = overridableMkRustCrate (profileName: rec { + name = "icu_provider_macros"; + version = "1.5.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"; }; + dependencies = { + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".ident_case."1.0.1" = overridableMkRustCrate (profileName: rec { + name = "ident_case"; + version = "1.0.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".idna."1.0.3" = overridableMkRustCrate (profileName: rec { + name = "idna"; + version = "1.0.3"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "compiled_data" ] + [ "std" ] + ]; + dependencies = { + idna_adapter = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".idna_adapter."1.2.0" { inherit profileName; }).out; + smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; + utf8_iter = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".utf8_iter."1.0.4" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".idna_adapter."1.2.0" = overridableMkRustCrate (profileName: rec { + name = "idna_adapter"; + version = "1.2.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71"; }; + features = builtins.concatLists [ + [ "compiled_data" ] + ]; + dependencies = { + icu_normalizer = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_normalizer."1.5.0" { inherit profileName; }).out; + icu_properties = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_properties."1.5.1" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".indexmap."2.7.1" = overridableMkRustCrate (profileName: rec { + name = "indexmap"; + version = "2.7.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652"; }; + features = builtins.concatLists [ + [ "default" ] + [ "std" ] + ]; + dependencies = { + equivalent = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".equivalent."1.0.2" { inherit profileName; }).out; + hashbrown = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hashbrown."0.15.2" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".itoa."1.0.14" = overridableMkRustCrate (profileName: rec { + name = "itoa"; + version = "1.0.14"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".jiff."0.1.29" = overridableMkRustCrate (profileName: rec { + name = "jiff"; + version = "0.1.29"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "c04ef77ae73f3cf50510712722f0c4e8b46f5aaa1bf5ffad2ae213e6495e78e5"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "default" ] + [ "std" ] + [ "tz-system" ] + [ "tzdb-bundle-platform" ] + [ "tzdb-concatenated" ] + [ "tzdb-zoneinfo" ] + ]; + dependencies = { + ${ if hostPlatform.isWindows then "jiff_tzdb_platform" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".jiff-tzdb-platform."0.1.2" { inherit profileName; }).out; + log = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.26" { inherit profileName; }).out; + portable_atomic = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".portable-atomic."1.10.0" { inherit profileName; }).out; + portable_atomic_util = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".portable-atomic-util."0.2.4" { inherit profileName; }).out; + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".jiff-tzdb."0.1.2" = overridableMkRustCrate (profileName: rec { + name = "jiff-tzdb"; + version = "0.1.2"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "cf2cec2f5d266af45a071ece48b1fb89f3b00b2421ac3a5fe10285a6caaa60d3"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".jiff-tzdb-platform."0.1.2" = overridableMkRustCrate (profileName: rec { + name = "jiff-tzdb-platform"; + version = "0.1.2"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "a63c62e404e7b92979d2792352d885a7f8f83fd1d0d31eea582d77b2ceca697e"; }; + dependencies = { + jiff_tzdb = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".jiff-tzdb."0.1.2" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".lazy_static."1.5.0" = overridableMkRustCrate (profileName: rec { + name = "lazy_static"; + version = "1.5.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" = overridableMkRustCrate (profileName: rec { + name = "libc"; + version = "0.2.169"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"; }; + features = builtins.concatLists [ + [ "default" ] + [ "extra_traits" ] + [ "std" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".libloading."0.8.6" = overridableMkRustCrate (profileName: rec { + name = "libloading"; + version = "0.8.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"; }; + dependencies = { + ${ if hostPlatform.isUnix then "cfg_if" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; + ${ if hostPlatform.isWindows then "windows_targets" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.52.6" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".libredox."0.1.3" = overridableMkRustCrate (profileName: rec { + name = "libredox"; + version = "0.1.3"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"; }; + features = builtins.concatLists [ + [ "call" ] + [ "default" ] + [ "redox_syscall" ] + [ "std" ] + ]; + dependencies = { + bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; + libc = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + syscall = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".redox_syscall."0.5.9" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".linux-raw-sys."0.4.15" = overridableMkRustCrate (profileName: rec { + name = "linux-raw-sys"; + version = "0.4.15"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"; }; + features = builtins.concatLists [ + [ "elf" ] + [ "errno" ] + [ "general" ] + [ "ioctl" ] + [ "no_std" ] + [ "std" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".litemap."0.7.4" = overridableMkRustCrate (profileName: rec { + name = "litemap"; + version = "0.7.4"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104"; }; + features = builtins.concatLists [ + [ "alloc" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".lock_api."0.4.12" = overridableMkRustCrate (profileName: rec { + name = "lock_api"; + version = "0.4.12"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"; }; + features = builtins.concatLists [ + [ "atomic_usize" ] + [ "default" ] + ]; + dependencies = { + scopeguard = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".scopeguard."1.2.0" { inherit profileName; }).out; + }; + buildDependencies = { + autocfg = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".autocfg."1.4.0" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".log."0.4.26" = overridableMkRustCrate (profileName: rec { + name = "log"; + version = "0.4.26"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e"; }; + features = builtins.concatLists [ + [ "std" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".maybe-async."0.2.10" = overridableMkRustCrate (profileName: rec { + name = "maybe-async"; + version = "0.2.10"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11"; }; + features = builtins.concatLists [ + [ "default" ] + ]; + dependencies = { + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" = overridableMkRustCrate (profileName: rec { + name = "memchr"; + version = "2.7.4"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "default" ] + [ "std" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".memmap2."0.9.5" = overridableMkRustCrate (profileName: rec { + name = "memmap2"; + version = "0.9.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f"; }; + dependencies = { + ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".miniz_oxide."0.8.5" = overridableMkRustCrate (profileName: rec { + name = "miniz_oxide"; + version = "0.8.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5"; }; + features = builtins.concatLists [ + [ "with-alloc" ] + ]; + dependencies = { + adler2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".adler2."2.0.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".nu-ansi-term."0.46.0" = overridableMkRustCrate (profileName: rec { + name = "nu-ansi-term"; + version = "0.46.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"; }; + dependencies = { + overload = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".overload."0.1.1" { inherit profileName; }).out; + ${ if hostPlatform.parsed.kernel.name == "windows" then "winapi" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winapi."0.3.9" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".num-conv."0.1.0" = overridableMkRustCrate (profileName: rec { + name = "num-conv"; + version = "0.1.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".num_threads."0.1.7" = overridableMkRustCrate (profileName: rec { + name = "num_threads"; + version = "0.1.7"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"; }; + dependencies = { + ${ if hostPlatform.parsed.kernel.name == "darwin" || hostPlatform.parsed.kernel.name == "ios" || hostPlatform.parsed.kernel.name == "freebsd" then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" = overridableMkRustCrate (profileName: rec { + name = "once_cell"; + version = "1.20.3"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "default" ] + [ "race" ] + [ "std" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".option-ext."0.2.0" = overridableMkRustCrate (profileName: rec { + name = "option-ext"; + version = "0.2.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".overload."0.1.1" = overridableMkRustCrate (profileName: rec { + name = "overload"; + version = "0.1.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".oxifs."0.1.0" = overridableMkRustCrate (profileName: rec { + name = "oxifs"; + version = "0.1.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "792609ce5126ce20295e83d7d4129d338b9d8f896cbc774906b90c274b6e1235"; }; + dependencies = { + tar = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tar."0.4.44" { inherit profileName; }).out; + tempfile = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tempfile."3.17.1" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.12.3" = overridableMkRustCrate (profileName: rec { + name = "parking_lot"; + version = "0.12.3"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"; }; + features = builtins.concatLists [ + [ "default" ] + ]; + dependencies = { + lock_api = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".lock_api."0.4.12" { inherit profileName; }).out; + parking_lot_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot_core."0.9.10" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".parking_lot_core."0.9.10" = overridableMkRustCrate (profileName: rec { + name = "parking_lot_core"; + version = "0.9.10"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"; }; + dependencies = { + cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; + ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + ${ if hostPlatform.parsed.kernel.name == "redox" then "syscall" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".redox_syscall."0.5.9" { inherit profileName; }).out; + smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; + ${ if hostPlatform.isWindows then "windows_targets" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.52.6" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".percent-encoding."2.3.1" = overridableMkRustCrate (profileName: rec { + name = "percent-encoding"; + version = "2.3.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "default" ] + [ "std" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.2.16" = overridableMkRustCrate (profileName: rec { + name = "pin-project-lite"; + version = "0.2.16"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".portable-atomic."1.10.0" = overridableMkRustCrate (profileName: rec { + name = "portable-atomic"; + version = "1.10.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6"; }; + features = builtins.concatLists [ + [ "require-cas" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".portable-atomic-util."0.2.4" = overridableMkRustCrate (profileName: rec { + name = "portable-atomic-util"; + version = "0.2.4"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"; }; + features = builtins.concatLists [ + [ "alloc" ] + ]; + dependencies = { + portable_atomic = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".portable-atomic."1.10.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".powerfmt."0.2.0" = overridableMkRustCrate (profileName: rec { + name = "powerfmt"; + version = "0.2.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" = overridableMkRustCrate (profileName: rec { + name = "proc-macro2"; + version = "1.0.93"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"; }; + features = builtins.concatLists [ + [ "default" ] + [ "proc-macro" ] + ]; + dependencies = { + unicode_ident = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".unicode-ident."1.0.17" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".prodash."29.0.0" = overridableMkRustCrate (profileName: rec { + name = "prodash"; + version = "29.0.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "a266d8d6020c61a437be704c5e618037588e1985c7dbb7bf8d265db84cffe325"; }; + features = builtins.concatLists [ + [ "default" ] + [ "log" ] + [ "parking_lot" ] + [ "progress-tree" ] + [ "progress-tree-log" ] + ]; + dependencies = { + log = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.26" { inherit profileName; }).out; + parking_lot = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.12.3" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" = overridableMkRustCrate (profileName: rec { + name = "quote"; + version = "1.0.38"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"; }; + features = builtins.concatLists [ + [ "default" ] + [ "proc-macro" ] + ]; + dependencies = { + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".redox_syscall."0.5.9" = overridableMkRustCrate (profileName: rec { + name = "redox_syscall"; + version = "0.5.9"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f"; }; + features = builtins.concatLists [ + [ "default" ] + [ "userspace" ] + ]; + dependencies = { + bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".redox_users."0.4.6" = overridableMkRustCrate (profileName: rec { + name = "redox_users"; + version = "0.4.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"; }; + dependencies = { + getrandom = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".getrandom."0.2.15" { inherit profileName; }).out; + libredox = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libredox."0.1.3" { inherit profileName; }).out; + thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."1.0.69" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".regex."1.11.1" = overridableMkRustCrate (profileName: rec { + name = "regex"; + version = "1.11.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"; }; + features = builtins.concatLists [ + [ "default" ] + [ "perf" ] + [ "perf-backtrack" ] + [ "perf-cache" ] + [ "perf-dfa" ] + [ "perf-inline" ] + [ "perf-literal" ] + [ "perf-onepass" ] + [ "std" ] + [ "unicode" ] + [ "unicode-age" ] + [ "unicode-bool" ] + [ "unicode-case" ] + [ "unicode-gencat" ] + [ "unicode-perl" ] + [ "unicode-script" ] + [ "unicode-segment" ] + ]; + dependencies = { + aho_corasick = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".aho-corasick."1.1.3" { inherit profileName; }).out; + memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; + regex_automata = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".regex-automata."0.4.9" { inherit profileName; }).out; + regex_syntax = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".regex-syntax."0.8.5" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".regex-automata."0.4.9" = overridableMkRustCrate (profileName: rec { + name = "regex-automata"; + version = "0.4.9"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "dfa-onepass" ] + [ "dfa-search" ] + [ "hybrid" ] + [ "meta" ] + [ "nfa-backtrack" ] + [ "nfa-pikevm" ] + [ "nfa-thompson" ] + [ "perf-inline" ] + [ "perf-literal" ] + [ "perf-literal-multisubstring" ] + [ "perf-literal-substring" ] + [ "std" ] + [ "syntax" ] + [ "unicode" ] + [ "unicode-age" ] + [ "unicode-bool" ] + [ "unicode-case" ] + [ "unicode-gencat" ] + [ "unicode-perl" ] + [ "unicode-script" ] + [ "unicode-segment" ] + [ "unicode-word-boundary" ] + ]; + dependencies = { + aho_corasick = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".aho-corasick."1.1.3" { inherit profileName; }).out; + memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; + regex_syntax = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".regex-syntax."0.8.5" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".regex-syntax."0.8.5" = overridableMkRustCrate (profileName: rec { + name = "regex-syntax"; + version = "0.8.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"; }; + features = builtins.concatLists [ + [ "default" ] + [ "std" ] + [ "unicode" ] + [ "unicode-age" ] + [ "unicode-bool" ] + [ "unicode-case" ] + [ "unicode-gencat" ] + [ "unicode-perl" ] + [ "unicode-script" ] + [ "unicode-segment" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".rustc_version."0.4.1" = overridableMkRustCrate (profileName: rec { + name = "rustc_version"; + version = "0.4.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"; }; + dependencies = { + semver = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".semver."1.0.25" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".rustix."0.38.44" = overridableMkRustCrate (profileName: rec { + name = "rustix"; + version = "0.38.44"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "default" ] + [ "fs" ] + [ "libc-extra-traits" ] + [ "std" ] + [ "use-libc-auxv" ] + ]; + dependencies = { + bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; + ${ if hostPlatform.parsed.kernel.name == "linux" && (hostPlatform.parsed.cpu.significantByte == "littleEndian" || hostPlatform.parsed.cpu.name == "s390x") && (hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l" || hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.cpu.bits == 64 || hostPlatform.parsed.cpu.name == "riscv64" || hostPlatform.parsed.cpu.name == "i686" || hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.cpu.bits == 64) || !hostPlatform.isWindows && !(hostPlatform.parsed.kernel.name == "linux" && (hostPlatform.parsed.cpu.significantByte == "littleEndian" || hostPlatform.parsed.cpu.name == "s390x") && (hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l" || hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.cpu.bits == 64 || hostPlatform.parsed.cpu.name == "riscv64" || hostPlatform.parsed.cpu.name == "i686" || hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.cpu.bits == 64)) || hostPlatform.isWindows then "libc_errno" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".errno."0.3.10" { inherit profileName; }).out; + ${ if hostPlatform.parsed.kernel.name == "linux" && (hostPlatform.parsed.cpu.significantByte == "littleEndian" || hostPlatform.parsed.cpu.name == "s390x") && (hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l" || hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.cpu.bits == 64 || hostPlatform.parsed.cpu.name == "riscv64" || hostPlatform.parsed.cpu.name == "i686" || hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.cpu.bits == 64) || !hostPlatform.isWindows && !(hostPlatform.parsed.kernel.name == "linux" && (hostPlatform.parsed.cpu.significantByte == "littleEndian" || hostPlatform.parsed.cpu.name == "s390x") && (hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l" || hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.cpu.bits == 64 || hostPlatform.parsed.cpu.name == "riscv64" || hostPlatform.parsed.cpu.name == "i686" || hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.cpu.bits == 64)) then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + ${ if hostPlatform.parsed.kernel.name == "linux" && (hostPlatform.parsed.cpu.significantByte == "littleEndian" || hostPlatform.parsed.cpu.name == "s390x") && (hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l" || hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.cpu.bits == 64 || hostPlatform.parsed.cpu.name == "riscv64" || hostPlatform.parsed.cpu.name == "i686" || hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.cpu.bits == 64) || (hostPlatform.parsed.kernel.name == "android" || hostPlatform.parsed.kernel.name == "linux") && !(hostPlatform.parsed.kernel.name == "linux" && (hostPlatform.parsed.cpu.significantByte == "littleEndian" || hostPlatform.parsed.cpu.name == "s390x") && (hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l" || hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.cpu.bits == 64 || hostPlatform.parsed.cpu.name == "riscv64" || hostPlatform.parsed.cpu.name == "i686" || hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.cpu.bits == 64)) then "linux_raw_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".linux-raw-sys."0.4.15" { inherit profileName; }).out; + ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".rustversion."1.0.19" = overridableMkRustCrate (profileName: rec { + name = "rustversion"; + version = "1.0.19"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".ryu."1.0.19" = overridableMkRustCrate (profileName: rec { + name = "ryu"; + version = "1.0.19"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".same-file."1.0.6" = overridableMkRustCrate (profileName: rec { + name = "same-file"; + version = "1.0.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"; }; + dependencies = { + ${ if hostPlatform.isWindows then "winapi_util" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winapi-util."0.1.9" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".scopeguard."1.2.0" = overridableMkRustCrate (profileName: rec { + name = "scopeguard"; + version = "1.2.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".semver."1.0.25" = overridableMkRustCrate (profileName: rec { + name = "semver"; + version = "1.0.25"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03"; }; + features = builtins.concatLists [ + [ "default" ] + [ "serde" ] + [ "std" ] + ]; + dependencies = { + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" = overridableMkRustCrate (profileName: rec { + name = "serde"; + version = "1.0.218"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "default" ] + [ "derive" ] + [ "serde_derive" ] + [ "std" ] + ]; + dependencies = { + serde_derive = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_derive."1.0.218" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".serde_derive."1.0.218" = overridableMkRustCrate (profileName: rec { + name = "serde_derive"; + version = "1.0.218"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b"; }; + features = builtins.concatLists [ + [ "default" ] + ]; + dependencies = { + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.139" = overridableMkRustCrate (profileName: rec { + name = "serde_json"; + version = "1.0.139"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6"; }; + features = builtins.concatLists [ + [ "default" ] + [ "std" ] + [ "unbounded_depth" ] + ]; + dependencies = { + itoa = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".itoa."1.0.14" { inherit profileName; }).out; + memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; + ryu = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".ryu."1.0.19" { inherit profileName; }).out; + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".serde_spanned."0.6.8" = overridableMkRustCrate (profileName: rec { + name = "serde_spanned"; + version = "0.6.8"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1"; }; + features = builtins.concatLists [ + [ "serde" ] + ]; + dependencies = { + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".sha1_smol."1.0.1" = overridableMkRustCrate (profileName: rec { + name = "sha1_smol"; + version = "1.0.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".sharded-slab."0.1.7" = overridableMkRustCrate (profileName: rec { + name = "sharded-slab"; + version = "0.1.7"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"; }; + dependencies = { + lazy_static = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".lazy_static."1.5.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".shell-words."1.1.0" = overridableMkRustCrate (profileName: rec { + name = "shell-words"; + version = "1.1.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"; }; + features = builtins.concatLists [ + [ "default" ] + [ "std" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".signal-hook."0.3.17" = overridableMkRustCrate (profileName: rec { + name = "signal-hook"; + version = "0.3.17"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"; }; + dependencies = { + libc = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + signal_hook_registry = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".signal-hook-registry."1.4.2" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".signal-hook-registry."1.4.2" = overridableMkRustCrate (profileName: rec { + name = "signal-hook-registry"; + version = "1.4.2"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"; }; + dependencies = { + libc = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" = overridableMkRustCrate (profileName: rec { + name = "smallvec"; + version = "1.14.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd"; }; + features = builtins.concatLists [ + [ "const_generics" ] + [ "write" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".stable_deref_trait."1.2.0" = overridableMkRustCrate (profileName: rec { + name = "stable_deref_trait"; + version = "1.2.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"; }; + features = builtins.concatLists [ + [ "alloc" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".strsim."0.11.1" = overridableMkRustCrate (profileName: rec { + name = "strsim"; + version = "0.11.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" = overridableMkRustCrate (profileName: rec { + name = "syn"; + version = "2.0.98"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1"; }; + features = builtins.concatLists [ + [ "clone-impls" ] + [ "default" ] + [ "derive" ] + [ "extra-traits" ] + [ "fold" ] + [ "full" ] + [ "parsing" ] + [ "printing" ] + [ "proc-macro" ] + [ "visit" ] + [ "visit-mut" ] + ]; + dependencies = { + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + unicode_ident = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".unicode-ident."1.0.17" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".synstructure."0.13.1" = overridableMkRustCrate (profileName: rec { + name = "synstructure"; + version = "0.13.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"; }; + features = builtins.concatLists [ + [ "default" ] + [ "proc-macro" ] + ]; + dependencies = { + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".tar."0.4.44" = overridableMkRustCrate (profileName: rec { + name = "tar"; + version = "0.4.44"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a"; }; + features = builtins.concatLists [ + [ "default" ] + [ "xattr" ] + ]; + dependencies = { + filetime = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".filetime."0.2.25" { inherit profileName; }).out; + ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + ${ if hostPlatform.isUnix then "xattr" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".xattr."1.4.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".tempfile."3.17.1" = overridableMkRustCrate (profileName: rec { + name = "tempfile"; + version = "3.17.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230"; }; + features = builtins.concatLists [ + [ "default" ] + [ "getrandom" ] + ]; + dependencies = { + cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; + fastrand = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".fastrand."2.3.0" { inherit profileName; }).out; + ${ if hostPlatform.isUnix || hostPlatform.isWindows || hostPlatform.parsed.kernel.name == "wasi" then "getrandom" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".getrandom."0.3.1" { inherit profileName; }).out; + once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; + ${ if hostPlatform.isUnix || hostPlatform.parsed.kernel.name == "wasi" then "rustix" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".rustix."0.38.44" { inherit profileName; }).out; + ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".thiserror."1.0.69" = overridableMkRustCrate (profileName: rec { + name = "thiserror"; + version = "1.0.69"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"; }; + dependencies = { + thiserror_impl = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror-impl."1.0.69" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" = overridableMkRustCrate (profileName: rec { + name = "thiserror"; + version = "2.0.11"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc"; }; + features = builtins.concatLists [ + [ "default" ] + [ "std" ] + ]; + dependencies = { + thiserror_impl = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror-impl."2.0.11" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".thiserror-impl."1.0.69" = overridableMkRustCrate (profileName: rec { + name = "thiserror-impl"; + version = "1.0.69"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"; }; + dependencies = { + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".thiserror-impl."2.0.11" = overridableMkRustCrate (profileName: rec { + name = "thiserror-impl"; + version = "2.0.11"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2"; }; + dependencies = { + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".thread_local."1.1.8" = overridableMkRustCrate (profileName: rec { + name = "thread_local"; + version = "1.1.8"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"; }; + dependencies = { + cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; + once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".time."0.3.37" = overridableMkRustCrate (profileName: rec { + name = "time"; + version = "0.3.37"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "default" ] + [ "formatting" ] + [ "local-offset" ] + [ "parsing" ] + [ "std" ] + ]; + dependencies = { + deranged = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".deranged."0.3.11" { inherit profileName; }).out; + itoa = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".itoa."1.0.14" { inherit profileName; }).out; + ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + num_conv = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".num-conv."0.1.0" { inherit profileName; }).out; + ${ if hostPlatform.isUnix then "num_threads" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".num_threads."0.1.7" { inherit profileName; }).out; + powerfmt = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".powerfmt."0.2.0" { inherit profileName; }).out; + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + time_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".time-core."0.1.2" { inherit profileName; }).out; + time_macros = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".time-macros."0.2.19" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".time-core."0.1.2" = overridableMkRustCrate (profileName: rec { + name = "time-core"; + version = "0.1.2"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".time-macros."0.2.19" = overridableMkRustCrate (profileName: rec { + name = "time-macros"; + version = "0.2.19"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de"; }; + features = builtins.concatLists [ + [ "formatting" ] + [ "parsing" ] + ]; + dependencies = { + num_conv = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".num-conv."0.1.0" { inherit profileName; }).out; + time_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".time-core."0.1.2" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".tinystr."0.7.6" = overridableMkRustCrate (profileName: rec { + name = "tinystr"; + version = "0.7.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "zerovec" ] + ]; + dependencies = { + displaydoc = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" { profileName = "__noProfile"; }).out; + zerovec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".tinyvec."1.8.1" = overridableMkRustCrate (profileName: rec { + name = "tinyvec"; + version = "1.8.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "default" ] + [ "tinyvec_macros" ] + ]; + dependencies = { + tinyvec_macros = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tinyvec_macros."0.1.1" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".tinyvec_macros."0.1.1" = overridableMkRustCrate (profileName: rec { + name = "tinyvec_macros"; + version = "0.1.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".toml."0.8.20" = overridableMkRustCrate (profileName: rec { + name = "toml"; + version = "0.8.20"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148"; }; + features = builtins.concatLists [ + [ "default" ] + [ "display" ] + [ "parse" ] + ]; + dependencies = { + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + serde_spanned = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_spanned."0.6.8" { inherit profileName; }).out; + toml_datetime = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".toml_datetime."0.6.8" { inherit profileName; }).out; + toml_edit = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".toml_edit."0.22.24" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".toml_datetime."0.6.8" = overridableMkRustCrate (profileName: rec { + name = "toml_datetime"; + version = "0.6.8"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"; }; + features = builtins.concatLists [ + [ "serde" ] + ]; + dependencies = { + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".toml_edit."0.22.24" = overridableMkRustCrate (profileName: rec { + name = "toml_edit"; + version = "0.22.24"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474"; }; + features = builtins.concatLists [ + [ "display" ] + [ "parse" ] + [ "serde" ] + ]; + dependencies = { + indexmap = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".indexmap."2.7.1" { inherit profileName; }).out; + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + serde_spanned = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_spanned."0.6.8" { inherit profileName; }).out; + toml_datetime = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".toml_datetime."0.6.8" { inherit profileName; }).out; + winnow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winnow."0.7.3" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".tracing."0.1.41" = overridableMkRustCrate (profileName: rec { + name = "tracing"; + version = "0.1.41"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"; }; + features = builtins.concatLists [ + [ "attributes" ] + [ "default" ] + [ "std" ] + [ "tracing-attributes" ] + ]; + dependencies = { + pin_project_lite = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.2.16" { inherit profileName; }).out; + tracing_attributes = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing-attributes."0.1.28" { profileName = "__noProfile"; }).out; + tracing_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing-core."0.1.33" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".tracing-attributes."0.1.28" = overridableMkRustCrate (profileName: rec { + name = "tracing-attributes"; + version = "0.1.28"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"; }; + dependencies = { + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".tracing-core."0.1.33" = overridableMkRustCrate (profileName: rec { + name = "tracing-core"; + version = "0.1.33"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"; }; + features = builtins.concatLists [ + [ "default" ] + [ "once_cell" ] + [ "std" ] + ]; + dependencies = { + once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; + ${ if false then "valuable" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".valuable."0.1.1" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".tracing-log."0.2.0" = overridableMkRustCrate (profileName: rec { + name = "tracing-log"; + version = "0.2.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"; }; + features = builtins.concatLists [ + [ "log-tracer" ] + [ "std" ] + ]; + dependencies = { + log = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.26" { inherit profileName; }).out; + once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; + tracing_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing-core."0.1.33" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".tracing-subscriber."0.3.19" = overridableMkRustCrate (profileName: rec { + name = "tracing-subscriber"; + version = "0.3.19"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "ansi" ] + [ "default" ] + [ "fmt" ] + [ "nu-ansi-term" ] + [ "registry" ] + [ "sharded-slab" ] + [ "smallvec" ] + [ "std" ] + [ "thread_local" ] + [ "tracing-log" ] + ]; + dependencies = { + nu_ansi_term = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".nu-ansi-term."0.46.0" { inherit profileName; }).out; + sharded_slab = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".sharded-slab."0.1.7" { inherit profileName; }).out; + smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; + thread_local = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thread_local."1.1.8" { inherit profileName; }).out; + tracing_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing-core."0.1.33" { inherit profileName; }).out; + tracing_log = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing-log."0.2.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".unicode-bom."2.0.3" = overridableMkRustCrate (profileName: rec { + name = "unicode-bom"; + version = "2.0.3"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".unicode-ident."1.0.17" = overridableMkRustCrate (profileName: rec { + name = "unicode-ident"; + version = "1.0.17"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".unicode-normalization."0.1.24" = overridableMkRustCrate (profileName: rec { + name = "unicode-normalization"; + version = "0.1.24"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956"; }; + dependencies = { + tinyvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tinyvec."1.8.1" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".url."2.5.4" = overridableMkRustCrate (profileName: rec { + name = "url"; + version = "2.5.4"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"; }; + features = builtins.concatLists [ + [ "default" ] + [ "std" ] + ]; + dependencies = { + form_urlencoded = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".form_urlencoded."1.2.1" { inherit profileName; }).out; + idna = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".idna."1.0.3" { inherit profileName; }).out; + percent_encoding = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".percent-encoding."2.3.1" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".utf16_iter."1.0.5" = overridableMkRustCrate (profileName: rec { + name = "utf16_iter"; + version = "1.0.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".utf8_iter."1.0.4" = overridableMkRustCrate (profileName: rec { + name = "utf8_iter"; + version = "1.0.4"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".valuable."0.1.1" = overridableMkRustCrate (profileName: rec { + name = "valuable"; + version = "0.1.1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "std" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".vergen."9.0.4" = overridableMkRustCrate (profileName: rec { + name = "vergen"; + version = "9.0.4"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "e0d2f179f8075b805a43a2a21728a46f0cc2921b3c58695b28fa8817e103cd9a"; }; + features = builtins.concatLists [ + [ "build" ] + [ "cargo" ] + [ "cargo_metadata" ] + [ "regex" ] + [ "rustc" ] + [ "rustc_version" ] + [ "time" ] + ]; + dependencies = { + anyhow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".anyhow."1.0.96" { inherit profileName; }).out; + cargo_metadata = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cargo_metadata."0.19.1" { inherit profileName; }).out; + derive_builder = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_builder."0.20.2" { inherit profileName; }).out; + regex = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".regex."1.11.1" { inherit profileName; }).out; + rustc_version = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".rustc_version."0.4.1" { inherit profileName; }).out; + time = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".time."0.3.37" { inherit profileName; }).out; + vergen_lib = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".vergen-lib."0.1.6" { inherit profileName; }).out; + }; + buildDependencies = { + rustversion = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".rustversion."1.0.19" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".vergen-gix."1.0.6" = overridableMkRustCrate (profileName: rec { + name = "vergen-gix"; + version = "1.0.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "2b218ac3c56c2c31227bd7813735bfa51eb0dc5212e6d4bab6eac7c8208e5b66"; }; + features = builtins.concatLists [ + [ "build" ] + [ "cargo" ] + [ "default" ] + [ "rustc" ] + ]; + dependencies = { + anyhow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".anyhow."1.0.96" { inherit profileName; }).out; + derive_builder = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_builder."0.20.2" { inherit profileName; }).out; + gix = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix."0.69.1" { inherit profileName; }).out; + time = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".time."0.3.37" { inherit profileName; }).out; + vergen = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".vergen."9.0.4" { inherit profileName; }).out; + vergen_lib = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".vergen-lib."0.1.6" { inherit profileName; }).out; + }; + buildDependencies = { + rustversion = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".rustversion."1.0.19" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".vergen-lib."0.1.6" = overridableMkRustCrate (profileName: rec { + name = "vergen-lib"; + version = "0.1.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166"; }; + features = builtins.concatLists [ + [ "build" ] + [ "cargo" ] + [ "default" ] + [ "git" ] + [ "rustc" ] + ]; + dependencies = { + anyhow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".anyhow."1.0.96" { inherit profileName; }).out; + derive_builder = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_builder."0.20.2" { inherit profileName; }).out; + }; + buildDependencies = { + rustversion = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".rustversion."1.0.19" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".version_check."0.9.5" = overridableMkRustCrate (profileName: rec { + name = "version_check"; + version = "0.9.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".walkdir."2.5.0" = overridableMkRustCrate (profileName: rec { + name = "walkdir"; + version = "2.5.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"; }; + dependencies = { + same_file = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".same-file."1.0.6" { inherit profileName; }).out; + ${ if hostPlatform.isWindows then "winapi_util" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winapi-util."0.1.9" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".wasi."0.11.0+wasi-snapshot-preview1" = overridableMkRustCrate (profileName: rec { + name = "wasi"; + version = "0.11.0+wasi-snapshot-preview1"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".wasi."0.13.3+wasi-0.2.2" = overridableMkRustCrate (profileName: rec { + name = "wasi"; + version = "0.13.3+wasi-0.2.2"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2"; }; + dependencies = { + wit_bindgen_rt = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".wit-bindgen-rt."0.33.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".winapi."0.3.9" = overridableMkRustCrate (profileName: rec { + name = "winapi"; + version = "0.3.9"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"; }; + features = builtins.concatLists [ + [ "consoleapi" ] + [ "errhandlingapi" ] + [ "fileapi" ] + [ "handleapi" ] + [ "processenv" ] + ]; + dependencies = { + ${ if hostPlatform.config == "i686-pc-windows-gnu" then "winapi_i686_pc_windows_gnu" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winapi-i686-pc-windows-gnu."0.4.0" { inherit profileName; }).out; + ${ if hostPlatform.config == "x86_64-pc-windows-gnu" then "winapi_x86_64_pc_windows_gnu" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winapi-x86_64-pc-windows-gnu."0.4.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".winapi-i686-pc-windows-gnu."0.4.0" = overridableMkRustCrate (profileName: rec { + name = "winapi-i686-pc-windows-gnu"; + version = "0.4.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".winapi-util."0.1.9" = overridableMkRustCrate (profileName: rec { + name = "winapi-util"; + version = "0.1.9"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"; }; + dependencies = { + ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".winapi-x86_64-pc-windows-gnu."0.4.0" = overridableMkRustCrate (profileName: rec { + name = "winapi-x86_64-pc-windows-gnu"; + version = "0.4.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.48.0" = overridableMkRustCrate (profileName: rec { + name = "windows-sys"; + version = "0.48.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"; }; + features = builtins.concatLists [ + [ "Win32" ] + [ "Win32_Foundation" ] + [ "Win32_Globalization" ] + [ "Win32_System" ] + [ "Win32_System_Com" ] + [ "Win32_UI" ] + [ "Win32_UI_Shell" ] + [ "default" ] + ]; + dependencies = { + windows_targets = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.48.5" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.52.0" = overridableMkRustCrate (profileName: rec { + name = "windows-sys"; + version = "0.52.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"; }; + features = builtins.concatLists [ + [ "Win32" ] + [ "Win32_Foundation" ] + [ "Win32_Security" ] + [ "Win32_Security_Authorization" ] + [ "Win32_Storage" ] + [ "Win32_Storage_FileSystem" ] + [ "Win32_System" ] + [ "Win32_System_Memory" ] + [ "Win32_System_Threading" ] + [ "default" ] + ]; + dependencies = { + windows_targets = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.52.6" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" = overridableMkRustCrate (profileName: rec { + name = "windows-sys"; + version = "0.59.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"; }; + features = builtins.concatLists [ + [ "Win32" ] + [ "Win32_Foundation" ] + [ "Win32_NetworkManagement" ] + [ "Win32_NetworkManagement_IpHelper" ] + [ "Win32_Networking" ] + [ "Win32_Networking_WinSock" ] + [ "Win32_Storage" ] + [ "Win32_Storage_FileSystem" ] + [ "Win32_System" ] + [ "Win32_System_Com" ] + [ "Win32_System_Console" ] + [ "Win32_System_Diagnostics" ] + [ "Win32_System_Diagnostics_Debug" ] + [ "Win32_System_SystemInformation" ] + [ "Win32_System_Threading" ] + [ "Win32_System_Time" ] + [ "Win32_UI" ] + [ "Win32_UI_Shell" ] + [ "default" ] + ]; + dependencies = { + windows_targets = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.52.6" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.48.5" = overridableMkRustCrate (profileName: rec { + name = "windows-targets"; + version = "0.48.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"; }; + dependencies = { + ${ if hostPlatform.config == "aarch64-pc-windows-gnullvm" then "windows_aarch64_gnullvm" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_gnullvm."0.48.5" { inherit profileName; }).out; + ${ if hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.abi.name == "msvc" then "windows_aarch64_msvc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_msvc."0.48.5" { inherit profileName; }).out; + ${ if hostPlatform.parsed.cpu.name == "i686" && hostPlatform.parsed.abi.name == "gnu" then "windows_i686_gnu" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_i686_gnu."0.48.5" { inherit profileName; }).out; + ${ if hostPlatform.parsed.cpu.name == "i686" && hostPlatform.parsed.abi.name == "msvc" then "windows_i686_msvc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_i686_msvc."0.48.5" { inherit profileName; }).out; + ${ if hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.abi.name == "gnu" then "windows_x86_64_gnu" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnu."0.48.5" { inherit profileName; }).out; + ${ if hostPlatform.config == "x86_64-pc-windows-gnullvm" then "windows_x86_64_gnullvm" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnullvm."0.48.5" { inherit profileName; }).out; + ${ if hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.abi.name == "msvc" then "windows_x86_64_msvc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_msvc."0.48.5" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.52.6" = overridableMkRustCrate (profileName: rec { + name = "windows-targets"; + version = "0.52.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"; }; + dependencies = { + ${ if hostPlatform.config == "aarch64-pc-windows-gnullvm" then "windows_aarch64_gnullvm" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_gnullvm."0.52.6" { inherit profileName; }).out; + ${ if hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.abi.name == "msvc" then "windows_aarch64_msvc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_msvc."0.52.6" { inherit profileName; }).out; + ${ if hostPlatform.parsed.cpu.name == "i686" && hostPlatform.parsed.abi.name == "gnu" then "windows_i686_gnu" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_i686_gnu."0.52.6" { inherit profileName; }).out; + ${ if hostPlatform.config == "i686-pc-windows-gnullvm" then "windows_i686_gnullvm" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_i686_gnullvm."0.52.6" { inherit profileName; }).out; + ${ if hostPlatform.parsed.cpu.name == "i686" && hostPlatform.parsed.abi.name == "msvc" then "windows_i686_msvc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_i686_msvc."0.52.6" { inherit profileName; }).out; + ${ if hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.abi.name == "gnu" then "windows_x86_64_gnu" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnu."0.52.6" { inherit profileName; }).out; + ${ if hostPlatform.config == "x86_64-pc-windows-gnullvm" then "windows_x86_64_gnullvm" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnullvm."0.52.6" { inherit profileName; }).out; + ${ if (hostPlatform.parsed.cpu.name == "x86_64" || hostPlatform.parsed.cpu.name == "arm64ec") && hostPlatform.parsed.abi.name == "msvc" then "windows_x86_64_msvc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_msvc."0.52.6" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_gnullvm."0.48.5" = overridableMkRustCrate (profileName: rec { + name = "windows_aarch64_gnullvm"; + version = "0.48.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_gnullvm."0.52.6" = overridableMkRustCrate (profileName: rec { + name = "windows_aarch64_gnullvm"; + version = "0.52.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_msvc."0.48.5" = overridableMkRustCrate (profileName: rec { + name = "windows_aarch64_msvc"; + version = "0.48.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_msvc."0.52.6" = overridableMkRustCrate (profileName: rec { + name = "windows_aarch64_msvc"; + version = "0.52.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_i686_gnu."0.48.5" = overridableMkRustCrate (profileName: rec { + name = "windows_i686_gnu"; + version = "0.48.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_i686_gnu."0.52.6" = overridableMkRustCrate (profileName: rec { + name = "windows_i686_gnu"; + version = "0.52.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_i686_gnullvm."0.52.6" = overridableMkRustCrate (profileName: rec { + name = "windows_i686_gnullvm"; + version = "0.52.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_i686_msvc."0.48.5" = overridableMkRustCrate (profileName: rec { + name = "windows_i686_msvc"; + version = "0.48.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_i686_msvc."0.52.6" = overridableMkRustCrate (profileName: rec { + name = "windows_i686_msvc"; + version = "0.52.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnu."0.48.5" = overridableMkRustCrate (profileName: rec { + name = "windows_x86_64_gnu"; + version = "0.48.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnu."0.52.6" = overridableMkRustCrate (profileName: rec { + name = "windows_x86_64_gnu"; + version = "0.52.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnullvm."0.48.5" = overridableMkRustCrate (profileName: rec { + name = "windows_x86_64_gnullvm"; + version = "0.48.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnullvm."0.52.6" = overridableMkRustCrate (profileName: rec { + name = "windows_x86_64_gnullvm"; + version = "0.52.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_msvc."0.48.5" = overridableMkRustCrate (profileName: rec { + name = "windows_x86_64_msvc"; + version = "0.48.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_msvc."0.52.6" = overridableMkRustCrate (profileName: rec { + name = "windows_x86_64_msvc"; + version = "0.52.6"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".winnow."0.6.26" = overridableMkRustCrate (profileName: rec { + name = "winnow"; + version = "0.6.26"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "default" ] + [ "simd" ] + [ "std" ] + ]; + dependencies = { + memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".winnow."0.7.3" = overridableMkRustCrate (profileName: rec { + name = "winnow"; + version = "0.7.3"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "default" ] + [ "std" ] + ]; + dependencies = { + memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".wit-bindgen-rt."0.33.0" = overridableMkRustCrate (profileName: rec { + name = "wit-bindgen-rt"; + version = "0.33.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c"; }; + features = builtins.concatLists [ + [ "bitflags" ] + ]; + dependencies = { + bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".write16."1.0.0" = overridableMkRustCrate (profileName: rec { + name = "write16"; + version = "1.0.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"; }; + features = builtins.concatLists [ + [ "alloc" ] + ]; + }); + + "registry+https://github.com/rust-lang/crates.io-index".writeable."0.5.5" = overridableMkRustCrate (profileName: rec { + name = "writeable"; + version = "0.5.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"; }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".xattr."1.4.0" = overridableMkRustCrate (profileName: rec { + name = "xattr"; + version = "1.4.0"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "e105d177a3871454f754b33bb0ee637ecaaac997446375fd3e5d43a2ed00c909"; }; + features = builtins.concatLists [ + [ "default" ] + [ "unsupported" ] + ]; + dependencies = { + ${ if hostPlatform.parsed.kernel.name == "freebsd" || hostPlatform.parsed.kernel.name == "netbsd" then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; + ${ if hostPlatform.parsed.kernel.name == "linux" then "linux_raw_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".linux-raw-sys."0.4.15" { inherit profileName; }).out; + rustix = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".rustix."0.38.44" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".yoke."0.7.5" = overridableMkRustCrate (profileName: rec { + name = "yoke"; + version = "0.7.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "default" ] + [ "derive" ] + [ "zerofrom" ] + ]; + dependencies = { + serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; + stable_deref_trait = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".stable_deref_trait."1.2.0" { inherit profileName; }).out; + yoke_derive = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".yoke-derive."0.7.5" { profileName = "__noProfile"; }).out; + zerofrom = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerofrom."0.1.5" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".yoke-derive."0.7.5" = overridableMkRustCrate (profileName: rec { + name = "yoke-derive"; + version = "0.7.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"; }; + dependencies = { + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + synstructure = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".synstructure."0.13.1" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".zerocopy."0.7.35" = overridableMkRustCrate (profileName: rec { + name = "zerocopy"; + version = "0.7.35"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"; }; + features = builtins.concatLists [ + [ "simd" ] + ]; + dependencies = { + ${ if false then "zerocopy_derive" else null } = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".zerocopy-derive."0.7.35" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".zerocopy-derive."0.7.35" = overridableMkRustCrate (profileName: rec { + name = "zerocopy-derive"; + version = "0.7.35"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"; }; + dependencies = { + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".zerofrom."0.1.5" = overridableMkRustCrate (profileName: rec { + name = "zerofrom"; + version = "0.1.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e"; }; + features = builtins.concatLists [ + [ "alloc" ] + [ "derive" ] + ]; + dependencies = { + zerofrom_derive = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".zerofrom-derive."0.1.5" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".zerofrom-derive."0.1.5" = overridableMkRustCrate (profileName: rec { + name = "zerofrom-derive"; + version = "0.1.5"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808"; }; + dependencies = { + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + synstructure = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".synstructure."0.13.1" { inherit profileName; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" = overridableMkRustCrate (profileName: rec { + name = "zerovec"; + version = "0.10.4"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079"; }; + features = builtins.concatLists [ + [ "derive" ] + [ "yoke" ] + ]; + dependencies = { + yoke = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".yoke."0.7.5" { inherit profileName; }).out; + zerofrom = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerofrom."0.1.5" { inherit profileName; }).out; + zerovec_derive = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec-derive."0.10.3" { profileName = "__noProfile"; }).out; + }; + }); + + "registry+https://github.com/rust-lang/crates.io-index".zerovec-derive."0.10.3" = overridableMkRustCrate (profileName: rec { + name = "zerovec-derive"; + version = "0.10.3"; + registry = "registry+https://github.com/rust-lang/crates.io-index"; + src = fetchCratesIo { inherit name version; sha256 = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"; }; + dependencies = { + proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; + quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; + syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; + }; + }); + +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..856cc6a --- /dev/null +++ b/flake.lock @@ -0,0 +1,131 @@ +{ + "nodes": { + "cargo2nix": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1705129117, + "narHash": "sha256-LgdDHibvimzYhxBK3kxCk2gAL7k4Hyigl5KI0X9cijA=", + "owner": "cargo2nix", + "repo": "cargo2nix", + "rev": "ae19a9e1f8f0880c088ea155ab66cee1fa001f59", + "type": "github" + }, + "original": { + "owner": "cargo2nix", + "ref": "release-0.11.0", + "repo": "cargo2nix", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1694529238, + "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1705099185, + "narHash": "sha256-SxJenKtvcrKJd0TyJQMO3p6VA7PEp+vmMnmlKFzWMNs=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "2bce5ccff0ad7abda23e8bb56434b6877a446694", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "release-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "cargo2nix": "cargo2nix", + "flake-utils": [ + "cargo2nix", + "flake-utils" + ], + "nixpkgs": [ + "cargo2nix", + "nixpkgs" + ] + } + }, + "rust-overlay": { + "inputs": { + "flake-utils": [ + "cargo2nix", + "flake-utils" + ], + "nixpkgs": [ + "cargo2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1705112162, + "narHash": "sha256-IAM0+Uijh/fwlfoeDrOwau9MxcZW3zeDoUHc6Z3xfqM=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "9e0af26ffe52bf955ad5575888f093e41fba0104", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..cd53de9 --- /dev/null +++ b/flake.nix @@ -0,0 +1,28 @@ +{ + inputs = { + cargo2nix.url = "github:cargo2nix/cargo2nix/release-0.11.0"; + flake-utils.follows = "cargo2nix/flake-utils"; + nixpkgs.follows = "cargo2nix/nixpkgs"; + }; + + outputs = inputs: with inputs; + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { + inherit system; + overlays = [cargo2nix.overlays.default]; + }; + + rustPkgs = pkgs.rustBuilder.makePackageSet { + rustVersion = "1.84.0"; + packageFun = import ./Cargo.nix; + }; + + in rec { + packages = { + enginelib = (rustPkgs.workspace.enginelib {}); + default = packages.enginelib; + }; + } + ); +} From d967fb1349627eeb150d66ce8ffeda855f384581 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 22 Feb 2025 14:43:46 +0000 Subject: [PATCH 064/163] fix --- .gitignore | 1 - Cargo.lock | 2263 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2263 insertions(+), 1 deletion(-) create mode 100644 Cargo.lock diff --git a/.gitignore b/.gitignore index 64bf0eb..5a3b966 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ target/ # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html -Cargo.lock # These are backup files generated by rustfmt **/*.rs.bk diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..0525734 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,2263 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "anyhow" +version = "1.0.96" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4" + +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" + +[[package]] +name = "bstr" +version = "1.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" +dependencies = [ + "memchr", + "regex-automata", + "serde", +] + +[[package]] +name = "camino" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8769706aad5d996120af43197bf46ef6ad0fda35216b4505f926a365a232d924" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.11", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clru" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59" + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derive_builder" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" +dependencies = [ + "derive_builder_core", + "syn", +] + +[[package]] +name = "directories" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "enginelib" +version = "0.1.7" +dependencies = [ + "bincode", + "directories", + "libloading", + "oxifs", + "serde", + "toml", + "tracing", + "tracing-subscriber", + "vergen-gix", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "faster-hex" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" +dependencies = [ + "serde", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "filetime" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.59.0", +] + +[[package]] +name = "flate2" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", +] + +[[package]] +name = "gix" +version = "0.69.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d0eebdaecdcf405d5433a36f85e4f058cf4de48ee2604388be0dbccbaad353e" +dependencies = [ + "gix-actor", + "gix-commitgraph", + "gix-config", + "gix-date", + "gix-diff", + "gix-discover", + "gix-features", + "gix-fs", + "gix-glob", + "gix-hash", + "gix-hashtable", + "gix-index", + "gix-lock", + "gix-object", + "gix-odb", + "gix-pack", + "gix-path", + "gix-protocol", + "gix-ref", + "gix-refspec", + "gix-revision", + "gix-revwalk", + "gix-sec", + "gix-shallow", + "gix-tempfile", + "gix-trace", + "gix-traverse", + "gix-url", + "gix-utils", + "gix-validate", + "once_cell", + "parking_lot", + "signal-hook", + "smallvec", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-actor" +version = "0.33.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20018a1a6332e065f1fcc8305c1c932c6b8c9985edea2284b3c79dc6fa3ee4b2" +dependencies = [ + "bstr", + "gix-date", + "gix-utils", + "itoa", + "thiserror 2.0.11", + "winnow 0.6.26", +] + +[[package]] +name = "gix-bitmap" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1db9765c69502650da68f0804e3dc2b5f8ccc6a2d104ca6c85bc40700d37540" +dependencies = [ + "thiserror 2.0.11", +] + +[[package]] +name = "gix-chunk" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b1f1d8764958699dc764e3f727cef280ff4d1bd92c107bbf8acd85b30c1bd6f" +dependencies = [ + "thiserror 2.0.11", +] + +[[package]] +name = "gix-command" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb410b84d6575db45e62025a9118bdbf4d4b099ce7575a76161e898d9ca98df1" +dependencies = [ + "bstr", + "gix-path", + "gix-trace", + "shell-words", +] + +[[package]] +name = "gix-commitgraph" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8da6591a7868fb2b6dabddea6b09988b0b05e0213f938dbaa11a03dd7a48d85" +dependencies = [ + "bstr", + "gix-chunk", + "gix-features", + "gix-hash", + "memmap2", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-config" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6649b406ca1f99cb148959cf00468b231f07950f8ec438cc0903cda563606f19" +dependencies = [ + "bstr", + "gix-config-value", + "gix-features", + "gix-glob", + "gix-path", + "gix-ref", + "gix-sec", + "memchr", + "once_cell", + "smallvec", + "thiserror 2.0.11", + "unicode-bom", + "winnow 0.6.26", +] + +[[package]] +name = "gix-config-value" +version = "0.14.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11365144ef93082f3403471dbaa94cfe4b5e72743bdb9560719a251d439f4cee" +dependencies = [ + "bitflags", + "bstr", + "gix-path", + "libc", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-date" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c57c477b645ee248b173bb1176b52dd528872f12c50375801a58aaf5ae91113f" +dependencies = [ + "bstr", + "itoa", + "jiff", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-diff" +version = "0.49.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8e92566eccbca205a0a0f96ffb0327c061e85bc5c95abbcddfe177498aa04f6" +dependencies = [ + "bstr", + "gix-hash", + "gix-object", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-discover" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83bf6dfa4e266a4a9becb4d18fc801f92c3f7cc6c433dd86fdadbcf315ffb6ef" +dependencies = [ + "bstr", + "dunce", + "gix-fs", + "gix-hash", + "gix-path", + "gix-ref", + "gix-sec", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-features" +version = "0.39.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d85d673f2e022a340dba4713bed77ef2cf4cd737d2f3e0f159d45e0935fd81f" +dependencies = [ + "crc32fast", + "flate2", + "gix-hash", + "gix-trace", + "gix-utils", + "libc", + "once_cell", + "prodash", + "sha1_smol", + "thiserror 2.0.11", + "walkdir", +] + +[[package]] +name = "gix-fs" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3d4fac505a621f97e5ce2c69fdc425742af00c0920363ca4074f0eb48b1db9" +dependencies = [ + "fastrand", + "gix-features", + "gix-utils", +] + +[[package]] +name = "gix-glob" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaf69a6bec0a3581567484bf99a4003afcaf6c469fd4214352517ea355cf3435" +dependencies = [ + "bitflags", + "bstr", + "gix-features", + "gix-path", +] + +[[package]] +name = "gix-hash" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5eccc17194ed0e67d49285e4853307e4147e95407f91c1c3e4a13ba9f4e4ce" +dependencies = [ + "faster-hex", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-hashtable" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ef65b256631078ef733bc5530c4e6b1c2e7d5c2830b75d4e9034ab3997d18fe" +dependencies = [ + "gix-hash", + "hashbrown 0.14.5", + "parking_lot", +] + +[[package]] +name = "gix-index" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "270645fd20556b64c8ffa1540d921b281e6994413a0ca068596f97e9367a257a" +dependencies = [ + "bitflags", + "bstr", + "filetime", + "fnv", + "gix-bitmap", + "gix-features", + "gix-fs", + "gix-hash", + "gix-lock", + "gix-object", + "gix-traverse", + "gix-utils", + "gix-validate", + "hashbrown 0.14.5", + "itoa", + "libc", + "memmap2", + "rustix", + "smallvec", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-lock" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd3ab68a452db63d9f3ebdacb10f30dba1fa0d31ac64f4203d395ed1102d940" +dependencies = [ + "gix-tempfile", + "gix-utils", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-object" +version = "0.46.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42d58010183ef033f31088479b4eb92b44fe341b35b62d39eb8b185573d77ea" +dependencies = [ + "bstr", + "gix-actor", + "gix-date", + "gix-features", + "gix-hash", + "gix-hashtable", + "gix-path", + "gix-utils", + "gix-validate", + "itoa", + "smallvec", + "thiserror 2.0.11", + "winnow 0.6.26", +] + +[[package]] +name = "gix-odb" +version = "0.66.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb780eceb3372ee204469478de02eaa34f6ba98247df0186337e0333de97d0ae" +dependencies = [ + "arc-swap", + "gix-date", + "gix-features", + "gix-fs", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-pack", + "gix-path", + "gix-quote", + "parking_lot", + "tempfile", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-pack" +version = "0.56.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4158928929be29cae7ab97afc8e820a932071a7f39d8ba388eed2380c12c566c" +dependencies = [ + "clru", + "gix-chunk", + "gix-features", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-path", + "memmap2", + "smallvec", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-packetline" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e5ae6bc3ac160a6bf44a55f5537813ca3ddb08549c0fd3e7ef699c73c439cd" +dependencies = [ + "bstr", + "faster-hex", + "gix-trace", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-path" +version = "0.10.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c40f12bb65a8299be0cfb90fe718e3be236b7a94b434877012980863a883a99f" +dependencies = [ + "bstr", + "gix-trace", + "home", + "once_cell", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-protocol" +version = "0.47.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c84642e8b6fed7035ce9cc449593019c55b0ec1af7a5dce1ab8a0636eaaeb067" +dependencies = [ + "bstr", + "gix-date", + "gix-features", + "gix-hash", + "gix-ref", + "gix-shallow", + "gix-transport", + "gix-utils", + "maybe-async", + "thiserror 2.0.11", + "winnow 0.6.26", +] + +[[package]] +name = "gix-quote" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e49357fccdb0c85c0d3a3292a9f6db32d9b3535959b5471bb9624908f4a066c6" +dependencies = [ + "bstr", + "gix-utils", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-ref" +version = "0.49.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a91b61776c839d0f1b7114901179afb0947aa7f4d30793ca1c56d335dfef485f" +dependencies = [ + "gix-actor", + "gix-features", + "gix-fs", + "gix-hash", + "gix-lock", + "gix-object", + "gix-path", + "gix-tempfile", + "gix-utils", + "gix-validate", + "memmap2", + "thiserror 2.0.11", + "winnow 0.6.26", +] + +[[package]] +name = "gix-refspec" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00c056bb747868c7eb0aeb352c9f9181ab8ca3d0a2550f16470803500c6c413d" +dependencies = [ + "bstr", + "gix-hash", + "gix-revision", + "gix-validate", + "smallvec", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-revision" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61e1ddc474405a68d2ce8485705dd72fe6ce959f2f5fe718601ead5da2c8f9e7" +dependencies = [ + "bitflags", + "bstr", + "gix-commitgraph", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-revwalk", + "gix-trace", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-revwalk" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "510026fc32f456f8f067d8f37c34088b97a36b2229d88a6a5023ef179fcb109d" +dependencies = [ + "gix-commitgraph", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object", + "smallvec", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-sec" +version = "0.10.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d84dae13271f4313f8d60a166bf27e54c968c7c33e2ffd31c48cafe5da649875" +dependencies = [ + "bitflags", + "gix-path", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "gix-shallow" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d2673242e87492cb6ff671f0c01f689061ca306c4020f137197f3abc84ce01" +dependencies = [ + "bstr", + "gix-hash", + "gix-lock", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-tempfile" +version = "15.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2feb86ef094cc77a4a9a5afbfe5de626897351bbbd0de3cb9314baf3049adb82" +dependencies = [ + "gix-fs", + "libc", + "once_cell", + "parking_lot", + "signal-hook", + "signal-hook-registry", + "tempfile", +] + +[[package]] +name = "gix-trace" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c396a2036920c69695f760a65e7f2677267ccf483f25046977d87e4cb2665f7" + +[[package]] +name = "gix-transport" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd04d91e507a8713cfa2318d5a85d75b36e53a40379cc7eb7634ce400ecacbaf" +dependencies = [ + "bstr", + "gix-command", + "gix-features", + "gix-packetline", + "gix-quote", + "gix-sec", + "gix-url", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-traverse" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed47d648619e23e93f971d2bba0d10c1100e54ef95d2981d609907a8cabac89" +dependencies = [ + "bitflags", + "gix-commitgraph", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-revwalk", + "smallvec", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-url" +version = "0.28.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d096fb733ba6bd3f5403dba8bd72bdd8809fe2b347b57844040b8f49c93492d9" +dependencies = [ + "bstr", + "gix-features", + "gix-path", + "percent-encoding", + "thiserror 2.0.11", + "url", +] + +[[package]] +name = "gix-utils" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff08f24e03ac8916c478c8419d7d3c33393da9bb41fa4c24455d5406aeefd35f" +dependencies = [ + "fastrand", + "unicode-normalization", +] + +[[package]] +name = "gix-validate" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eaa01c3337d885617c0a42e92823922a2aea71f4caeace6fe87002bdcadbd90" +dependencies = [ + "bstr", + "thiserror 2.0.11", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + +[[package]] +name = "home" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +dependencies = [ + "equivalent", + "hashbrown 0.15.2", +] + +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + +[[package]] +name = "jiff" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c04ef77ae73f3cf50510712722f0c4e8b46f5aaa1bf5ffad2ae213e6495e78e5" +dependencies = [ + "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", + "windows-sys 0.59.0", +] + +[[package]] +name = "jiff-tzdb" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf2cec2f5d266af45a071ece48b1fb89f3b00b2421ac3a5fe10285a6caaa60d3" + +[[package]] +name = "jiff-tzdb-platform" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a63c62e404e7b92979d2792352d885a7f8f83fd1d0d31eea582d77b2ceca697e" +dependencies = [ + "jiff-tzdb", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.169" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" + +[[package]] +name = "libloading" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +dependencies = [ + "cfg-if", + "windows-targets 0.52.6", +] + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags", + "libc", + "redox_syscall", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "litemap" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" + +[[package]] +name = "maybe-async" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memmap2" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +dependencies = [ + "libc", +] + +[[package]] +name = "miniz_oxide" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +dependencies = [ + "adler2", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + +[[package]] +name = "once_cell" +version = "1.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "oxifs" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "792609ce5126ce20295e83d7d4129d338b9d8f896cbc774906b90c274b6e1235" +dependencies = [ + "tar", + "tempfile", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "portable-atomic" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" + +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "proc-macro2" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prodash" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a266d8d6020c61a437be704c5e618037588e1985c7dbb7bf8d265db84cffe325" +dependencies = [ + "log", + "parking_lot", +] + +[[package]] +name = "quote" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustversion" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" + +[[package]] +name = "ryu" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "semver" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" +dependencies = [ + "serde", +] + +[[package]] +name = "serde" +version = "1.0.218" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.218" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.139" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + +[[package]] +name = "sha1_smol" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shell-words" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" + +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "smallvec" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "syn" +version = "2.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tar" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tempfile" +version = "3.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" +dependencies = [ + "cfg-if", + "fastrand", + "getrandom 0.3.1", + "once_cell", + "rustix", + "windows-sys 0.59.0", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +dependencies = [ + "thiserror-impl 2.0.11", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" +dependencies = [ + "deranged", + "itoa", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "toml" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.7.3", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "nu-ansi-term", + "sharded-slab", + "smallvec", + "thread_local", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "unicode-bom" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" + +[[package]] +name = "unicode-ident" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" + +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "vergen" +version = "9.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0d2f179f8075b805a43a2a21728a46f0cc2921b3c58695b28fa8817e103cd9a" +dependencies = [ + "anyhow", + "cargo_metadata", + "derive_builder", + "regex", + "rustc_version", + "rustversion", + "time", + "vergen-lib", +] + +[[package]] +name = "vergen-gix" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b218ac3c56c2c31227bd7813735bfa51eb0dc5212e6d4bab6eac7c8208e5b66" +dependencies = [ + "anyhow", + "derive_builder", + "gix", + "rustversion", + "time", + "vergen", + "vergen-lib", +] + +[[package]] +name = "vergen-lib" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", +] + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.6.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "xattr" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e105d177a3871454f754b33bb0ee637ecaaac997446375fd3e5d43a2ed00c909" +dependencies = [ + "libc", + "linux-raw-sys", + "rustix", +] + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] From 3c99463dc31656360a0d9023c87521c9493f6ce0 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 22 Feb 2025 14:48:14 +0000 Subject: [PATCH 065/163] fix --- Cargo.lock | 2 +- flake.lock | 21 +++++++++++++++++---- flake.nix | 2 +- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0525734..3905db5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 4 +version = 3 [[package]] name = "adler2" diff --git a/flake.lock b/flake.lock index 856cc6a..d41282c 100644 --- a/flake.lock +++ b/flake.lock @@ -72,6 +72,22 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1739866667, + "narHash": "sha256-EO1ygNKZlsAC9avfcwHkKGMsmipUk1Uc0TbrEZpkn64=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "73cf49b8ad837ade2de76f87eb53fc85ed5d4680", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "root": { "inputs": { "cargo2nix": "cargo2nix", @@ -79,10 +95,7 @@ "cargo2nix", "flake-utils" ], - "nixpkgs": [ - "cargo2nix", - "nixpkgs" - ] + "nixpkgs": "nixpkgs_2" } }, "rust-overlay": { diff --git a/flake.nix b/flake.nix index cd53de9..3a9e30e 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ inputs = { cargo2nix.url = "github:cargo2nix/cargo2nix/release-0.11.0"; flake-utils.follows = "cargo2nix/flake-utils"; - nixpkgs.follows = "cargo2nix/nixpkgs"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; }; outputs = inputs: with inputs; From 7772a1fc998950bbe5e25853c66c81904c3690ac Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 22 Feb 2025 14:59:26 +0000 Subject: [PATCH 066/163] fix --- Cargo.nix | 3101 ---------------------------------------------------- flake.lock | 144 --- flake.nix | 28 - 3 files changed, 3273 deletions(-) delete mode 100644 Cargo.nix delete mode 100644 flake.lock delete mode 100644 flake.nix diff --git a/Cargo.nix b/Cargo.nix deleted file mode 100644 index cd8cf44..0000000 --- a/Cargo.nix +++ /dev/null @@ -1,3101 +0,0 @@ -# This file was @generated by cargo2nix 0.11.0. -# It is not intended to be manually edited. - -args@{ - release ? true, - rootFeatures ? [ - "enginelib/default" - ], - rustPackages, - buildRustPackages, - hostPlatform, - hostPlatformCpu ? null, - hostPlatformFeatures ? [], - target ? null, - codegenOpts ? null, - profileOpts ? null, - cargoUnstableFlags ? null, - rustcLinkFlags ? null, - rustcBuildFlags ? null, - mkRustCrate, - rustLib, - lib, - workspaceSrc, - ignoreLockHash, -}: -let - nixifiedLockHash = "7a7a4e7f2cc7b8aa955e47026c14e2ed580095137b482255a2139e0782164ee5"; - workspaceSrc = if args.workspaceSrc == null then ./. else args.workspaceSrc; - currentLockHash = builtins.hashFile "sha256" (workspaceSrc + /Cargo.lock); - lockHashIgnored = if ignoreLockHash - then builtins.trace "Ignoring lock hash" ignoreLockHash - else ignoreLockHash; -in if !lockHashIgnored && (nixifiedLockHash != currentLockHash) then - throw ("Cargo.nix ${nixifiedLockHash} is out of sync with Cargo.lock ${currentLockHash}") -else let - inherit (rustLib) fetchCratesIo fetchCrateLocal fetchCrateGit fetchCrateAlternativeRegistry expandFeatures decideProfile genDrvsByProfile; - profilesByName = { - dev = builtins.fromTOML "codegen-units = 1\n"; - release = builtins.fromTOML "codegen-units = 1\n"; - }; - rootFeatures' = expandFeatures rootFeatures; - overridableMkRustCrate = f: - let - drvs = genDrvsByProfile profilesByName ({ profile, profileName }: mkRustCrate ({ inherit release profile hostPlatformCpu hostPlatformFeatures target profileOpts codegenOpts cargoUnstableFlags rustcLinkFlags rustcBuildFlags; } // (f profileName))); - in { compileMode ? null, profileName ? decideProfile compileMode release }: - let drv = drvs.${profileName}; in if compileMode == null then drv else drv.override { inherit compileMode; }; -in -{ - cargo2nixVersion = "0.11.0"; - workspace = { - enginelib = rustPackages.unknown.enginelib."0.1.7"; - }; - "registry+https://github.com/rust-lang/crates.io-index".adler2."2.0.0" = overridableMkRustCrate (profileName: rec { - name = "adler2"; - version = "2.0.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".ahash."0.8.11" = overridableMkRustCrate (profileName: rec { - name = "ahash"; - version = "0.8.11"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"; }; - dependencies = { - cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; - ${ if !((hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l") && hostPlatform.parsed.kernel.name == "none") then "once_cell" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; - zerocopy = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerocopy."0.7.35" { inherit profileName; }).out; - }; - buildDependencies = { - version_check = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".version_check."0.9.5" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".aho-corasick."1.1.3" = overridableMkRustCrate (profileName: rec { - name = "aho-corasick"; - version = "1.1.3"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"; }; - features = builtins.concatLists [ - [ "perf-literal" ] - [ "std" ] - ]; - dependencies = { - memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".allocator-api2."0.2.21" = overridableMkRustCrate (profileName: rec { - name = "allocator-api2"; - version = "0.2.21"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"; }; - features = builtins.concatLists [ - [ "alloc" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".anyhow."1.0.96" = overridableMkRustCrate (profileName: rec { - name = "anyhow"; - version = "1.0.96"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "6b964d184e89d9b6b67dd2715bc8e74cf3107fb2b529990c90cf517326150bf4"; }; - features = builtins.concatLists [ - [ "default" ] - [ "std" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".arc-swap."1.7.1" = overridableMkRustCrate (profileName: rec { - name = "arc-swap"; - version = "1.7.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".autocfg."1.4.0" = overridableMkRustCrate (profileName: rec { - name = "autocfg"; - version = "1.4.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".bincode."1.3.3" = overridableMkRustCrate (profileName: rec { - name = "bincode"; - version = "1.3.3"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"; }; - dependencies = { - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" = overridableMkRustCrate (profileName: rec { - name = "bitflags"; - version = "2.8.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36"; }; - features = builtins.concatLists [ - [ "std" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" = overridableMkRustCrate (profileName: rec { - name = "bstr"; - version = "1.11.3"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "std" ] - [ "unicode" ] - ]; - dependencies = { - memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; - regex_automata = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".regex-automata."0.4.9" { inherit profileName; }).out; - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".camino."1.1.9" = overridableMkRustCrate (profileName: rec { - name = "camino"; - version = "1.1.9"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3"; }; - features = builtins.concatLists [ - [ "serde" ] - [ "serde1" ] - ]; - dependencies = { - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".cargo-platform."0.1.9" = overridableMkRustCrate (profileName: rec { - name = "cargo-platform"; - version = "0.1.9"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea"; }; - dependencies = { - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".cargo_metadata."0.19.1" = overridableMkRustCrate (profileName: rec { - name = "cargo_metadata"; - version = "0.19.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "8769706aad5d996120af43197bf46ef6ad0fda35216b4505f926a365a232d924"; }; - features = builtins.concatLists [ - [ "default" ] - ]; - dependencies = { - camino = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".camino."1.1.9" { inherit profileName; }).out; - cargo_platform = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cargo-platform."0.1.9" { inherit profileName; }).out; - semver = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".semver."1.0.25" { inherit profileName; }).out; - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - serde_json = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.139" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" = overridableMkRustCrate (profileName: rec { - name = "cfg-if"; - version = "1.0.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".clru."0.6.2" = overridableMkRustCrate (profileName: rec { - name = "clru"; - version = "0.6.2"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".crc32fast."1.4.2" = overridableMkRustCrate (profileName: rec { - name = "crc32fast"; - version = "1.4.2"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"; }; - features = builtins.concatLists [ - [ "default" ] - [ "std" ] - ]; - dependencies = { - cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".darling."0.20.10" = overridableMkRustCrate (profileName: rec { - name = "darling"; - version = "0.20.10"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"; }; - features = builtins.concatLists [ - [ "default" ] - [ "suggestions" ] - ]; - dependencies = { - darling_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".darling_core."0.20.10" { inherit profileName; }).out; - darling_macro = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".darling_macro."0.20.10" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".darling_core."0.20.10" = overridableMkRustCrate (profileName: rec { - name = "darling_core"; - version = "0.20.10"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"; }; - features = builtins.concatLists [ - [ "strsim" ] - [ "suggestions" ] - ]; - dependencies = { - fnv = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".fnv."1.0.7" { inherit profileName; }).out; - ident_case = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".ident_case."1.0.1" { inherit profileName; }).out; - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - strsim = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".strsim."0.11.1" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".darling_macro."0.20.10" = overridableMkRustCrate (profileName: rec { - name = "darling_macro"; - version = "0.20.10"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"; }; - dependencies = { - darling_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".darling_core."0.20.10" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".deranged."0.3.11" = overridableMkRustCrate (profileName: rec { - name = "deranged"; - version = "0.3.11"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "powerfmt" ] - [ "std" ] - ]; - dependencies = { - powerfmt = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".powerfmt."0.2.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".derive_builder."0.20.2" = overridableMkRustCrate (profileName: rec { - name = "derive_builder"; - version = "0.20.2"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947"; }; - features = builtins.concatLists [ - [ "default" ] - [ "std" ] - ]; - dependencies = { - derive_builder_macro = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_builder_macro."0.20.2" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".derive_builder_core."0.20.2" = overridableMkRustCrate (profileName: rec { - name = "derive_builder_core"; - version = "0.20.2"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8"; }; - features = builtins.concatLists [ - [ "lib_has_std" ] - ]; - dependencies = { - darling = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".darling."0.20.10" { inherit profileName; }).out; - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".derive_builder_macro."0.20.2" = overridableMkRustCrate (profileName: rec { - name = "derive_builder_macro"; - version = "0.20.2"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c"; }; - features = builtins.concatLists [ - [ "lib_has_std" ] - ]; - dependencies = { - derive_builder_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_builder_core."0.20.2" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".directories."5.0.1" = overridableMkRustCrate (profileName: rec { - name = "directories"; - version = "5.0.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35"; }; - dependencies = { - dirs_sys = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".dirs-sys."0.4.1" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".dirs-sys."0.4.1" = overridableMkRustCrate (profileName: rec { - name = "dirs-sys"; - version = "0.4.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"; }; - dependencies = { - ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - option_ext = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".option-ext."0.2.0" { inherit profileName; }).out; - ${ if hostPlatform.parsed.kernel.name == "redox" then "redox_users" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".redox_users."0.4.6" { inherit profileName; }).out; - ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.48.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" = overridableMkRustCrate (profileName: rec { - name = "displaydoc"; - version = "0.2.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"; }; - dependencies = { - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".dunce."1.0.5" = overridableMkRustCrate (profileName: rec { - name = "dunce"; - version = "1.0.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"; }; - }); - - "unknown".enginelib."0.1.7" = overridableMkRustCrate (profileName: rec { - name = "enginelib"; - version = "0.1.7"; - registry = "unknown"; - src = fetchCrateLocal workspaceSrc; - dependencies = { - bincode = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bincode."1.3.3" { inherit profileName; }).out; - directories = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".directories."5.0.1" { inherit profileName; }).out; - libloading = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libloading."0.8.6" { inherit profileName; }).out; - oxifs = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".oxifs."0.1.0" { inherit profileName; }).out; - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - toml = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".toml."0.8.20" { inherit profileName; }).out; - tracing = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing."0.1.41" { inherit profileName; }).out; - tracing_subscriber = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing-subscriber."0.3.19" { inherit profileName; }).out; - }; - buildDependencies = { - vergen_gix = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".vergen-gix."1.0.6" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".equivalent."1.0.2" = overridableMkRustCrate (profileName: rec { - name = "equivalent"; - version = "1.0.2"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".errno."0.3.10" = overridableMkRustCrate (profileName: rec { - name = "errno"; - version = "0.3.10"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d"; }; - features = builtins.concatLists [ - [ "std" ] - ]; - dependencies = { - ${ if hostPlatform.isUnix || hostPlatform.parsed.kernel.name == "hermit" || hostPlatform.parsed.kernel.name == "wasi" then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".faster-hex."0.9.0" = overridableMkRustCrate (profileName: rec { - name = "faster-hex"; - version = "0.9.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "default" ] - [ "serde" ] - [ "std" ] - ]; - dependencies = { - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".fastrand."2.3.0" = overridableMkRustCrate (profileName: rec { - name = "fastrand"; - version = "2.3.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "default" ] - [ "std" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".filetime."0.2.25" = overridableMkRustCrate (profileName: rec { - name = "filetime"; - version = "0.2.25"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586"; }; - dependencies = { - cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; - ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - ${ if hostPlatform.parsed.kernel.name == "redox" then "libredox" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libredox."0.1.3" { inherit profileName; }).out; - ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".flate2."1.0.35" = overridableMkRustCrate (profileName: rec { - name = "flate2"; - version = "1.0.35"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c"; }; - features = builtins.concatLists [ - [ "any_impl" ] - [ "miniz_oxide" ] - [ "rust_backend" ] - ]; - dependencies = { - crc32fast = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".crc32fast."1.4.2" { inherit profileName; }).out; - miniz_oxide = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".miniz_oxide."0.8.5" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".fnv."1.0.7" = overridableMkRustCrate (profileName: rec { - name = "fnv"; - version = "1.0.7"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"; }; - features = builtins.concatLists [ - [ "default" ] - [ "std" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".form_urlencoded."1.2.1" = overridableMkRustCrate (profileName: rec { - name = "form_urlencoded"; - version = "1.2.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "std" ] - ]; - dependencies = { - percent_encoding = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".percent-encoding."2.3.1" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".getrandom."0.2.15" = overridableMkRustCrate (profileName: rec { - name = "getrandom"; - version = "0.2.15"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"; }; - features = builtins.concatLists [ - [ "std" ] - ]; - dependencies = { - cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; - ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - ${ if hostPlatform.parsed.kernel.name == "wasi" then "wasi" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".wasi."0.11.0+wasi-snapshot-preview1" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".getrandom."0.3.1" = overridableMkRustCrate (profileName: rec { - name = "getrandom"; - version = "0.3.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8"; }; - dependencies = { - cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; - ${ if hostPlatform.parsed.kernel.name == "linux" || hostPlatform.parsed.kernel.name == "android" || hostPlatform.parsed.kernel.name == "dragonfly" || hostPlatform.parsed.kernel.name == "freebsd" || hostPlatform.parsed.kernel.name == "hurd" || hostPlatform.parsed.kernel.name == "illumos" || hostPlatform.parsed.kernel.name == "horizon" && (hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l") || hostPlatform.parsed.kernel.name == "haiku" || hostPlatform.parsed.kernel.name == "redox" || hostPlatform.parsed.kernel.name == "nto" || hostPlatform.parsed.kernel.name == "aix" || hostPlatform.parsed.kernel.name == "ios" || hostPlatform.parsed.kernel.name == "visionos" || hostPlatform.parsed.kernel.name == "watchos" || hostPlatform.parsed.kernel.name == "tvos" || hostPlatform.parsed.kernel.name == "darwin" || hostPlatform.parsed.kernel.name == "openbsd" || hostPlatform.parsed.kernel.name == "vita" || hostPlatform.parsed.kernel.name == "emscripten" || hostPlatform.parsed.kernel.name == "netbsd" || hostPlatform.parsed.kernel.name == "solaris" || hostPlatform.parsed.kernel.name == "vxworks" then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - ${ if hostPlatform.parsed.cpu.name == "wasm32" && hostPlatform.parsed.kernel.name == "wasi" && hostPlatform.parsed.abi.name == "p2" then "wasi" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".wasi."0.13.3+wasi-0.2.2" { inherit profileName; }).out; - ${ if hostPlatform.isWindows && !(hostPlatform.parsed.vendor.name == "win7") then "windows_targets" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.52.6" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix."0.69.1" = overridableMkRustCrate (profileName: rec { - name = "gix"; - version = "0.69.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "8d0eebdaecdcf405d5433a36f85e4f058cf4de48ee2604388be0dbccbaad353e"; }; - features = builtins.concatLists [ - [ "index" ] - [ "interrupt" ] - [ "revision" ] - ]; - dependencies = { - gix_actor = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-actor."0.33.2" { inherit profileName; }).out; - gix_commitgraph = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-commitgraph."0.25.1" { inherit profileName; }).out; - gix_config = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-config."0.42.0" { inherit profileName; }).out; - gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; - gix_diff = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-diff."0.49.0" { inherit profileName; }).out; - gix_discover = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-discover."0.37.0" { inherit profileName; }).out; - gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; - gix_fs = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-fs."0.12.1" { inherit profileName; }).out; - gix_glob = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-glob."0.17.1" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_hashtable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" { inherit profileName; }).out; - gix_index = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-index."0.37.0" { inherit profileName; }).out; - gix_lock = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-lock."15.0.1" { inherit profileName; }).out; - gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; - gix_odb = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-odb."0.66.0" { inherit profileName; }).out; - gix_pack = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-pack."0.56.0" { inherit profileName; }).out; - gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; - gix_protocol = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-protocol."0.47.0" { inherit profileName; }).out; - gix_ref = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-ref."0.49.1" { inherit profileName; }).out; - gix_refspec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-refspec."0.27.0" { inherit profileName; }).out; - gix_revision = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-revision."0.31.1" { inherit profileName; }).out; - gix_revwalk = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-revwalk."0.17.0" { inherit profileName; }).out; - gix_sec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-sec."0.10.11" { inherit profileName; }).out; - gix_shallow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-shallow."0.1.0" { inherit profileName; }).out; - gix_tempfile = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-tempfile."15.0.0" { inherit profileName; }).out; - gix_trace = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-trace."0.1.12" { inherit profileName; }).out; - gix_traverse = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-traverse."0.43.1" { inherit profileName; }).out; - gix_url = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-url."0.28.2" { inherit profileName; }).out; - gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; - gix_validate = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-validate."0.9.3" { inherit profileName; }).out; - once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; - parking_lot = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.12.3" { inherit profileName; }).out; - signal_hook = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".signal-hook."0.3.17" { inherit profileName; }).out; - smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-actor."0.33.2" = overridableMkRustCrate (profileName: rec { - name = "gix-actor"; - version = "0.33.2"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "20018a1a6332e065f1fcc8305c1c932c6b8c9985edea2284b3c79dc6fa3ee4b2"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; - gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; - itoa = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".itoa."1.0.14" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - winnow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winnow."0.6.26" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-bitmap."0.2.14" = overridableMkRustCrate (profileName: rec { - name = "gix-bitmap"; - version = "0.2.14"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "b1db9765c69502650da68f0804e3dc2b5f8ccc6a2d104ca6c85bc40700d37540"; }; - dependencies = { - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-chunk."0.4.11" = overridableMkRustCrate (profileName: rec { - name = "gix-chunk"; - version = "0.4.11"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "0b1f1d8764958699dc764e3f727cef280ff4d1bd92c107bbf8acd85b30c1bd6f"; }; - dependencies = { - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-command."0.4.1" = overridableMkRustCrate (profileName: rec { - name = "gix-command"; - version = "0.4.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "cb410b84d6575db45e62025a9118bdbf4d4b099ce7575a76161e898d9ca98df1"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; - gix_trace = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-trace."0.1.12" { inherit profileName; }).out; - shell_words = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".shell-words."1.1.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-commitgraph."0.25.1" = overridableMkRustCrate (profileName: rec { - name = "gix-commitgraph"; - version = "0.25.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "a8da6591a7868fb2b6dabddea6b09988b0b05e0213f938dbaa11a03dd7a48d85"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_chunk = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-chunk."0.4.11" { inherit profileName; }).out; - gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - memmap2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memmap2."0.9.5" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-config."0.42.0" = overridableMkRustCrate (profileName: rec { - name = "gix-config"; - version = "0.42.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "6649b406ca1f99cb148959cf00468b231f07950f8ec438cc0903cda563606f19"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_config_value = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-config-value."0.14.11" { inherit profileName; }).out; - gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; - gix_glob = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-glob."0.17.1" { inherit profileName; }).out; - gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; - gix_ref = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-ref."0.49.1" { inherit profileName; }).out; - gix_sec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-sec."0.10.11" { inherit profileName; }).out; - memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; - once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; - smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - unicode_bom = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".unicode-bom."2.0.3" { inherit profileName; }).out; - winnow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winnow."0.6.26" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-config-value."0.14.11" = overridableMkRustCrate (profileName: rec { - name = "gix-config-value"; - version = "0.14.11"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "11365144ef93082f3403471dbaa94cfe4b5e72743bdb9560719a251d439f4cee"; }; - dependencies = { - bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; - ${ if !hostPlatform.isWindows then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" = overridableMkRustCrate (profileName: rec { - name = "gix-date"; - version = "0.9.3"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "c57c477b645ee248b173bb1176b52dd528872f12c50375801a58aaf5ae91113f"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - itoa = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".itoa."1.0.14" { inherit profileName; }).out; - jiff = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".jiff."0.1.29" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-diff."0.49.0" = overridableMkRustCrate (profileName: rec { - name = "gix-diff"; - version = "0.49.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "a8e92566eccbca205a0a0f96ffb0327c061e85bc5c95abbcddfe177498aa04f6"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-discover."0.37.0" = overridableMkRustCrate (profileName: rec { - name = "gix-discover"; - version = "0.37.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "83bf6dfa4e266a4a9becb4d18fc801f92c3f7cc6c433dd86fdadbcf315ffb6ef"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - ${ if hostPlatform.isWindows then "dunce" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".dunce."1.0.5" { inherit profileName; }).out; - gix_fs = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-fs."0.12.1" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; - gix_ref = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-ref."0.49.1" { inherit profileName; }).out; - gix_sec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-sec."0.10.11" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" = overridableMkRustCrate (profileName: rec { - name = "gix-features"; - version = "0.39.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "7d85d673f2e022a340dba4713bed77ef2cf4cd737d2f3e0f159d45e0935fd81f"; }; - features = builtins.concatLists [ - [ "crc32" ] - [ "default" ] - [ "fs-read-dir" ] - [ "once_cell" ] - [ "prodash" ] - [ "progress" ] - [ "rustsha1" ] - [ "walkdir" ] - [ "zlib" ] - ]; - dependencies = { - crc32fast = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".crc32fast."1.4.2" { inherit profileName; }).out; - flate2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".flate2."1.0.35" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_trace = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-trace."0.1.12" { inherit profileName; }).out; - gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; - ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; - prodash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".prodash."29.0.0" { inherit profileName; }).out; - sha1_smol = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".sha1_smol."1.0.1" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - walkdir = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".walkdir."2.5.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-fs."0.12.1" = overridableMkRustCrate (profileName: rec { - name = "gix-fs"; - version = "0.12.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "3b3d4fac505a621f97e5ce2c69fdc425742af00c0920363ca4074f0eb48b1db9"; }; - dependencies = { - fastrand = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".fastrand."2.3.0" { inherit profileName; }).out; - gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; - gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-glob."0.17.1" = overridableMkRustCrate (profileName: rec { - name = "gix-glob"; - version = "0.17.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "aaf69a6bec0a3581567484bf99a4003afcaf6c469fd4214352517ea355cf3435"; }; - dependencies = { - bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; - gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" = overridableMkRustCrate (profileName: rec { - name = "gix-hash"; - version = "0.15.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "0b5eccc17194ed0e67d49285e4853307e4147e95407f91c1c3e4a13ba9f4e4ce"; }; - dependencies = { - faster_hex = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".faster-hex."0.9.0" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" = overridableMkRustCrate (profileName: rec { - name = "gix-hashtable"; - version = "0.6.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "0ef65b256631078ef733bc5530c4e6b1c2e7d5c2830b75d4e9034ab3997d18fe"; }; - dependencies = { - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - hashbrown = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hashbrown."0.14.5" { inherit profileName; }).out; - parking_lot = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.12.3" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-index."0.37.0" = overridableMkRustCrate (profileName: rec { - name = "gix-index"; - version = "0.37.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "270645fd20556b64c8ffa1540d921b281e6994413a0ca068596f97e9367a257a"; }; - dependencies = { - bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - filetime = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".filetime."0.2.25" { inherit profileName; }).out; - fnv = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".fnv."1.0.7" { inherit profileName; }).out; - gix_bitmap = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-bitmap."0.2.14" { inherit profileName; }).out; - gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; - gix_fs = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-fs."0.12.1" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_lock = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-lock."15.0.1" { inherit profileName; }).out; - gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; - gix_traverse = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-traverse."0.43.1" { inherit profileName; }).out; - gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; - gix_validate = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-validate."0.9.3" { inherit profileName; }).out; - hashbrown = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hashbrown."0.14.5" { inherit profileName; }).out; - itoa = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".itoa."1.0.14" { inherit profileName; }).out; - ${ if !hostPlatform.isWindows then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - memmap2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memmap2."0.9.5" { inherit profileName; }).out; - ${ if !hostPlatform.isWindows then "rustix" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".rustix."0.38.44" { inherit profileName; }).out; - smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-lock."15.0.1" = overridableMkRustCrate (profileName: rec { - name = "gix-lock"; - version = "15.0.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "1cd3ab68a452db63d9f3ebdacb10f30dba1fa0d31ac64f4203d395ed1102d940"; }; - dependencies = { - gix_tempfile = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-tempfile."15.0.0" { inherit profileName; }).out; - gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" = overridableMkRustCrate (profileName: rec { - name = "gix-object"; - version = "0.46.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "e42d58010183ef033f31088479b4eb92b44fe341b35b62d39eb8b185573d77ea"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_actor = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-actor."0.33.2" { inherit profileName; }).out; - gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; - gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_hashtable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" { inherit profileName; }).out; - gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; - gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; - gix_validate = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-validate."0.9.3" { inherit profileName; }).out; - itoa = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".itoa."1.0.14" { inherit profileName; }).out; - smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - winnow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winnow."0.6.26" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-odb."0.66.0" = overridableMkRustCrate (profileName: rec { - name = "gix-odb"; - version = "0.66.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "cb780eceb3372ee204469478de02eaa34f6ba98247df0186337e0333de97d0ae"; }; - dependencies = { - arc_swap = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".arc-swap."1.7.1" { inherit profileName; }).out; - gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; - gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; - gix_fs = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-fs."0.12.1" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_hashtable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" { inherit profileName; }).out; - gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; - gix_pack = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-pack."0.56.0" { inherit profileName; }).out; - gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; - gix_quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-quote."0.4.15" { inherit profileName; }).out; - parking_lot = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.12.3" { inherit profileName; }).out; - tempfile = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tempfile."3.17.1" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-pack."0.56.0" = overridableMkRustCrate (profileName: rec { - name = "gix-pack"; - version = "0.56.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "4158928929be29cae7ab97afc8e820a932071a7f39d8ba388eed2380c12c566c"; }; - features = builtins.concatLists [ - [ "object-cache-dynamic" ] - ]; - dependencies = { - clru = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".clru."0.6.2" { inherit profileName; }).out; - gix_chunk = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-chunk."0.4.11" { inherit profileName; }).out; - gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_hashtable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" { inherit profileName; }).out; - gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; - gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; - memmap2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memmap2."0.9.5" { inherit profileName; }).out; - smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-packetline."0.18.3" = overridableMkRustCrate (profileName: rec { - name = "gix-packetline"; - version = "0.18.3"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "c7e5ae6bc3ac160a6bf44a55f5537813ca3ddb08549c0fd3e7ef699c73c439cd"; }; - features = builtins.concatLists [ - [ "default" ] - ]; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - faster_hex = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".faster-hex."0.9.0" { inherit profileName; }).out; - gix_trace = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-trace."0.1.12" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" = overridableMkRustCrate (profileName: rec { - name = "gix-path"; - version = "0.10.14"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "c40f12bb65a8299be0cfb90fe718e3be236b7a94b434877012980863a883a99f"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_trace = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-trace."0.1.12" { inherit profileName; }).out; - home = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".home."0.5.11" { inherit profileName; }).out; - once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-protocol."0.47.0" = overridableMkRustCrate (profileName: rec { - name = "gix-protocol"; - version = "0.47.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "c84642e8b6fed7035ce9cc449593019c55b0ec1af7a5dce1ab8a0636eaaeb067"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; - gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_ref = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-ref."0.49.1" { inherit profileName; }).out; - gix_shallow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-shallow."0.1.0" { inherit profileName; }).out; - gix_transport = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-transport."0.44.0" { inherit profileName; }).out; - gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; - maybe_async = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".maybe-async."0.2.10" { profileName = "__noProfile"; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - winnow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winnow."0.6.26" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-quote."0.4.15" = overridableMkRustCrate (profileName: rec { - name = "gix-quote"; - version = "0.4.15"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "e49357fccdb0c85c0d3a3292a9f6db32d9b3535959b5471bb9624908f4a066c6"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-ref."0.49.1" = overridableMkRustCrate (profileName: rec { - name = "gix-ref"; - version = "0.49.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "a91b61776c839d0f1b7114901179afb0947aa7f4d30793ca1c56d335dfef485f"; }; - dependencies = { - gix_actor = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-actor."0.33.2" { inherit profileName; }).out; - gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; - gix_fs = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-fs."0.12.1" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_lock = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-lock."15.0.1" { inherit profileName; }).out; - gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; - gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; - gix_tempfile = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-tempfile."15.0.0" { inherit profileName; }).out; - gix_utils = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" { inherit profileName; }).out; - gix_validate = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-validate."0.9.3" { inherit profileName; }).out; - memmap2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memmap2."0.9.5" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - winnow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winnow."0.6.26" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-refspec."0.27.0" = overridableMkRustCrate (profileName: rec { - name = "gix-refspec"; - version = "0.27.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "00c056bb747868c7eb0aeb352c9f9181ab8ca3d0a2550f16470803500c6c413d"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_revision = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-revision."0.31.1" { inherit profileName; }).out; - gix_validate = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-validate."0.9.3" { inherit profileName; }).out; - smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-revision."0.31.1" = overridableMkRustCrate (profileName: rec { - name = "gix-revision"; - version = "0.31.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "61e1ddc474405a68d2ce8485705dd72fe6ce959f2f5fe718601ead5da2c8f9e7"; }; - features = builtins.concatLists [ - [ "describe" ] - [ "merge_base" ] - ]; - dependencies = { - bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_commitgraph = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-commitgraph."0.25.1" { inherit profileName; }).out; - gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_hashtable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" { inherit profileName; }).out; - gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; - gix_revwalk = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-revwalk."0.17.0" { inherit profileName; }).out; - gix_trace = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-trace."0.1.12" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-revwalk."0.17.0" = overridableMkRustCrate (profileName: rec { - name = "gix-revwalk"; - version = "0.17.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "510026fc32f456f8f067d8f37c34088b97a36b2229d88a6a5023ef179fcb109d"; }; - dependencies = { - gix_commitgraph = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-commitgraph."0.25.1" { inherit profileName; }).out; - gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_hashtable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" { inherit profileName; }).out; - gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; - smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-sec."0.10.11" = overridableMkRustCrate (profileName: rec { - name = "gix-sec"; - version = "0.10.11"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "d84dae13271f4313f8d60a166bf27e54c968c7c33e2ffd31c48cafe5da649875"; }; - dependencies = { - bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; - ${ if hostPlatform.isWindows then "gix_path" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; - ${ if !hostPlatform.isWindows then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.52.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-shallow."0.1.0" = overridableMkRustCrate (profileName: rec { - name = "gix-shallow"; - version = "0.1.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "88d2673242e87492cb6ff671f0c01f689061ca306c4020f137197f3abc84ce01"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_lock = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-lock."15.0.1" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-tempfile."15.0.0" = overridableMkRustCrate (profileName: rec { - name = "gix-tempfile"; - version = "15.0.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "2feb86ef094cc77a4a9a5afbfe5de626897351bbbd0de3cb9314baf3049adb82"; }; - features = builtins.concatLists [ - [ "signals" ] - ]; - dependencies = { - gix_fs = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-fs."0.12.1" { inherit profileName; }).out; - ${ if !hostPlatform.isWindows then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; - parking_lot = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.12.3" { inherit profileName; }).out; - signal_hook = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".signal-hook."0.3.17" { inherit profileName; }).out; - signal_hook_registry = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".signal-hook-registry."1.4.2" { inherit profileName; }).out; - tempfile = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tempfile."3.17.1" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-trace."0.1.12" = overridableMkRustCrate (profileName: rec { - name = "gix-trace"; - version = "0.1.12"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "7c396a2036920c69695f760a65e7f2677267ccf483f25046977d87e4cb2665f7"; }; - features = builtins.concatLists [ - [ "default" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-transport."0.44.0" = overridableMkRustCrate (profileName: rec { - name = "gix-transport"; - version = "0.44.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "dd04d91e507a8713cfa2318d5a85d75b36e53a40379cc7eb7634ce400ecacbaf"; }; - features = builtins.concatLists [ - [ "default" ] - ]; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_command = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-command."0.4.1" { inherit profileName; }).out; - gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; - gix_packetline = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-packetline."0.18.3" { inherit profileName; }).out; - gix_quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-quote."0.4.15" { inherit profileName; }).out; - gix_sec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-sec."0.10.11" { inherit profileName; }).out; - gix_url = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-url."0.28.2" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-traverse."0.43.1" = overridableMkRustCrate (profileName: rec { - name = "gix-traverse"; - version = "0.43.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "6ed47d648619e23e93f971d2bba0d10c1100e54ef95d2981d609907a8cabac89"; }; - dependencies = { - bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; - gix_commitgraph = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-commitgraph."0.25.1" { inherit profileName; }).out; - gix_date = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-date."0.9.3" { inherit profileName; }).out; - gix_hash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hash."0.15.1" { inherit profileName; }).out; - gix_hashtable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-hashtable."0.6.0" { inherit profileName; }).out; - gix_object = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-object."0.46.1" { inherit profileName; }).out; - gix_revwalk = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-revwalk."0.17.0" { inherit profileName; }).out; - smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-url."0.28.2" = overridableMkRustCrate (profileName: rec { - name = "gix-url"; - version = "0.28.2"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "d096fb733ba6bd3f5403dba8bd72bdd8809fe2b347b57844040b8f49c93492d9"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - gix_features = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-features."0.39.1" { inherit profileName; }).out; - gix_path = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix-path."0.10.14" { inherit profileName; }).out; - percent_encoding = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".percent-encoding."2.3.1" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - url = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".url."2.5.4" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-utils."0.1.14" = overridableMkRustCrate (profileName: rec { - name = "gix-utils"; - version = "0.1.14"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "ff08f24e03ac8916c478c8419d7d3c33393da9bb41fa4c24455d5406aeefd35f"; }; - dependencies = { - fastrand = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".fastrand."2.3.0" { inherit profileName; }).out; - unicode_normalization = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".unicode-normalization."0.1.24" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".gix-validate."0.9.3" = overridableMkRustCrate (profileName: rec { - name = "gix-validate"; - version = "0.9.3"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "9eaa01c3337d885617c0a42e92823922a2aea71f4caeace6fe87002bdcadbd90"; }; - dependencies = { - bstr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bstr."1.11.3" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".hashbrown."0.14.5" = overridableMkRustCrate (profileName: rec { - name = "hashbrown"; - version = "0.14.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"; }; - features = builtins.concatLists [ - [ "ahash" ] - [ "allocator-api2" ] - [ "default" ] - [ "inline-more" ] - [ "raw" ] - ]; - dependencies = { - ahash = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".ahash."0.8.11" { inherit profileName; }).out; - allocator_api2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".allocator-api2."0.2.21" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".hashbrown."0.15.2" = overridableMkRustCrate (profileName: rec { - name = "hashbrown"; - version = "0.15.2"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".home."0.5.11" = overridableMkRustCrate (profileName: rec { - name = "home"; - version = "0.5.11"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf"; }; - dependencies = { - ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".icu_collections."1.5.0" = overridableMkRustCrate (profileName: rec { - name = "icu_collections"; - version = "1.5.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526"; }; - dependencies = { - displaydoc = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" { profileName = "__noProfile"; }).out; - yoke = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".yoke."0.7.5" { inherit profileName; }).out; - zerofrom = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerofrom."0.1.5" { inherit profileName; }).out; - zerovec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".icu_locid."1.5.0" = overridableMkRustCrate (profileName: rec { - name = "icu_locid"; - version = "1.5.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637"; }; - features = builtins.concatLists [ - [ "zerovec" ] - ]; - dependencies = { - displaydoc = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" { profileName = "__noProfile"; }).out; - litemap = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".litemap."0.7.4" { inherit profileName; }).out; - tinystr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tinystr."0.7.6" { inherit profileName; }).out; - writeable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".writeable."0.5.5" { inherit profileName; }).out; - zerovec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".icu_locid_transform."1.5.0" = overridableMkRustCrate (profileName: rec { - name = "icu_locid_transform"; - version = "1.5.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e"; }; - features = builtins.concatLists [ - [ "compiled_data" ] - ]; - dependencies = { - displaydoc = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" { profileName = "__noProfile"; }).out; - icu_locid = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_locid."1.5.0" { inherit profileName; }).out; - icu_locid_transform_data = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_locid_transform_data."1.5.0" { inherit profileName; }).out; - icu_provider = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_provider."1.5.0" { inherit profileName; }).out; - tinystr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tinystr."0.7.6" { inherit profileName; }).out; - zerovec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".icu_locid_transform_data."1.5.0" = overridableMkRustCrate (profileName: rec { - name = "icu_locid_transform_data"; - version = "1.5.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".icu_normalizer."1.5.0" = overridableMkRustCrate (profileName: rec { - name = "icu_normalizer"; - version = "1.5.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f"; }; - features = builtins.concatLists [ - [ "compiled_data" ] - [ "default" ] - ]; - dependencies = { - displaydoc = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" { profileName = "__noProfile"; }).out; - icu_collections = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_collections."1.5.0" { inherit profileName; }).out; - icu_normalizer_data = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_normalizer_data."1.5.0" { inherit profileName; }).out; - icu_properties = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_properties."1.5.1" { inherit profileName; }).out; - icu_provider = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_provider."1.5.0" { inherit profileName; }).out; - smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; - utf16_iter = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".utf16_iter."1.0.5" { inherit profileName; }).out; - utf8_iter = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".utf8_iter."1.0.4" { inherit profileName; }).out; - write16 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".write16."1.0.0" { inherit profileName; }).out; - zerovec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".icu_normalizer_data."1.5.0" = overridableMkRustCrate (profileName: rec { - name = "icu_normalizer_data"; - version = "1.5.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".icu_properties."1.5.1" = overridableMkRustCrate (profileName: rec { - name = "icu_properties"; - version = "1.5.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5"; }; - features = builtins.concatLists [ - [ "compiled_data" ] - [ "default" ] - ]; - dependencies = { - displaydoc = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" { profileName = "__noProfile"; }).out; - icu_collections = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_collections."1.5.0" { inherit profileName; }).out; - icu_locid_transform = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_locid_transform."1.5.0" { inherit profileName; }).out; - icu_properties_data = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_properties_data."1.5.0" { inherit profileName; }).out; - icu_provider = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_provider."1.5.0" { inherit profileName; }).out; - tinystr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tinystr."0.7.6" { inherit profileName; }).out; - zerovec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".icu_properties_data."1.5.0" = overridableMkRustCrate (profileName: rec { - name = "icu_properties_data"; - version = "1.5.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".icu_provider."1.5.0" = overridableMkRustCrate (profileName: rec { - name = "icu_provider"; - version = "1.5.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9"; }; - features = builtins.concatLists [ - [ "macros" ] - ]; - dependencies = { - displaydoc = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" { profileName = "__noProfile"; }).out; - icu_locid = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_locid."1.5.0" { inherit profileName; }).out; - icu_provider_macros = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_provider_macros."1.5.0" { profileName = "__noProfile"; }).out; - stable_deref_trait = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".stable_deref_trait."1.2.0" { inherit profileName; }).out; - tinystr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tinystr."0.7.6" { inherit profileName; }).out; - writeable = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".writeable."0.5.5" { inherit profileName; }).out; - yoke = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".yoke."0.7.5" { inherit profileName; }).out; - zerofrom = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerofrom."0.1.5" { inherit profileName; }).out; - zerovec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".icu_provider_macros."1.5.0" = overridableMkRustCrate (profileName: rec { - name = "icu_provider_macros"; - version = "1.5.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"; }; - dependencies = { - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".ident_case."1.0.1" = overridableMkRustCrate (profileName: rec { - name = "ident_case"; - version = "1.0.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".idna."1.0.3" = overridableMkRustCrate (profileName: rec { - name = "idna"; - version = "1.0.3"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "compiled_data" ] - [ "std" ] - ]; - dependencies = { - idna_adapter = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".idna_adapter."1.2.0" { inherit profileName; }).out; - smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; - utf8_iter = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".utf8_iter."1.0.4" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".idna_adapter."1.2.0" = overridableMkRustCrate (profileName: rec { - name = "idna_adapter"; - version = "1.2.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71"; }; - features = builtins.concatLists [ - [ "compiled_data" ] - ]; - dependencies = { - icu_normalizer = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_normalizer."1.5.0" { inherit profileName; }).out; - icu_properties = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".icu_properties."1.5.1" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".indexmap."2.7.1" = overridableMkRustCrate (profileName: rec { - name = "indexmap"; - version = "2.7.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652"; }; - features = builtins.concatLists [ - [ "default" ] - [ "std" ] - ]; - dependencies = { - equivalent = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".equivalent."1.0.2" { inherit profileName; }).out; - hashbrown = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".hashbrown."0.15.2" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".itoa."1.0.14" = overridableMkRustCrate (profileName: rec { - name = "itoa"; - version = "1.0.14"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".jiff."0.1.29" = overridableMkRustCrate (profileName: rec { - name = "jiff"; - version = "0.1.29"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "c04ef77ae73f3cf50510712722f0c4e8b46f5aaa1bf5ffad2ae213e6495e78e5"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "default" ] - [ "std" ] - [ "tz-system" ] - [ "tzdb-bundle-platform" ] - [ "tzdb-concatenated" ] - [ "tzdb-zoneinfo" ] - ]; - dependencies = { - ${ if hostPlatform.isWindows then "jiff_tzdb_platform" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".jiff-tzdb-platform."0.1.2" { inherit profileName; }).out; - log = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.26" { inherit profileName; }).out; - portable_atomic = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".portable-atomic."1.10.0" { inherit profileName; }).out; - portable_atomic_util = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".portable-atomic-util."0.2.4" { inherit profileName; }).out; - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".jiff-tzdb."0.1.2" = overridableMkRustCrate (profileName: rec { - name = "jiff-tzdb"; - version = "0.1.2"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "cf2cec2f5d266af45a071ece48b1fb89f3b00b2421ac3a5fe10285a6caaa60d3"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".jiff-tzdb-platform."0.1.2" = overridableMkRustCrate (profileName: rec { - name = "jiff-tzdb-platform"; - version = "0.1.2"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "a63c62e404e7b92979d2792352d885a7f8f83fd1d0d31eea582d77b2ceca697e"; }; - dependencies = { - jiff_tzdb = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".jiff-tzdb."0.1.2" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".lazy_static."1.5.0" = overridableMkRustCrate (profileName: rec { - name = "lazy_static"; - version = "1.5.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" = overridableMkRustCrate (profileName: rec { - name = "libc"; - version = "0.2.169"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a"; }; - features = builtins.concatLists [ - [ "default" ] - [ "extra_traits" ] - [ "std" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".libloading."0.8.6" = overridableMkRustCrate (profileName: rec { - name = "libloading"; - version = "0.8.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"; }; - dependencies = { - ${ if hostPlatform.isUnix then "cfg_if" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; - ${ if hostPlatform.isWindows then "windows_targets" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.52.6" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".libredox."0.1.3" = overridableMkRustCrate (profileName: rec { - name = "libredox"; - version = "0.1.3"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"; }; - features = builtins.concatLists [ - [ "call" ] - [ "default" ] - [ "redox_syscall" ] - [ "std" ] - ]; - dependencies = { - bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; - libc = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - syscall = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".redox_syscall."0.5.9" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".linux-raw-sys."0.4.15" = overridableMkRustCrate (profileName: rec { - name = "linux-raw-sys"; - version = "0.4.15"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"; }; - features = builtins.concatLists [ - [ "elf" ] - [ "errno" ] - [ "general" ] - [ "ioctl" ] - [ "no_std" ] - [ "std" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".litemap."0.7.4" = overridableMkRustCrate (profileName: rec { - name = "litemap"; - version = "0.7.4"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104"; }; - features = builtins.concatLists [ - [ "alloc" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".lock_api."0.4.12" = overridableMkRustCrate (profileName: rec { - name = "lock_api"; - version = "0.4.12"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"; }; - features = builtins.concatLists [ - [ "atomic_usize" ] - [ "default" ] - ]; - dependencies = { - scopeguard = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".scopeguard."1.2.0" { inherit profileName; }).out; - }; - buildDependencies = { - autocfg = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".autocfg."1.4.0" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".log."0.4.26" = overridableMkRustCrate (profileName: rec { - name = "log"; - version = "0.4.26"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e"; }; - features = builtins.concatLists [ - [ "std" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".maybe-async."0.2.10" = overridableMkRustCrate (profileName: rec { - name = "maybe-async"; - version = "0.2.10"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11"; }; - features = builtins.concatLists [ - [ "default" ] - ]; - dependencies = { - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" = overridableMkRustCrate (profileName: rec { - name = "memchr"; - version = "2.7.4"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "default" ] - [ "std" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".memmap2."0.9.5" = overridableMkRustCrate (profileName: rec { - name = "memmap2"; - version = "0.9.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f"; }; - dependencies = { - ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".miniz_oxide."0.8.5" = overridableMkRustCrate (profileName: rec { - name = "miniz_oxide"; - version = "0.8.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5"; }; - features = builtins.concatLists [ - [ "with-alloc" ] - ]; - dependencies = { - adler2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".adler2."2.0.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".nu-ansi-term."0.46.0" = overridableMkRustCrate (profileName: rec { - name = "nu-ansi-term"; - version = "0.46.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"; }; - dependencies = { - overload = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".overload."0.1.1" { inherit profileName; }).out; - ${ if hostPlatform.parsed.kernel.name == "windows" then "winapi" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winapi."0.3.9" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".num-conv."0.1.0" = overridableMkRustCrate (profileName: rec { - name = "num-conv"; - version = "0.1.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".num_threads."0.1.7" = overridableMkRustCrate (profileName: rec { - name = "num_threads"; - version = "0.1.7"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"; }; - dependencies = { - ${ if hostPlatform.parsed.kernel.name == "darwin" || hostPlatform.parsed.kernel.name == "ios" || hostPlatform.parsed.kernel.name == "freebsd" then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" = overridableMkRustCrate (profileName: rec { - name = "once_cell"; - version = "1.20.3"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "default" ] - [ "race" ] - [ "std" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".option-ext."0.2.0" = overridableMkRustCrate (profileName: rec { - name = "option-ext"; - version = "0.2.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".overload."0.1.1" = overridableMkRustCrate (profileName: rec { - name = "overload"; - version = "0.1.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".oxifs."0.1.0" = overridableMkRustCrate (profileName: rec { - name = "oxifs"; - version = "0.1.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "792609ce5126ce20295e83d7d4129d338b9d8f896cbc774906b90c274b6e1235"; }; - dependencies = { - tar = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tar."0.4.44" { inherit profileName; }).out; - tempfile = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tempfile."3.17.1" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.12.3" = overridableMkRustCrate (profileName: rec { - name = "parking_lot"; - version = "0.12.3"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"; }; - features = builtins.concatLists [ - [ "default" ] - ]; - dependencies = { - lock_api = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".lock_api."0.4.12" { inherit profileName; }).out; - parking_lot_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot_core."0.9.10" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".parking_lot_core."0.9.10" = overridableMkRustCrate (profileName: rec { - name = "parking_lot_core"; - version = "0.9.10"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"; }; - dependencies = { - cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; - ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - ${ if hostPlatform.parsed.kernel.name == "redox" then "syscall" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".redox_syscall."0.5.9" { inherit profileName; }).out; - smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; - ${ if hostPlatform.isWindows then "windows_targets" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.52.6" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".percent-encoding."2.3.1" = overridableMkRustCrate (profileName: rec { - name = "percent-encoding"; - version = "2.3.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "default" ] - [ "std" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.2.16" = overridableMkRustCrate (profileName: rec { - name = "pin-project-lite"; - version = "0.2.16"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".portable-atomic."1.10.0" = overridableMkRustCrate (profileName: rec { - name = "portable-atomic"; - version = "1.10.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6"; }; - features = builtins.concatLists [ - [ "require-cas" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".portable-atomic-util."0.2.4" = overridableMkRustCrate (profileName: rec { - name = "portable-atomic-util"; - version = "0.2.4"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"; }; - features = builtins.concatLists [ - [ "alloc" ] - ]; - dependencies = { - portable_atomic = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".portable-atomic."1.10.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".powerfmt."0.2.0" = overridableMkRustCrate (profileName: rec { - name = "powerfmt"; - version = "0.2.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" = overridableMkRustCrate (profileName: rec { - name = "proc-macro2"; - version = "1.0.93"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"; }; - features = builtins.concatLists [ - [ "default" ] - [ "proc-macro" ] - ]; - dependencies = { - unicode_ident = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".unicode-ident."1.0.17" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".prodash."29.0.0" = overridableMkRustCrate (profileName: rec { - name = "prodash"; - version = "29.0.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "a266d8d6020c61a437be704c5e618037588e1985c7dbb7bf8d265db84cffe325"; }; - features = builtins.concatLists [ - [ "default" ] - [ "log" ] - [ "parking_lot" ] - [ "progress-tree" ] - [ "progress-tree-log" ] - ]; - dependencies = { - log = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.26" { inherit profileName; }).out; - parking_lot = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".parking_lot."0.12.3" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" = overridableMkRustCrate (profileName: rec { - name = "quote"; - version = "1.0.38"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"; }; - features = builtins.concatLists [ - [ "default" ] - [ "proc-macro" ] - ]; - dependencies = { - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".redox_syscall."0.5.9" = overridableMkRustCrate (profileName: rec { - name = "redox_syscall"; - version = "0.5.9"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f"; }; - features = builtins.concatLists [ - [ "default" ] - [ "userspace" ] - ]; - dependencies = { - bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".redox_users."0.4.6" = overridableMkRustCrate (profileName: rec { - name = "redox_users"; - version = "0.4.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"; }; - dependencies = { - getrandom = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".getrandom."0.2.15" { inherit profileName; }).out; - libredox = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libredox."0.1.3" { inherit profileName; }).out; - thiserror = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror."1.0.69" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".regex."1.11.1" = overridableMkRustCrate (profileName: rec { - name = "regex"; - version = "1.11.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"; }; - features = builtins.concatLists [ - [ "default" ] - [ "perf" ] - [ "perf-backtrack" ] - [ "perf-cache" ] - [ "perf-dfa" ] - [ "perf-inline" ] - [ "perf-literal" ] - [ "perf-onepass" ] - [ "std" ] - [ "unicode" ] - [ "unicode-age" ] - [ "unicode-bool" ] - [ "unicode-case" ] - [ "unicode-gencat" ] - [ "unicode-perl" ] - [ "unicode-script" ] - [ "unicode-segment" ] - ]; - dependencies = { - aho_corasick = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".aho-corasick."1.1.3" { inherit profileName; }).out; - memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; - regex_automata = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".regex-automata."0.4.9" { inherit profileName; }).out; - regex_syntax = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".regex-syntax."0.8.5" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".regex-automata."0.4.9" = overridableMkRustCrate (profileName: rec { - name = "regex-automata"; - version = "0.4.9"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "dfa-onepass" ] - [ "dfa-search" ] - [ "hybrid" ] - [ "meta" ] - [ "nfa-backtrack" ] - [ "nfa-pikevm" ] - [ "nfa-thompson" ] - [ "perf-inline" ] - [ "perf-literal" ] - [ "perf-literal-multisubstring" ] - [ "perf-literal-substring" ] - [ "std" ] - [ "syntax" ] - [ "unicode" ] - [ "unicode-age" ] - [ "unicode-bool" ] - [ "unicode-case" ] - [ "unicode-gencat" ] - [ "unicode-perl" ] - [ "unicode-script" ] - [ "unicode-segment" ] - [ "unicode-word-boundary" ] - ]; - dependencies = { - aho_corasick = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".aho-corasick."1.1.3" { inherit profileName; }).out; - memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; - regex_syntax = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".regex-syntax."0.8.5" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".regex-syntax."0.8.5" = overridableMkRustCrate (profileName: rec { - name = "regex-syntax"; - version = "0.8.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"; }; - features = builtins.concatLists [ - [ "default" ] - [ "std" ] - [ "unicode" ] - [ "unicode-age" ] - [ "unicode-bool" ] - [ "unicode-case" ] - [ "unicode-gencat" ] - [ "unicode-perl" ] - [ "unicode-script" ] - [ "unicode-segment" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".rustc_version."0.4.1" = overridableMkRustCrate (profileName: rec { - name = "rustc_version"; - version = "0.4.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"; }; - dependencies = { - semver = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".semver."1.0.25" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".rustix."0.38.44" = overridableMkRustCrate (profileName: rec { - name = "rustix"; - version = "0.38.44"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "default" ] - [ "fs" ] - [ "libc-extra-traits" ] - [ "std" ] - [ "use-libc-auxv" ] - ]; - dependencies = { - bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; - ${ if hostPlatform.parsed.kernel.name == "linux" && (hostPlatform.parsed.cpu.significantByte == "littleEndian" || hostPlatform.parsed.cpu.name == "s390x") && (hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l" || hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.cpu.bits == 64 || hostPlatform.parsed.cpu.name == "riscv64" || hostPlatform.parsed.cpu.name == "i686" || hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.cpu.bits == 64) || !hostPlatform.isWindows && !(hostPlatform.parsed.kernel.name == "linux" && (hostPlatform.parsed.cpu.significantByte == "littleEndian" || hostPlatform.parsed.cpu.name == "s390x") && (hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l" || hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.cpu.bits == 64 || hostPlatform.parsed.cpu.name == "riscv64" || hostPlatform.parsed.cpu.name == "i686" || hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.cpu.bits == 64)) || hostPlatform.isWindows then "libc_errno" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".errno."0.3.10" { inherit profileName; }).out; - ${ if hostPlatform.parsed.kernel.name == "linux" && (hostPlatform.parsed.cpu.significantByte == "littleEndian" || hostPlatform.parsed.cpu.name == "s390x") && (hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l" || hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.cpu.bits == 64 || hostPlatform.parsed.cpu.name == "riscv64" || hostPlatform.parsed.cpu.name == "i686" || hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.cpu.bits == 64) || !hostPlatform.isWindows && !(hostPlatform.parsed.kernel.name == "linux" && (hostPlatform.parsed.cpu.significantByte == "littleEndian" || hostPlatform.parsed.cpu.name == "s390x") && (hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l" || hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.cpu.bits == 64 || hostPlatform.parsed.cpu.name == "riscv64" || hostPlatform.parsed.cpu.name == "i686" || hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.cpu.bits == 64)) then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - ${ if hostPlatform.parsed.kernel.name == "linux" && (hostPlatform.parsed.cpu.significantByte == "littleEndian" || hostPlatform.parsed.cpu.name == "s390x") && (hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l" || hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.cpu.bits == 64 || hostPlatform.parsed.cpu.name == "riscv64" || hostPlatform.parsed.cpu.name == "i686" || hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.cpu.bits == 64) || (hostPlatform.parsed.kernel.name == "android" || hostPlatform.parsed.kernel.name == "linux") && !(hostPlatform.parsed.kernel.name == "linux" && (hostPlatform.parsed.cpu.significantByte == "littleEndian" || hostPlatform.parsed.cpu.name == "s390x") && (hostPlatform.parsed.cpu.name == "armv6l" || hostPlatform.parsed.cpu.name == "armv7l" || hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.cpu.bits == 64 || hostPlatform.parsed.cpu.name == "riscv64" || hostPlatform.parsed.cpu.name == "i686" || hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.cpu.bits == 64)) then "linux_raw_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".linux-raw-sys."0.4.15" { inherit profileName; }).out; - ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".rustversion."1.0.19" = overridableMkRustCrate (profileName: rec { - name = "rustversion"; - version = "1.0.19"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".ryu."1.0.19" = overridableMkRustCrate (profileName: rec { - name = "ryu"; - version = "1.0.19"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".same-file."1.0.6" = overridableMkRustCrate (profileName: rec { - name = "same-file"; - version = "1.0.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"; }; - dependencies = { - ${ if hostPlatform.isWindows then "winapi_util" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winapi-util."0.1.9" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".scopeguard."1.2.0" = overridableMkRustCrate (profileName: rec { - name = "scopeguard"; - version = "1.2.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".semver."1.0.25" = overridableMkRustCrate (profileName: rec { - name = "semver"; - version = "1.0.25"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03"; }; - features = builtins.concatLists [ - [ "default" ] - [ "serde" ] - [ "std" ] - ]; - dependencies = { - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" = overridableMkRustCrate (profileName: rec { - name = "serde"; - version = "1.0.218"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "default" ] - [ "derive" ] - [ "serde_derive" ] - [ "std" ] - ]; - dependencies = { - serde_derive = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_derive."1.0.218" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".serde_derive."1.0.218" = overridableMkRustCrate (profileName: rec { - name = "serde_derive"; - version = "1.0.218"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b"; }; - features = builtins.concatLists [ - [ "default" ] - ]; - dependencies = { - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".serde_json."1.0.139" = overridableMkRustCrate (profileName: rec { - name = "serde_json"; - version = "1.0.139"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6"; }; - features = builtins.concatLists [ - [ "default" ] - [ "std" ] - [ "unbounded_depth" ] - ]; - dependencies = { - itoa = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".itoa."1.0.14" { inherit profileName; }).out; - memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; - ryu = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".ryu."1.0.19" { inherit profileName; }).out; - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".serde_spanned."0.6.8" = overridableMkRustCrate (profileName: rec { - name = "serde_spanned"; - version = "0.6.8"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1"; }; - features = builtins.concatLists [ - [ "serde" ] - ]; - dependencies = { - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".sha1_smol."1.0.1" = overridableMkRustCrate (profileName: rec { - name = "sha1_smol"; - version = "1.0.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".sharded-slab."0.1.7" = overridableMkRustCrate (profileName: rec { - name = "sharded-slab"; - version = "0.1.7"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"; }; - dependencies = { - lazy_static = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".lazy_static."1.5.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".shell-words."1.1.0" = overridableMkRustCrate (profileName: rec { - name = "shell-words"; - version = "1.1.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"; }; - features = builtins.concatLists [ - [ "default" ] - [ "std" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".signal-hook."0.3.17" = overridableMkRustCrate (profileName: rec { - name = "signal-hook"; - version = "0.3.17"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"; }; - dependencies = { - libc = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - signal_hook_registry = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".signal-hook-registry."1.4.2" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".signal-hook-registry."1.4.2" = overridableMkRustCrate (profileName: rec { - name = "signal-hook-registry"; - version = "1.4.2"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"; }; - dependencies = { - libc = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" = overridableMkRustCrate (profileName: rec { - name = "smallvec"; - version = "1.14.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd"; }; - features = builtins.concatLists [ - [ "const_generics" ] - [ "write" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".stable_deref_trait."1.2.0" = overridableMkRustCrate (profileName: rec { - name = "stable_deref_trait"; - version = "1.2.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"; }; - features = builtins.concatLists [ - [ "alloc" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".strsim."0.11.1" = overridableMkRustCrate (profileName: rec { - name = "strsim"; - version = "0.11.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" = overridableMkRustCrate (profileName: rec { - name = "syn"; - version = "2.0.98"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1"; }; - features = builtins.concatLists [ - [ "clone-impls" ] - [ "default" ] - [ "derive" ] - [ "extra-traits" ] - [ "fold" ] - [ "full" ] - [ "parsing" ] - [ "printing" ] - [ "proc-macro" ] - [ "visit" ] - [ "visit-mut" ] - ]; - dependencies = { - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - unicode_ident = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".unicode-ident."1.0.17" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".synstructure."0.13.1" = overridableMkRustCrate (profileName: rec { - name = "synstructure"; - version = "0.13.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"; }; - features = builtins.concatLists [ - [ "default" ] - [ "proc-macro" ] - ]; - dependencies = { - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".tar."0.4.44" = overridableMkRustCrate (profileName: rec { - name = "tar"; - version = "0.4.44"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a"; }; - features = builtins.concatLists [ - [ "default" ] - [ "xattr" ] - ]; - dependencies = { - filetime = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".filetime."0.2.25" { inherit profileName; }).out; - ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - ${ if hostPlatform.isUnix then "xattr" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".xattr."1.4.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".tempfile."3.17.1" = overridableMkRustCrate (profileName: rec { - name = "tempfile"; - version = "3.17.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230"; }; - features = builtins.concatLists [ - [ "default" ] - [ "getrandom" ] - ]; - dependencies = { - cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; - fastrand = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".fastrand."2.3.0" { inherit profileName; }).out; - ${ if hostPlatform.isUnix || hostPlatform.isWindows || hostPlatform.parsed.kernel.name == "wasi" then "getrandom" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".getrandom."0.3.1" { inherit profileName; }).out; - once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; - ${ if hostPlatform.isUnix || hostPlatform.parsed.kernel.name == "wasi" then "rustix" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".rustix."0.38.44" { inherit profileName; }).out; - ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".thiserror."1.0.69" = overridableMkRustCrate (profileName: rec { - name = "thiserror"; - version = "1.0.69"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"; }; - dependencies = { - thiserror_impl = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror-impl."1.0.69" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".thiserror."2.0.11" = overridableMkRustCrate (profileName: rec { - name = "thiserror"; - version = "2.0.11"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc"; }; - features = builtins.concatLists [ - [ "default" ] - [ "std" ] - ]; - dependencies = { - thiserror_impl = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".thiserror-impl."2.0.11" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".thiserror-impl."1.0.69" = overridableMkRustCrate (profileName: rec { - name = "thiserror-impl"; - version = "1.0.69"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"; }; - dependencies = { - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".thiserror-impl."2.0.11" = overridableMkRustCrate (profileName: rec { - name = "thiserror-impl"; - version = "2.0.11"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2"; }; - dependencies = { - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".thread_local."1.1.8" = overridableMkRustCrate (profileName: rec { - name = "thread_local"; - version = "1.1.8"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"; }; - dependencies = { - cfg_if = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cfg-if."1.0.0" { inherit profileName; }).out; - once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".time."0.3.37" = overridableMkRustCrate (profileName: rec { - name = "time"; - version = "0.3.37"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "default" ] - [ "formatting" ] - [ "local-offset" ] - [ "parsing" ] - [ "std" ] - ]; - dependencies = { - deranged = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".deranged."0.3.11" { inherit profileName; }).out; - itoa = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".itoa."1.0.14" { inherit profileName; }).out; - ${ if hostPlatform.isUnix then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - num_conv = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".num-conv."0.1.0" { inherit profileName; }).out; - ${ if hostPlatform.isUnix then "num_threads" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".num_threads."0.1.7" { inherit profileName; }).out; - powerfmt = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".powerfmt."0.2.0" { inherit profileName; }).out; - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - time_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".time-core."0.1.2" { inherit profileName; }).out; - time_macros = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".time-macros."0.2.19" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".time-core."0.1.2" = overridableMkRustCrate (profileName: rec { - name = "time-core"; - version = "0.1.2"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".time-macros."0.2.19" = overridableMkRustCrate (profileName: rec { - name = "time-macros"; - version = "0.2.19"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de"; }; - features = builtins.concatLists [ - [ "formatting" ] - [ "parsing" ] - ]; - dependencies = { - num_conv = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".num-conv."0.1.0" { inherit profileName; }).out; - time_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".time-core."0.1.2" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".tinystr."0.7.6" = overridableMkRustCrate (profileName: rec { - name = "tinystr"; - version = "0.7.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "zerovec" ] - ]; - dependencies = { - displaydoc = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".displaydoc."0.2.5" { profileName = "__noProfile"; }).out; - zerovec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".tinyvec."1.8.1" = overridableMkRustCrate (profileName: rec { - name = "tinyvec"; - version = "1.8.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "default" ] - [ "tinyvec_macros" ] - ]; - dependencies = { - tinyvec_macros = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tinyvec_macros."0.1.1" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".tinyvec_macros."0.1.1" = overridableMkRustCrate (profileName: rec { - name = "tinyvec_macros"; - version = "0.1.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".toml."0.8.20" = overridableMkRustCrate (profileName: rec { - name = "toml"; - version = "0.8.20"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148"; }; - features = builtins.concatLists [ - [ "default" ] - [ "display" ] - [ "parse" ] - ]; - dependencies = { - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - serde_spanned = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_spanned."0.6.8" { inherit profileName; }).out; - toml_datetime = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".toml_datetime."0.6.8" { inherit profileName; }).out; - toml_edit = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".toml_edit."0.22.24" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".toml_datetime."0.6.8" = overridableMkRustCrate (profileName: rec { - name = "toml_datetime"; - version = "0.6.8"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"; }; - features = builtins.concatLists [ - [ "serde" ] - ]; - dependencies = { - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".toml_edit."0.22.24" = overridableMkRustCrate (profileName: rec { - name = "toml_edit"; - version = "0.22.24"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474"; }; - features = builtins.concatLists [ - [ "display" ] - [ "parse" ] - [ "serde" ] - ]; - dependencies = { - indexmap = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".indexmap."2.7.1" { inherit profileName; }).out; - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - serde_spanned = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde_spanned."0.6.8" { inherit profileName; }).out; - toml_datetime = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".toml_datetime."0.6.8" { inherit profileName; }).out; - winnow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winnow."0.7.3" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".tracing."0.1.41" = overridableMkRustCrate (profileName: rec { - name = "tracing"; - version = "0.1.41"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"; }; - features = builtins.concatLists [ - [ "attributes" ] - [ "default" ] - [ "std" ] - [ "tracing-attributes" ] - ]; - dependencies = { - pin_project_lite = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".pin-project-lite."0.2.16" { inherit profileName; }).out; - tracing_attributes = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing-attributes."0.1.28" { profileName = "__noProfile"; }).out; - tracing_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing-core."0.1.33" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".tracing-attributes."0.1.28" = overridableMkRustCrate (profileName: rec { - name = "tracing-attributes"; - version = "0.1.28"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"; }; - dependencies = { - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".tracing-core."0.1.33" = overridableMkRustCrate (profileName: rec { - name = "tracing-core"; - version = "0.1.33"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"; }; - features = builtins.concatLists [ - [ "default" ] - [ "once_cell" ] - [ "std" ] - ]; - dependencies = { - once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; - ${ if false then "valuable" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".valuable."0.1.1" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".tracing-log."0.2.0" = overridableMkRustCrate (profileName: rec { - name = "tracing-log"; - version = "0.2.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"; }; - features = builtins.concatLists [ - [ "log-tracer" ] - [ "std" ] - ]; - dependencies = { - log = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".log."0.4.26" { inherit profileName; }).out; - once_cell = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".once_cell."1.20.3" { inherit profileName; }).out; - tracing_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing-core."0.1.33" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".tracing-subscriber."0.3.19" = overridableMkRustCrate (profileName: rec { - name = "tracing-subscriber"; - version = "0.3.19"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "ansi" ] - [ "default" ] - [ "fmt" ] - [ "nu-ansi-term" ] - [ "registry" ] - [ "sharded-slab" ] - [ "smallvec" ] - [ "std" ] - [ "thread_local" ] - [ "tracing-log" ] - ]; - dependencies = { - nu_ansi_term = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".nu-ansi-term."0.46.0" { inherit profileName; }).out; - sharded_slab = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".sharded-slab."0.1.7" { inherit profileName; }).out; - smallvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".smallvec."1.14.0" { inherit profileName; }).out; - thread_local = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".thread_local."1.1.8" { inherit profileName; }).out; - tracing_core = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing-core."0.1.33" { inherit profileName; }).out; - tracing_log = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tracing-log."0.2.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".unicode-bom."2.0.3" = overridableMkRustCrate (profileName: rec { - name = "unicode-bom"; - version = "2.0.3"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".unicode-ident."1.0.17" = overridableMkRustCrate (profileName: rec { - name = "unicode-ident"; - version = "1.0.17"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".unicode-normalization."0.1.24" = overridableMkRustCrate (profileName: rec { - name = "unicode-normalization"; - version = "0.1.24"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956"; }; - dependencies = { - tinyvec = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".tinyvec."1.8.1" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".url."2.5.4" = overridableMkRustCrate (profileName: rec { - name = "url"; - version = "2.5.4"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"; }; - features = builtins.concatLists [ - [ "default" ] - [ "std" ] - ]; - dependencies = { - form_urlencoded = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".form_urlencoded."1.2.1" { inherit profileName; }).out; - idna = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".idna."1.0.3" { inherit profileName; }).out; - percent_encoding = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".percent-encoding."2.3.1" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".utf16_iter."1.0.5" = overridableMkRustCrate (profileName: rec { - name = "utf16_iter"; - version = "1.0.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".utf8_iter."1.0.4" = overridableMkRustCrate (profileName: rec { - name = "utf8_iter"; - version = "1.0.4"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".valuable."0.1.1" = overridableMkRustCrate (profileName: rec { - name = "valuable"; - version = "0.1.1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "std" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".vergen."9.0.4" = overridableMkRustCrate (profileName: rec { - name = "vergen"; - version = "9.0.4"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "e0d2f179f8075b805a43a2a21728a46f0cc2921b3c58695b28fa8817e103cd9a"; }; - features = builtins.concatLists [ - [ "build" ] - [ "cargo" ] - [ "cargo_metadata" ] - [ "regex" ] - [ "rustc" ] - [ "rustc_version" ] - [ "time" ] - ]; - dependencies = { - anyhow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".anyhow."1.0.96" { inherit profileName; }).out; - cargo_metadata = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".cargo_metadata."0.19.1" { inherit profileName; }).out; - derive_builder = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_builder."0.20.2" { inherit profileName; }).out; - regex = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".regex."1.11.1" { inherit profileName; }).out; - rustc_version = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".rustc_version."0.4.1" { inherit profileName; }).out; - time = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".time."0.3.37" { inherit profileName; }).out; - vergen_lib = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".vergen-lib."0.1.6" { inherit profileName; }).out; - }; - buildDependencies = { - rustversion = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".rustversion."1.0.19" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".vergen-gix."1.0.6" = overridableMkRustCrate (profileName: rec { - name = "vergen-gix"; - version = "1.0.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "2b218ac3c56c2c31227bd7813735bfa51eb0dc5212e6d4bab6eac7c8208e5b66"; }; - features = builtins.concatLists [ - [ "build" ] - [ "cargo" ] - [ "default" ] - [ "rustc" ] - ]; - dependencies = { - anyhow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".anyhow."1.0.96" { inherit profileName; }).out; - derive_builder = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_builder."0.20.2" { inherit profileName; }).out; - gix = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".gix."0.69.1" { inherit profileName; }).out; - time = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".time."0.3.37" { inherit profileName; }).out; - vergen = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".vergen."9.0.4" { inherit profileName; }).out; - vergen_lib = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".vergen-lib."0.1.6" { inherit profileName; }).out; - }; - buildDependencies = { - rustversion = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".rustversion."1.0.19" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".vergen-lib."0.1.6" = overridableMkRustCrate (profileName: rec { - name = "vergen-lib"; - version = "0.1.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166"; }; - features = builtins.concatLists [ - [ "build" ] - [ "cargo" ] - [ "default" ] - [ "git" ] - [ "rustc" ] - ]; - dependencies = { - anyhow = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".anyhow."1.0.96" { inherit profileName; }).out; - derive_builder = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".derive_builder."0.20.2" { inherit profileName; }).out; - }; - buildDependencies = { - rustversion = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".rustversion."1.0.19" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".version_check."0.9.5" = overridableMkRustCrate (profileName: rec { - name = "version_check"; - version = "0.9.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".walkdir."2.5.0" = overridableMkRustCrate (profileName: rec { - name = "walkdir"; - version = "2.5.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"; }; - dependencies = { - same_file = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".same-file."1.0.6" { inherit profileName; }).out; - ${ if hostPlatform.isWindows then "winapi_util" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winapi-util."0.1.9" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".wasi."0.11.0+wasi-snapshot-preview1" = overridableMkRustCrate (profileName: rec { - name = "wasi"; - version = "0.11.0+wasi-snapshot-preview1"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".wasi."0.13.3+wasi-0.2.2" = overridableMkRustCrate (profileName: rec { - name = "wasi"; - version = "0.13.3+wasi-0.2.2"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2"; }; - dependencies = { - wit_bindgen_rt = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".wit-bindgen-rt."0.33.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".winapi."0.3.9" = overridableMkRustCrate (profileName: rec { - name = "winapi"; - version = "0.3.9"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"; }; - features = builtins.concatLists [ - [ "consoleapi" ] - [ "errhandlingapi" ] - [ "fileapi" ] - [ "handleapi" ] - [ "processenv" ] - ]; - dependencies = { - ${ if hostPlatform.config == "i686-pc-windows-gnu" then "winapi_i686_pc_windows_gnu" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winapi-i686-pc-windows-gnu."0.4.0" { inherit profileName; }).out; - ${ if hostPlatform.config == "x86_64-pc-windows-gnu" then "winapi_x86_64_pc_windows_gnu" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".winapi-x86_64-pc-windows-gnu."0.4.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".winapi-i686-pc-windows-gnu."0.4.0" = overridableMkRustCrate (profileName: rec { - name = "winapi-i686-pc-windows-gnu"; - version = "0.4.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".winapi-util."0.1.9" = overridableMkRustCrate (profileName: rec { - name = "winapi-util"; - version = "0.1.9"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"; }; - dependencies = { - ${ if hostPlatform.isWindows then "windows_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".winapi-x86_64-pc-windows-gnu."0.4.0" = overridableMkRustCrate (profileName: rec { - name = "winapi-x86_64-pc-windows-gnu"; - version = "0.4.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.48.0" = overridableMkRustCrate (profileName: rec { - name = "windows-sys"; - version = "0.48.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"; }; - features = builtins.concatLists [ - [ "Win32" ] - [ "Win32_Foundation" ] - [ "Win32_Globalization" ] - [ "Win32_System" ] - [ "Win32_System_Com" ] - [ "Win32_UI" ] - [ "Win32_UI_Shell" ] - [ "default" ] - ]; - dependencies = { - windows_targets = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.48.5" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.52.0" = overridableMkRustCrate (profileName: rec { - name = "windows-sys"; - version = "0.52.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"; }; - features = builtins.concatLists [ - [ "Win32" ] - [ "Win32_Foundation" ] - [ "Win32_Security" ] - [ "Win32_Security_Authorization" ] - [ "Win32_Storage" ] - [ "Win32_Storage_FileSystem" ] - [ "Win32_System" ] - [ "Win32_System_Memory" ] - [ "Win32_System_Threading" ] - [ "default" ] - ]; - dependencies = { - windows_targets = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.52.6" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows-sys."0.59.0" = overridableMkRustCrate (profileName: rec { - name = "windows-sys"; - version = "0.59.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"; }; - features = builtins.concatLists [ - [ "Win32" ] - [ "Win32_Foundation" ] - [ "Win32_NetworkManagement" ] - [ "Win32_NetworkManagement_IpHelper" ] - [ "Win32_Networking" ] - [ "Win32_Networking_WinSock" ] - [ "Win32_Storage" ] - [ "Win32_Storage_FileSystem" ] - [ "Win32_System" ] - [ "Win32_System_Com" ] - [ "Win32_System_Console" ] - [ "Win32_System_Diagnostics" ] - [ "Win32_System_Diagnostics_Debug" ] - [ "Win32_System_SystemInformation" ] - [ "Win32_System_Threading" ] - [ "Win32_System_Time" ] - [ "Win32_UI" ] - [ "Win32_UI_Shell" ] - [ "default" ] - ]; - dependencies = { - windows_targets = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.52.6" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.48.5" = overridableMkRustCrate (profileName: rec { - name = "windows-targets"; - version = "0.48.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"; }; - dependencies = { - ${ if hostPlatform.config == "aarch64-pc-windows-gnullvm" then "windows_aarch64_gnullvm" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_gnullvm."0.48.5" { inherit profileName; }).out; - ${ if hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.abi.name == "msvc" then "windows_aarch64_msvc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_msvc."0.48.5" { inherit profileName; }).out; - ${ if hostPlatform.parsed.cpu.name == "i686" && hostPlatform.parsed.abi.name == "gnu" then "windows_i686_gnu" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_i686_gnu."0.48.5" { inherit profileName; }).out; - ${ if hostPlatform.parsed.cpu.name == "i686" && hostPlatform.parsed.abi.name == "msvc" then "windows_i686_msvc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_i686_msvc."0.48.5" { inherit profileName; }).out; - ${ if hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.abi.name == "gnu" then "windows_x86_64_gnu" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnu."0.48.5" { inherit profileName; }).out; - ${ if hostPlatform.config == "x86_64-pc-windows-gnullvm" then "windows_x86_64_gnullvm" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnullvm."0.48.5" { inherit profileName; }).out; - ${ if hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.abi.name == "msvc" then "windows_x86_64_msvc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_msvc."0.48.5" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows-targets."0.52.6" = overridableMkRustCrate (profileName: rec { - name = "windows-targets"; - version = "0.52.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"; }; - dependencies = { - ${ if hostPlatform.config == "aarch64-pc-windows-gnullvm" then "windows_aarch64_gnullvm" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_gnullvm."0.52.6" { inherit profileName; }).out; - ${ if hostPlatform.parsed.cpu.name == "aarch64" && hostPlatform.parsed.abi.name == "msvc" then "windows_aarch64_msvc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_msvc."0.52.6" { inherit profileName; }).out; - ${ if hostPlatform.parsed.cpu.name == "i686" && hostPlatform.parsed.abi.name == "gnu" then "windows_i686_gnu" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_i686_gnu."0.52.6" { inherit profileName; }).out; - ${ if hostPlatform.config == "i686-pc-windows-gnullvm" then "windows_i686_gnullvm" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_i686_gnullvm."0.52.6" { inherit profileName; }).out; - ${ if hostPlatform.parsed.cpu.name == "i686" && hostPlatform.parsed.abi.name == "msvc" then "windows_i686_msvc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_i686_msvc."0.52.6" { inherit profileName; }).out; - ${ if hostPlatform.parsed.cpu.name == "x86_64" && hostPlatform.parsed.abi.name == "gnu" then "windows_x86_64_gnu" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnu."0.52.6" { inherit profileName; }).out; - ${ if hostPlatform.config == "x86_64-pc-windows-gnullvm" then "windows_x86_64_gnullvm" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnullvm."0.52.6" { inherit profileName; }).out; - ${ if (hostPlatform.parsed.cpu.name == "x86_64" || hostPlatform.parsed.cpu.name == "arm64ec") && hostPlatform.parsed.abi.name == "msvc" then "windows_x86_64_msvc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_msvc."0.52.6" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_gnullvm."0.48.5" = overridableMkRustCrate (profileName: rec { - name = "windows_aarch64_gnullvm"; - version = "0.48.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_gnullvm."0.52.6" = overridableMkRustCrate (profileName: rec { - name = "windows_aarch64_gnullvm"; - version = "0.52.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_msvc."0.48.5" = overridableMkRustCrate (profileName: rec { - name = "windows_aarch64_msvc"; - version = "0.48.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_aarch64_msvc."0.52.6" = overridableMkRustCrate (profileName: rec { - name = "windows_aarch64_msvc"; - version = "0.52.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_i686_gnu."0.48.5" = overridableMkRustCrate (profileName: rec { - name = "windows_i686_gnu"; - version = "0.48.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_i686_gnu."0.52.6" = overridableMkRustCrate (profileName: rec { - name = "windows_i686_gnu"; - version = "0.52.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_i686_gnullvm."0.52.6" = overridableMkRustCrate (profileName: rec { - name = "windows_i686_gnullvm"; - version = "0.52.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_i686_msvc."0.48.5" = overridableMkRustCrate (profileName: rec { - name = "windows_i686_msvc"; - version = "0.48.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_i686_msvc."0.52.6" = overridableMkRustCrate (profileName: rec { - name = "windows_i686_msvc"; - version = "0.52.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnu."0.48.5" = overridableMkRustCrate (profileName: rec { - name = "windows_x86_64_gnu"; - version = "0.48.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnu."0.52.6" = overridableMkRustCrate (profileName: rec { - name = "windows_x86_64_gnu"; - version = "0.52.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnullvm."0.48.5" = overridableMkRustCrate (profileName: rec { - name = "windows_x86_64_gnullvm"; - version = "0.48.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_gnullvm."0.52.6" = overridableMkRustCrate (profileName: rec { - name = "windows_x86_64_gnullvm"; - version = "0.52.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_msvc."0.48.5" = overridableMkRustCrate (profileName: rec { - name = "windows_x86_64_msvc"; - version = "0.48.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".windows_x86_64_msvc."0.52.6" = overridableMkRustCrate (profileName: rec { - name = "windows_x86_64_msvc"; - version = "0.52.6"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".winnow."0.6.26" = overridableMkRustCrate (profileName: rec { - name = "winnow"; - version = "0.6.26"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "default" ] - [ "simd" ] - [ "std" ] - ]; - dependencies = { - memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".winnow."0.7.3" = overridableMkRustCrate (profileName: rec { - name = "winnow"; - version = "0.7.3"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "default" ] - [ "std" ] - ]; - dependencies = { - memchr = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".memchr."2.7.4" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".wit-bindgen-rt."0.33.0" = overridableMkRustCrate (profileName: rec { - name = "wit-bindgen-rt"; - version = "0.33.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c"; }; - features = builtins.concatLists [ - [ "bitflags" ] - ]; - dependencies = { - bitflags = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".bitflags."2.8.0" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".write16."1.0.0" = overridableMkRustCrate (profileName: rec { - name = "write16"; - version = "1.0.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936"; }; - features = builtins.concatLists [ - [ "alloc" ] - ]; - }); - - "registry+https://github.com/rust-lang/crates.io-index".writeable."0.5.5" = overridableMkRustCrate (profileName: rec { - name = "writeable"; - version = "0.5.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"; }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".xattr."1.4.0" = overridableMkRustCrate (profileName: rec { - name = "xattr"; - version = "1.4.0"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "e105d177a3871454f754b33bb0ee637ecaaac997446375fd3e5d43a2ed00c909"; }; - features = builtins.concatLists [ - [ "default" ] - [ "unsupported" ] - ]; - dependencies = { - ${ if hostPlatform.parsed.kernel.name == "freebsd" || hostPlatform.parsed.kernel.name == "netbsd" then "libc" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".libc."0.2.169" { inherit profileName; }).out; - ${ if hostPlatform.parsed.kernel.name == "linux" then "linux_raw_sys" else null } = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".linux-raw-sys."0.4.15" { inherit profileName; }).out; - rustix = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".rustix."0.38.44" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".yoke."0.7.5" = overridableMkRustCrate (profileName: rec { - name = "yoke"; - version = "0.7.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "default" ] - [ "derive" ] - [ "zerofrom" ] - ]; - dependencies = { - serde = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".serde."1.0.218" { inherit profileName; }).out; - stable_deref_trait = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".stable_deref_trait."1.2.0" { inherit profileName; }).out; - yoke_derive = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".yoke-derive."0.7.5" { profileName = "__noProfile"; }).out; - zerofrom = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerofrom."0.1.5" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".yoke-derive."0.7.5" = overridableMkRustCrate (profileName: rec { - name = "yoke-derive"; - version = "0.7.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"; }; - dependencies = { - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - synstructure = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".synstructure."0.13.1" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".zerocopy."0.7.35" = overridableMkRustCrate (profileName: rec { - name = "zerocopy"; - version = "0.7.35"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"; }; - features = builtins.concatLists [ - [ "simd" ] - ]; - dependencies = { - ${ if false then "zerocopy_derive" else null } = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".zerocopy-derive."0.7.35" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".zerocopy-derive."0.7.35" = overridableMkRustCrate (profileName: rec { - name = "zerocopy-derive"; - version = "0.7.35"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"; }; - dependencies = { - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".zerofrom."0.1.5" = overridableMkRustCrate (profileName: rec { - name = "zerofrom"; - version = "0.1.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e"; }; - features = builtins.concatLists [ - [ "alloc" ] - [ "derive" ] - ]; - dependencies = { - zerofrom_derive = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".zerofrom-derive."0.1.5" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".zerofrom-derive."0.1.5" = overridableMkRustCrate (profileName: rec { - name = "zerofrom-derive"; - version = "0.1.5"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808"; }; - dependencies = { - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - synstructure = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".synstructure."0.13.1" { inherit profileName; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".zerovec."0.10.4" = overridableMkRustCrate (profileName: rec { - name = "zerovec"; - version = "0.10.4"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079"; }; - features = builtins.concatLists [ - [ "derive" ] - [ "yoke" ] - ]; - dependencies = { - yoke = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".yoke."0.7.5" { inherit profileName; }).out; - zerofrom = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".zerofrom."0.1.5" { inherit profileName; }).out; - zerovec_derive = (buildRustPackages."registry+https://github.com/rust-lang/crates.io-index".zerovec-derive."0.10.3" { profileName = "__noProfile"; }).out; - }; - }); - - "registry+https://github.com/rust-lang/crates.io-index".zerovec-derive."0.10.3" = overridableMkRustCrate (profileName: rec { - name = "zerovec-derive"; - version = "0.10.3"; - registry = "registry+https://github.com/rust-lang/crates.io-index"; - src = fetchCratesIo { inherit name version; sha256 = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"; }; - dependencies = { - proc_macro2 = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".proc-macro2."1.0.93" { inherit profileName; }).out; - quote = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".quote."1.0.38" { inherit profileName; }).out; - syn = (rustPackages."registry+https://github.com/rust-lang/crates.io-index".syn."2.0.98" { inherit profileName; }).out; - }; - }); - -} diff --git a/flake.lock b/flake.lock deleted file mode 100644 index d41282c..0000000 --- a/flake.lock +++ /dev/null @@ -1,144 +0,0 @@ -{ - "nodes": { - "cargo2nix": { - "inputs": { - "flake-compat": "flake-compat", - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs", - "rust-overlay": "rust-overlay" - }, - "locked": { - "lastModified": 1705129117, - "narHash": "sha256-LgdDHibvimzYhxBK3kxCk2gAL7k4Hyigl5KI0X9cijA=", - "owner": "cargo2nix", - "repo": "cargo2nix", - "rev": "ae19a9e1f8f0880c088ea155ab66cee1fa001f59", - "type": "github" - }, - "original": { - "owner": "cargo2nix", - "ref": "release-0.11.0", - "repo": "cargo2nix", - "type": "github" - } - }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1705099185, - "narHash": "sha256-SxJenKtvcrKJd0TyJQMO3p6VA7PEp+vmMnmlKFzWMNs=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2bce5ccff0ad7abda23e8bb56434b6877a446694", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1739866667, - "narHash": "sha256-EO1ygNKZlsAC9avfcwHkKGMsmipUk1Uc0TbrEZpkn64=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "73cf49b8ad837ade2de76f87eb53fc85ed5d4680", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "cargo2nix": "cargo2nix", - "flake-utils": [ - "cargo2nix", - "flake-utils" - ], - "nixpkgs": "nixpkgs_2" - } - }, - "rust-overlay": { - "inputs": { - "flake-utils": [ - "cargo2nix", - "flake-utils" - ], - "nixpkgs": [ - "cargo2nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1705112162, - "narHash": "sha256-IAM0+Uijh/fwlfoeDrOwau9MxcZW3zeDoUHc6Z3xfqM=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "9e0af26ffe52bf955ad5575888f093e41fba0104", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/flake.nix b/flake.nix deleted file mode 100644 index 3a9e30e..0000000 --- a/flake.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ - inputs = { - cargo2nix.url = "github:cargo2nix/cargo2nix/release-0.11.0"; - flake-utils.follows = "cargo2nix/flake-utils"; - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - }; - - outputs = inputs: with inputs; - flake-utils.lib.eachDefaultSystem (system: - let - pkgs = import nixpkgs { - inherit system; - overlays = [cargo2nix.overlays.default]; - }; - - rustPkgs = pkgs.rustBuilder.makePackageSet { - rustVersion = "1.84.0"; - packageFun = import ./Cargo.nix; - }; - - in rec { - packages = { - enginelib = (rustPkgs.workspace.enginelib {}); - default = packages.enginelib; - }; - } - ); -} From fa4b95b01e89e3589f3b29096db1ab13ac8ad42e Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 22 Feb 2025 23:11:35 +0000 Subject: [PATCH 067/163] switch to sha --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 05a3b87..74c2c2c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -9,7 +9,7 @@ pub mod prelude; pub mod task; pub type Identifier = (String, String); pub type RawIdentier = String; -pub const GIT_VERSION: &str = env!("CARGO_PKG_VERSION"); +pub const GIT_VERSION: &str = env!("VERGEN_GIT_SHA"); //get commit hash pub const RUSTC_VERSION: &str = env!("VERGEN_RUSTC_SEMVER"); pub trait Registry: Default + Clone { fn register(&mut self, registree: Arc, identifier: Identifier); From 33afba827b5600a3276dfb4cef98c2e6796d88fa Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 23 Feb 2025 11:37:25 +0000 Subject: [PATCH 068/163] better? --- src/event.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/event.rs b/src/event.rs index 74473a5..4f4e8b4 100644 --- a/src/event.rs +++ b/src/event.rs @@ -7,19 +7,19 @@ use std::process; use std::sync::Arc; pub use tracing::{debug, error, event, info, warn}; // The Actual Fuck -// this fucking piece of god given code saves so much time +// this fucking piece of god given code saves so much time and wastes soo much time pub trait EventCTX: EventHandler { fn get_event(event: &mut dyn Event) -> &mut T { debug!("Aquiring Event"); - event.as_any_mut().downcast_mut::().unwrap() + unsafe { &mut *(event as *mut dyn Event as *mut T) } } fn handle(&self, event: &mut dyn Event) { let namespace = event.get_id().0; let id = event.get_id().1; let msg = format!("Handling Event: {}:{}", namespace, id); debug!(msg); - let event: &mut C = >::get_event::(event); + let event: &mut C = unsafe { &mut *(event as *mut dyn Event as *mut C) }; self.handleCTX(event); } #[allow(non_snake_case)] @@ -124,11 +124,7 @@ impl EventBus { if let Some(handlers) = handlers { for handler in handlers { - if let Some(event) = event.as_any_mut().downcast_mut::() { - handler.handle(event) - } else { - error!("Failed to downcast event during handling"); - } + handler.handle(event) } } else { debug!("No EventHandlers subscribed to {:?}:{:?}", id.0, id.1) From 4f70307ecb15b6d657f96b378e3c5ab8061f39f6 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 23 Feb 2025 12:00:34 +0000 Subject: [PATCH 069/163] switch to patch nums --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 74c2c2c..b1b1aec 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -9,7 +9,7 @@ pub mod prelude; pub mod task; pub type Identifier = (String, String); pub type RawIdentier = String; -pub const GIT_VERSION: &str = env!("VERGEN_GIT_SHA"); //get commit hash +pub const GIT_VERSION: &str = env!("CARGO_PKG_VERSION"); //get commit hash pub const RUSTC_VERSION: &str = env!("VERGEN_RUSTC_SEMVER"); pub trait Registry: Default + Clone { fn register(&mut self, registree: Arc, identifier: Identifier); From d63cc87e32afa8221672cef1eabb5681d863ffcb Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 24 Feb 2025 19:05:25 +0000 Subject: [PATCH 070/163] major work on error handling --- src/plugin.rs | 53 +++++++++++++++++++++++++++++++++++++-------------- src/task.rs | 18 ++++++++--------- 2 files changed, 48 insertions(+), 23 deletions(-) diff --git a/src/plugin.rs b/src/plugin.rs index 2ef5f6a..de30d1e 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -6,7 +6,7 @@ use std::mem::ManuallyDrop; use std::sync::Arc; use std::{collections::HashMap, fs}; use tracing::field::debug; -use tracing::{debug, info}; +use tracing::{debug, error, info}; #[derive(Clone, Debug)] pub struct LibraryInstance { dynamicLibrary: Arc>, @@ -94,28 +94,53 @@ impl LibraryManager { let tmp_path = fs.tempdir.path(); #[cfg(unix)] - self.load_library(tmp_path.join("mod.so").to_str().unwrap(), api); + let library_path = tmp_path.join("mod.so"); #[cfg(windows)] - self.load_library(tmp_path.join("mod.dll").to_str().unwrap(), api); + let library_path = tmp_path.join("mod.so"); + if let Some(lib_path_str) = library_path.to_str() { + self.load_library(lib_path_str, api); + } else { + info!("Invalid library path for module: {}", path); + } std::mem::forget(fs); } + pub fn load_library(&mut self, path: &str, api: &mut EngineAPI) { debug!("Loading library {}", path); - let run: Symbol; - let (lib, metadata): (Library, LibraryMetadata) = unsafe { - let library = Library::new(path).unwrap(); - let metadataFN: Symbol LibraryMetadata> = - library.get(b"metadata").unwrap(); - let metadata: LibraryMetadata = metadataFN(); - (library, metadata) + let (lib, metadata): (Library, LibraryMetadata) = match unsafe { + Library::new(path) + .map_err(|e| error!("Failed to load library: {e}")) + .and_then(|library| { + let metadataFN: Symbol LibraryMetadata> = library + .get(b"metadata") + .map_err(|e| error!("Failed to load metadata: {e}"))?; + let metadata: LibraryMetadata = metadataFN(); + Ok((library, metadata)) + }) + } { + Ok(result) => result, + Err(err) => { + info!("Failed to load module at {:#?}: {:#?}", path, err); + return; + } }; if metadata.api_version == crate::GIT_VERSION && metadata.rustc_version == crate::RUSTC_VERSION { - unsafe { - run = lib.get(b"run").unwrap(); - run(api); - } + let res = unsafe { + lib.get(b"run") + .map_err(|e| { + error!("Failed to get run symbol: {:#?}", e); + false + }) + .map( + |run: Symbol| { + run(api); + true + }, + ) + }; + if res {} self.libraries.insert( metadata.mod_id.clone(), LibraryInstance { diff --git a/src/task.rs b/src/task.rs index 44202d5..aa1f94a 100644 --- a/src/task.rs +++ b/src/task.rs @@ -27,15 +27,15 @@ impl TaskQueue { let tasks = storage .tasks .iter() - .map(|task_bytes| { - let x: Box = api.task_registry.get(&task_bytes.0).unwrap_or_else(|| { - error!("Failed to convert TaskBytes into Solid Task"); - panic!("Failed to convert TaskBytes into Solid Task") - }); - // Assuming you have a way to get the task type and deserialize it - // This is a placeholder and should be replaced with actual deserialization logic - let task: Box = x.from_bytes(&task_bytes.1); - task + .filter_map(|task_bytes| match api.task_registry.get(&task_bytes.0) { + Some(x) => Some(x.from_bytes(&task_bytes.1)), + None => { + error!( + "Failed to convert TaskBytes into Solid Task for {:?}", + task_bytes.0 + ); + None + } }) .collect(); TaskQueue { tasks } From d5328aa6b2534a7384258ad9a2d3778150d78c2f Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 24 Feb 2025 19:19:58 +0000 Subject: [PATCH 071/163] major work on error handling --- src/plugin.rs | 73 +++++++++++++++++++++++++++------------------------ 1 file changed, 38 insertions(+), 35 deletions(-) diff --git a/src/plugin.rs b/src/plugin.rs index de30d1e..083accb 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -105,7 +105,7 @@ impl LibraryManager { std::mem::forget(fs); } - pub fn load_library(&mut self, path: &str, api: &mut EngineAPI) { + pub fn load_library(&mut self, path: &str, api: &mut EngineAPI) -> Result<(), String> { debug!("Loading library {}", path); let (lib, metadata): (Library, LibraryMetadata) = match unsafe { Library::new(path) @@ -121,42 +121,45 @@ impl LibraryManager { Ok(result) => result, Err(err) => { info!("Failed to load module at {:#?}: {:#?}", path, err); - return; + return Err("Failed to load module".to_string()); } }; - if metadata.api_version == crate::GIT_VERSION - && metadata.rustc_version == crate::RUSTC_VERSION + if metadata.api_version != crate::GIT_VERSION + && metadata.rustc_version != crate::RUSTC_VERSION { - let res = unsafe { - lib.get(b"run") - .map_err(|e| { - error!("Failed to get run symbol: {:#?}", e); - false - }) - .map( - |run: Symbol| { - run(api); - true - }, - ) - }; - if res {} - self.libraries.insert( - metadata.mod_id.clone(), - LibraryInstance { - dynamicLibrary: Arc::new(ManuallyDrop::new(lib)), - metadata: Arc::new(metadata.clone()), - }, - ); - debug!( - "Module {} Loaded, made by {}", - metadata.mod_name, metadata.mod_author - ) - } else { - info!( - "Module {} was not loaded due to version mismatch, Lib API: {}, Engine API: {}, Lib Rustc: {}, Engine Rustc: {}", - metadata.mod_name, metadata.api_version, crate::GIT_VERSION, metadata.rustc_version, crate::RUSTC_VERSION - ); - } + let err = format!( + "Module version mismatch - Lib API: {}, Engine API: {}, Lib Rustc: {}, Engine Rustc: {}", + metadata.api_version, + crate::GIT_VERSION, + metadata.rustc_version, + crate::RUSTC_VERSION + ); + error!("{}", err); + return Err(err); + }; + + let res = unsafe { + lib.get(b"run") + .map_err(|e| { + error!("Failed to get run symbol: {:#?}", e); + }) + .map( + |run: Symbol| { + run(api); + }, + ) + }; + self.libraries.insert( + metadata.mod_id.clone(), + LibraryInstance { + dynamicLibrary: Arc::new(ManuallyDrop::new(lib)), + metadata: Arc::new(metadata.clone()), + }, + ); + debug!( + "Module {} Loaded, made by {}", + metadata.mod_name, metadata.mod_author + ); + Ok(()) } } From a05cf61d0ac888f0283057e90b972532ef52f788 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 24 Feb 2025 19:29:57 +0000 Subject: [PATCH 072/163] major work on error msgs --- src/plugin.rs | 119 +++++++++++++++++++++++++++++--------------------- 1 file changed, 69 insertions(+), 50 deletions(-) diff --git a/src/plugin.rs b/src/plugin.rs index 083accb..80d34b5 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -58,38 +58,49 @@ pub struct LibraryManager { impl LibraryManager { pub fn drop(self, api: EngineAPI) { + debug!("Dropping LibraryManager and EngineAPI"); drop(api); drop(self); } + pub fn load_modules(&mut self, api: &mut EngineAPI) { - //get all files in ./mods - let dir_path = "./mods"; // Target directory + let dir_path = "./mods"; let mut files: Vec = Vec::new(); - if let Ok(entries) = fs::read_dir(dir_path) { - for entry in entries.filter_map(Result::ok) { - let path = entry.path(); - if path.is_file() { - if let Some(extension) = path.extension() { - if extension == "tar" { - if let Some(stem) = path.file_stem() { - if stem.to_string_lossy().ends_with(".rustforge") { - files.push(path.display().to_string()); + info!("Scanning for modules in directory: {}", dir_path); + + match fs::read_dir(dir_path) { + Ok(entries) => { + for entry in entries.filter_map(Result::ok) { + let path = entry.path(); + if path.is_file() { + if let Some(extension) = path.extension() { + if extension == "tar" { + if let Some(stem) = path.file_stem() { + if stem.to_string_lossy().ends_with(".rustforge") { + debug!("Found valid module file: {}", path.display()); + files.push(path.display().to_string()); + } } } } } } } - } else { - eprintln!("Error reading directory: {}", dir_path); + Err(e) => { + error!("Failed to read modules directory {}: {}", dir_path, e); + return; + } } + + info!("Found {} module(s) to load", files.len()); for file in files { self.load_module(&file, api); } } + pub fn load_module(&mut self, path: &str, api: &mut EngineAPI) { - info!("Loading module {}", path); + info!("Loading module from path: {}", path); let fs = OxiFS::new(path); let tmp_path = fs.tempdir.path(); @@ -97,58 +108,65 @@ impl LibraryManager { let library_path = tmp_path.join("mod.so"); #[cfg(windows)] let library_path = tmp_path.join("mod.so"); + if let Some(lib_path_str) = library_path.to_str() { - self.load_library(lib_path_str, api); + debug!("Extracted library path: {}", lib_path_str); + if let Err(e) = self.load_library(lib_path_str, api) { + error!("Failed to load library {}: {}", lib_path_str, e); + } } else { - info!("Invalid library path for module: {}", path); + error!("Invalid library path for module: {}", path); } std::mem::forget(fs); } pub fn load_library(&mut self, path: &str, api: &mut EngineAPI) -> Result<(), String> { - debug!("Loading library {}", path); - let (lib, metadata): (Library, LibraryMetadata) = match unsafe { - Library::new(path) - .map_err(|e| error!("Failed to load library: {e}")) + debug!("Attempting to load library: {}", path); + + let (lib, metadata): (Library, LibraryMetadata) = unsafe { + match Library::new(path) + .map_err(|e| format!("Failed to load library: {}", e)) .and_then(|library| { - let metadataFN: Symbol LibraryMetadata> = library + let metadata_fn: Symbol LibraryMetadata> = library .get(b"metadata") - .map_err(|e| error!("Failed to load metadata: {e}"))?; - let metadata: LibraryMetadata = metadataFN(); + .map_err(|e| format!("Failed to load metadata: {}", e))?; + let metadata: LibraryMetadata = metadata_fn(); Ok((library, metadata)) - }) - } { - Ok(result) => result, - Err(err) => { - info!("Failed to load module at {:#?}: {:#?}", path, err); - return Err("Failed to load module".to_string()); + }) { + Ok(result) => result, + Err(err) => { + error!("Failed to load module at {}: {}", path, err); + return Err(err); + } } }; + + // Version compatibility check if metadata.api_version != crate::GIT_VERSION - && metadata.rustc_version != crate::RUSTC_VERSION + || metadata.rustc_version != crate::RUSTC_VERSION { let err = format!( - "Module version mismatch - Lib API: {}, Engine API: {}, Lib Rustc: {}, Engine Rustc: {}", - metadata.api_version, - crate::GIT_VERSION, - metadata.rustc_version, - crate::RUSTC_VERSION - ); + "Version mismatch - Module API: {}, Engine API: {}, Module Rustc: {}, Engine Rustc: {}", + metadata.api_version, + crate::GIT_VERSION, + metadata.rustc_version, + crate::RUSTC_VERSION + ); error!("{}", err); return Err(err); - }; + } - let res = unsafe { + // Execute module's run function + if let Err(e) = unsafe { lib.get(b"run") - .map_err(|e| { - error!("Failed to get run symbol: {:#?}", e); - }) - .map( - |run: Symbol| { - run(api); - }, - ) - }; + .map_err(|e| format!("Failed to get run symbol: {}", e)) + .map(|run: Symbol| run(api)) + } { + error!("Failed to execute module's run function: {}", e); + return Err(e); + } + + // Store the loaded library self.libraries.insert( metadata.mod_id.clone(), LibraryInstance { @@ -156,9 +174,10 @@ impl LibraryManager { metadata: Arc::new(metadata.clone()), }, ); - debug!( - "Module {} Loaded, made by {}", - metadata.mod_name, metadata.mod_author + + info!( + "Successfully loaded module '{}' (version {}) by {}", + metadata.mod_name, metadata.mod_version, metadata.mod_author ); Ok(()) } From f7bcbb02238717df0bf2dbd1961b9af70fe0eead Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 24 Feb 2025 19:39:34 +0000 Subject: [PATCH 073/163] made logging more consistent --- src/api.rs | 2 +- src/event.rs | 19 ++++++++++++------- src/task.rs | 16 ++++++++++++---- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/api.rs b/src/api.rs index 5c39875..efdafd3 100644 --- a/src/api.rs +++ b/src/api.rs @@ -63,7 +63,7 @@ impl Registry for EngineTaskRegistry { fn register(&mut self, task: Arc, identifier: Identifier) { // Insert the task into the hashmap with (mod_id, identifier) as the key debug!( - "Inserting task {:?}:{:?} into registry", + "TaskRegistry: Registering task {}.{}", identifier.0, identifier.1 ); self.tasks.insert(identifier, task); diff --git a/src/event.rs b/src/event.rs index 4f4e8b4..1b4e217 100644 --- a/src/event.rs +++ b/src/event.rs @@ -17,8 +17,7 @@ pub trait EventCTX: EventHandler { fn handle(&self, event: &mut dyn Event) { let namespace = event.get_id().0; let id = event.get_id().1; - let msg = format!("Handling Event: {}:{}", namespace, id); - debug!(msg); + debug!("EventBus: Handling event {}.{}", namespace, id); let event: &mut C = unsafe { &mut *(event as *mut dyn Event as *mut C) }; self.handleCTX(event); } @@ -65,8 +64,8 @@ impl EngineEventHandlerRegistry { let handlers = self.event_handlers.entry(identifier.clone()).or_default(); handlers.push(handler); debug!( - "Event Handler registered for event ID: {:?}", - identifier.clone() + "EventBus: Registered handler for event {}.{}", + identifier.0, identifier.1 ); } } @@ -78,7 +77,10 @@ impl Clone for Box { impl Registry for EngineEventRegistry { fn register(&mut self, registree: Arc, identifier: Identifier) { self.events.insert(identifier.clone(), registree); - debug!("Event registered with ID: {:?}", identifier.clone()); + debug!( + "EventBus: Registered event {}.{}", + identifier.0, identifier.1 + ); } fn get(&self, identifier: &Identifier) -> Option> { @@ -118,7 +120,7 @@ impl Event for OnStartEvent { impl EventBus { pub fn handle(&self, id: Identifier, event: &mut T) { - debug!("Handling events: {:?}", &event.get_id()); + debug!("EventBus: Processing event {}.{}", id.0, id.1); let handlers: Option<&Vec>> = self.event_handler_registry.event_handlers.get(&id); @@ -127,7 +129,10 @@ impl EventBus { handler.handle(event) } } else { - debug!("No EventHandlers subscribed to {:?}:{:?}", id.0, id.1) + debug!( + "EventBus: No event handlers subscribed for event {}.{}", + id.0, id.1 + ); } } } diff --git a/src/task.rs b/src/task.rs index aa1f94a..fe43f8b 100644 --- a/src/task.rs +++ b/src/task.rs @@ -31,8 +31,8 @@ impl TaskQueue { Some(x) => Some(x.from_bytes(&task_bytes.1)), None => { error!( - "Failed to convert TaskBytes into Solid Task for {:?}", - task_bytes.0 + "TaskQueue: Failed to deserialize task {}.{} - invalid data", + task_bytes.0 .0, task_bytes.0 .1 ); None } @@ -47,12 +47,20 @@ pub trait Task: Debug + Sync + Send { fn clone_box(&self) -> Box; #[instrument] fn run_hip(&mut self) { - warn!("HIP Runtime not available, falling back to CPU"); + warn!( + "Task: HIP runtime not available for {}.{}, falling back to CPU", + self.get_id().0, + self.get_id().1 + ); self.run_cpu(); } #[instrument] fn run_cpu(&mut self) { - error!("CPU run not Implemented"); + error!( + "Task: CPU implementation missing for {}.{}", + self.get_id().0, + self.get_id().1 + ); } #[instrument] fn run(&mut self, run: Option) { From 1d3c0606393c57cacf59678093a3354f614d1434 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 24 Feb 2025 20:24:17 +0000 Subject: [PATCH 074/163] added tests --- Cargo.lock | 60 +++++++++++++-- Cargo.toml | 1 + src/api.rs | 8 -- tests/event_tests.rs | 176 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 232 insertions(+), 13 deletions(-) create mode 100644 tests/event_tests.rs diff --git a/Cargo.lock b/Cargo.lock index 3905db5..cf52176 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "adler2" @@ -75,7 +75,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" dependencies = [ "memchr", - "regex-automata", + "regex-automata 0.4.9", "serde", ] @@ -257,6 +257,7 @@ dependencies = [ "toml", "tracing", "tracing-subscriber", + "tracing-test", "vergen-gix", ] @@ -1199,6 +1200,15 @@ version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + [[package]] name = "maybe-async" version = "0.2.10" @@ -1399,8 +1409,17 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata", - "regex-syntax", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", ] [[package]] @@ -1411,9 +1430,15 @@ checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-syntax 0.8.5", ] +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + [[package]] name = "regex-syntax" version = "0.8.5" @@ -1815,14 +1840,39 @@ version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ + "matchers", "nu-ansi-term", + "once_cell", + "regex", "sharded-slab", "smallvec", "thread_local", + "tracing", "tracing-core", "tracing-log", ] +[[package]] +name = "tracing-test" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "557b891436fe0d5e0e363427fc7f217abf9ccd510d5136549847bdcbcd011d68" +dependencies = [ + "tracing-core", + "tracing-subscriber", + "tracing-test-macro", +] + +[[package]] +name = "tracing-test-macro" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04659ddb06c87d233c566112c1c9c5b9e98256d9af50ec3bc9c8327f873a7568" +dependencies = [ + "quote", + "syn", +] + [[package]] name = "unicode-bom" version = "2.0.3" diff --git a/Cargo.toml b/Cargo.toml index f56f10a..a2d733e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,7 @@ serde = { version = "1.0.217", features = ["derive"] } toml = "0.8.19" tracing = "0.1.41" tracing-subscriber = "0.3.18" +tracing-test = "0.2.5" [build-dependencies] vergen-gix = { version = "1.0.0", features = ["build", "cargo", "rustc"] } [profile.release] diff --git a/src/api.rs b/src/api.rs index efdafd3..57f9db6 100644 --- a/src/api.rs +++ b/src/api.rs @@ -15,14 +15,6 @@ pub struct EngineAPI { } impl Default for EngineAPI { fn default() -> Self { - //Init Logger Here - tracing_subscriber::FmtSubscriber::builder() - // all spans/events with a level higher than TRACE (e.g, debug, info, warn, etc.) - // will be written to stdout. - .with_max_level(Level::INFO) - // builds the subscriber. - .init(); - Self { task_queue: TaskQueue::default(), task_registry: EngineTaskRegistry::default(), diff --git a/tests/event_tests.rs b/tests/event_tests.rs new file mode 100644 index 0000000..939d174 --- /dev/null +++ b/tests/event_tests.rs @@ -0,0 +1,176 @@ +use enginelib::{ + api::EngineAPI, + event::{Event, EventCTX, EventHandler}, + events::ID, + BuildEventHandler, Identifier, Registry, +}; +use std::sync::Arc; +use tracing_test::traced_test; + +#[traced_test] +#[test] +fn test_event_registration_and_handling() { + let mut api = EngineAPI::default(); + + // Create a test event + #[derive(Clone)] + struct TestEvent { + pub value: i32, + pub cancelled: bool, + pub id: (String, String), + } + + impl Event for TestEvent { + fn clone_box(&self) -> Box { + Box::new(self.clone()) + } + fn cancel(&mut self) { + self.cancelled = true; + } + fn is_cancelled(&self) -> bool { + self.cancelled + } + fn get_id(&self) -> (String, String) { + self.id.clone() + } + fn as_any(&self) -> &dyn std::any::Any { + self + } + fn as_any_mut(&mut self) -> &mut dyn std::any::Any { + self + } + } + + // Create a test handler + BuildEventHandler!(TestHandler, TestEvent, |event: &mut TestEvent| { + event.value += 1; + }); + + // Register event and handler + let event_id = ID("test", "test_event"); + api.event_bus.event_registry.register( + Arc::new(TestEvent { + value: 0, + cancelled: false, + id: event_id.clone(), + }), + event_id.clone(), + ); + + api.event_bus + .event_handler_registry + .register_handler(TestHandler, event_id.clone()); + + // Test event handling + let mut test_event = TestEvent { + value: 0, + cancelled: false, + id: event_id.clone(), + }; + + api.event_bus.handle(event_id, &mut test_event); + assert_eq!(test_event.value, 1); +} + +#[traced_test] +#[test] +fn test_task_queue() { + use enginelib::task::{Runner, Task}; + use serde::{Deserialize, Serialize}; + + #[derive(Debug, Clone, Serialize, Deserialize)] + struct TestTask { + pub value: i32, + pub id: (String, String), + } + + impl Task for TestTask { + fn get_id(&self) -> (String, String) { + self.id.clone() + } + fn clone_box(&self) -> Box { + Box::new(self.clone()) + } + fn run_cpu(&mut self) { + self.value += 1; + } + fn to_bytes(&self) -> Vec { + bincode::serialize(self).unwrap() + } + fn from_bytes(&self, bytes: &[u8]) -> Box { + Box::new(bincode::deserialize::(bytes).unwrap()) + } + } + + let mut api = EngineAPI::default(); + let task = TestTask { + value: 0, + id: ID("test", "test_task"), + }; + + api.task_queue.tasks.push(Box::new(task.clone())); + + // Test task execution + if let Some(task) = api.task_queue.tasks.first_mut() { + let task: &mut TestTask = unsafe { &mut *((task as *mut Box) as *mut TestTask) }; + let mut task = task.clone(); + task.run(Some(Runner::CPU)); + assert_eq!(task.value, 1); + } +} + +#[traced_test] +#[test] +fn test_task_serialization() { + use enginelib::task::{Task, TaskQueueStorage}; + use serde::{Deserialize, Serialize}; + + #[derive(Debug, Clone, Serialize, Deserialize)] + struct TestTask { + pub value: i32, + pub id: (String, String), + } + + impl Task for TestTask { + fn get_id(&self) -> (String, String) { + self.id.clone() + } + fn clone_box(&self) -> Box { + Box::new(self.clone()) + } + fn run_cpu(&mut self) { + self.value += 1; + } + fn to_bytes(&self) -> Vec { + bincode::serialize(self).unwrap() + } + fn from_bytes(&self, bytes: &[u8]) -> Box { + Box::new(bincode::deserialize::(bytes).unwrap()) + } + } + + let mut api = EngineAPI::default(); + let task = TestTask { + value: 42, + id: ID("test", "test_task"), + }; + + api.task_queue.tasks.push(Box::new(task)); + + // Test serialization + let storage = TaskQueueStorage::from_task_queue(&api.task_queue); + assert_eq!(storage.tasks.len(), 1); + + // Register task type + api.task_registry.register( + Arc::new(TestTask { + value: 0, + id: ID("test", "test_task"), + }), + ID("test", "test_task"), + ); + + // Test deserialization + let new_queue = enginelib::task::TaskQueue::from_storage(&storage, &api); + assert_eq!(new_queue.tasks.len(), 1); +} From 03572fdedf4ea770cddd8c644a07cede5ed483c8 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 24 Feb 2025 20:31:05 +0000 Subject: [PATCH 075/163] up rel --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cf52176..926c2d4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -247,7 +247,7 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "enginelib" -version = "0.1.7" +version = "0.2.0" dependencies = [ "bincode", "directories", diff --git a/Cargo.toml b/Cargo.toml index a2d733e..b0566db 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "enginelib" -version = "0.1.7" +version = "0.2.0" edition = "2021" description = "A library for the GE engine allowing for modding and removing boilerplate." license-file = "LICENSE.md" From 69d5bf3e8363077079a302afff02f676f6f935ae Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 25 Feb 2025 08:00:50 +0000 Subject: [PATCH 076/163] minor changes --- src/macros.rs | 2 +- src/plugin.rs | 1 - src/task.rs | 3 ++- tests/event_tests.rs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index 6d641e4..c90edc8 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -1,7 +1,7 @@ #[macro_export] macro_rules! register_event { ($api:expr,$name:ident,$default_state:expr) => { - use crate::Registry; + use $crate::Registry; let $name = ID("core", stringify!($name)); $api.event_bus .event_registry diff --git a/src/plugin.rs b/src/plugin.rs index 80d34b5..2ab8d70 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -5,7 +5,6 @@ use serde::{Deserialize, Serialize}; use std::mem::ManuallyDrop; use std::sync::Arc; use std::{collections::HashMap, fs}; -use tracing::field::debug; use tracing::{debug, error, info}; #[derive(Clone, Debug)] pub struct LibraryInstance { diff --git a/src/task.rs b/src/task.rs index fe43f8b..daad9ad 100644 --- a/src/task.rs +++ b/src/task.rs @@ -1,4 +1,4 @@ -use std::{any::Any, fmt::Debug, sync::Arc}; +use std::{fmt::Debug, sync::Arc}; use crate::api::EngineAPI; use crate::{Identifier, Registry}; @@ -70,6 +70,7 @@ pub trait Task: Debug + Sync + Send { } } fn to_bytes(&self) -> Vec; + #[allow(clippy::wrong_self_convention)] fn from_bytes(&self, bytes: &[u8]) -> Box; } diff --git a/tests/event_tests.rs b/tests/event_tests.rs index 939d174..f361857 100644 --- a/tests/event_tests.rs +++ b/tests/event_tests.rs @@ -2,7 +2,7 @@ use enginelib::{ api::EngineAPI, event::{Event, EventCTX, EventHandler}, events::ID, - BuildEventHandler, Identifier, Registry, + BuildEventHandler, Registry, }; use std::sync::Arc; use tracing_test::traced_test; From b61b074c2626d2bd4d9cbd1d09c1a1a3054cc8b5 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 28 Feb 2025 18:17:01 +0000 Subject: [PATCH 077/163] up edition --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index b0566db..9fcd588 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "enginelib" version = "0.2.0" -edition = "2021" +edition = "2024" description = "A library for the GE engine allowing for modding and removing boilerplate." license-file = "LICENSE.md" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html From 109e0d1248477846c0dce29265b3b2f65c160a1f Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 28 Feb 2025 18:54:54 +0000 Subject: [PATCH 078/163] better dev exp --- macros/Cargo.lock | 35 +++++++++++++++++++++++++++++++++++ macros/Cargo.toml | 9 +++++++++ macros/src/lib.rs | 20 ++++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 macros/Cargo.lock create mode 100644 macros/Cargo.toml create mode 100644 macros/src/lib.rs diff --git a/macros/Cargo.lock b/macros/Cargo.lock new file mode 100644 index 0000000..3bbafe4 --- /dev/null +++ b/macros/Cargo.lock @@ -0,0 +1,35 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "macros" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro2" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "unicode-ident" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" diff --git a/macros/Cargo.toml b/macros/Cargo.toml new file mode 100644 index 0000000..019f123 --- /dev/null +++ b/macros/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "macros" +version = "0.1.0" +edition = "2024" +[lib] +proc-macro = true +[dependencies] +proc-macro2 = "1.0.93" +quote = "1.0.38" diff --git a/macros/src/lib.rs b/macros/src/lib.rs new file mode 100644 index 0000000..437c7c1 --- /dev/null +++ b/macros/src/lib.rs @@ -0,0 +1,20 @@ +use proc_macro::TokenStream; +use quote::quote; +#[proc_macro_attribute] +pub fn metadata(_attr: TokenStream, item: TokenStream) -> TokenStream { + let item = proc_macro2::TokenStream::from(item); + quote! { + #[unsafe(export_name="metadata")] + #item + } + .into() +} +#[proc_macro_attribute] +pub fn module(_attr: TokenStream, item: TokenStream) -> TokenStream { + let item = proc_macro2::TokenStream::from(item); + quote! { + #[unsafe(export_name="run")] + #item + } + .into() +} From 78470d11d4aaaac9e0b511e2b3087ef52849e1c9 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 28 Feb 2025 18:55:31 +0000 Subject: [PATCH 079/163] better dev exp --- Cargo.lock | 9 +++++++++ Cargo.toml | 1 + src/prelude.rs | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 926c2d4..061b22f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -252,6 +252,7 @@ dependencies = [ "bincode", "directories", "libloading", + "macros", "oxifs", "serde", "toml", @@ -1200,6 +1201,14 @@ version = "0.4.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" +[[package]] +name = "macros" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", +] + [[package]] name = "matchers" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 9fcd588..48c420a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,7 @@ license-file = "LICENSE.md" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +macros = { path = "./macros" } bincode = "1.3.3" directories = "5.0.1" libloading = "0.8.6" diff --git a/src/prelude.rs b/src/prelude.rs index 8b13789..0e64149 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -1 +1 @@ - +pub use macros; From 9e055790728aed56c8cf432e60e1bc1a59fd8273 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 28 Feb 2025 19:04:15 +0000 Subject: [PATCH 080/163] cleanup --- src/task.rs | 2 +- tests/event_tests.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/task.rs b/src/task.rs index daad9ad..4b5716f 100644 --- a/src/task.rs +++ b/src/task.rs @@ -32,7 +32,7 @@ impl TaskQueue { None => { error!( "TaskQueue: Failed to deserialize task {}.{} - invalid data", - task_bytes.0 .0, task_bytes.0 .1 + task_bytes.0.0, task_bytes.0.1 ); None } diff --git a/tests/event_tests.rs b/tests/event_tests.rs index f361857..dba0641 100644 --- a/tests/event_tests.rs +++ b/tests/event_tests.rs @@ -1,8 +1,8 @@ use enginelib::{ + BuildEventHandler, Registry, api::EngineAPI, event::{Event, EventCTX, EventHandler}, events::ID, - BuildEventHandler, Registry, }; use std::sync::Arc; use tracing_test::traced_test; From 9be6f2e47a373b344897bd0c28475136cb463d2d Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 28 Feb 2025 20:14:10 +0000 Subject: [PATCH 081/163] feature --- src/event.rs | 3 +- src/events/cgrpc_event.rs | 66 +++++++++++++++++++++++++++++++++++++++ src/events/mod.rs | 5 ++- src/events/start_event.rs | 26 +++++++++------ src/macros.rs | 5 ++- tests/event_tests.rs | 4 +-- 6 files changed, 92 insertions(+), 17 deletions(-) create mode 100644 src/events/cgrpc_event.rs diff --git a/src/event.rs b/src/event.rs index 1b4e217..657437a 100644 --- a/src/event.rs +++ b/src/event.rs @@ -1,6 +1,6 @@ -use crate::plugin::LibraryInstance; use crate::Identifier; use crate::Registry; +use crate::plugin::LibraryInstance; use std::any::Any; use std::collections::HashMap; use std::process; @@ -35,7 +35,6 @@ pub trait Event: Any + Send + Sync { fn cancel(&mut self); fn is_cancelled(&self) -> bool; fn get_id(&self) -> Identifier; - fn as_any(&self) -> &dyn Any; fn as_any_mut(&mut self) -> &mut dyn Any; } diff --git a/src/events/cgrpc_event.rs b/src/events/cgrpc_event.rs new file mode 100644 index 0000000..1f5473a --- /dev/null +++ b/src/events/cgrpc_event.rs @@ -0,0 +1,66 @@ +use std::any::Any; + +use crate::{Identifier, api::EngineAPI, event::Event}; + +use super::{Events, ID}; + +#[derive(Clone, Debug)] +pub struct CgrpcEvent { + pub cancelled: bool, + pub id: Identifier, + pub handler_id: Identifier, +} +#[macro_export] +macro_rules! RegisterCgrpcEventHandler { + ($handler:ident,$handler_id:expr,$handler_fn:expr) => { + use enginelib::events::cgrpc_event::CgrpcEvent; + pub struct $handler; + impl EventHandler for $handler { + fn handle(&self, event: &mut dyn Event) { + let event: &mut CgrpcEvent = + >::get_event::(event); + self.handleCTX(event); + } + } + impl EventCTX for $handler { + fn handleCTX(&self, event: &mut CgrpcEvent) { + $handler_fn(event) + } + } + }; +} +impl Events { + pub fn CgrpcEvent(api: &mut EngineAPI, handler_id: Identifier) { + api.event_bus.handle( + ID("core", "cgrpc_event"), + &mut CgrpcEvent { + cancelled: false, + id: ID("core", "cgrpc_event"), + handler_id, + }, + ); + } +} + +impl Event for CgrpcEvent { + fn clone_box(&self) -> Box { + Box::new(self.clone()) + } + + fn cancel(&mut self) { + self.cancelled = true; + } + fn is_cancelled(&self) -> bool { + self.cancelled + } + fn get_id(&self) -> Identifier { + self.id.clone() + } + fn as_any(&self) -> &dyn Any { + self + } + + fn as_any_mut(&mut self) -> &mut dyn Any { + self + } +} diff --git a/src/events/mod.rs b/src/events/mod.rs index d9d7297..2d543bd 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -1,17 +1,20 @@ -use crate::api::EngineAPI; use crate::Identifier; +use crate::api::EngineAPI; use std::sync::Arc; +pub mod cgrpc_event; pub mod start_event; pub struct Events {} pub fn ID(namespace: &str, id: &str) -> Identifier { (namespace.to_string(), id.to_string()) } + impl Events { pub fn init(api: &mut EngineAPI) { //Register Events to the Default impl for less boilerplate crate::register_event!( api, + core, start_event, crate::events::start_event::StartEvent { modules: vec![], diff --git a/src/events/start_event.rs b/src/events/start_event.rs index 6503edc..d90c3a2 100644 --- a/src/events/start_event.rs +++ b/src/events/start_event.rs @@ -1,22 +1,29 @@ use std::{any::Any, process, sync::Arc}; -use crate::{event::Event, plugin::LibraryMetadata, Identifier}; +use crate::{ + Identifier, + api::EngineAPI, + event::Event, + plugin::{LibraryManager, LibraryMetadata}, +}; -#[derive(Clone)] +use super::{Events, ID}; + +#[derive(Clone, Debug)] pub struct StartEvent { pub modules: Vec>, pub cancelled: bool, pub id: Identifier, } -#[macro_export] -macro_rules! StartEvent { - ($lib_manager:expr, $api:expr) => { - $api.event_bus.handle( + +impl Events { + pub fn StartEvent(api: &mut EngineAPI, lib_manager: &mut LibraryManager) { + api.event_bus.handle( ID("core", "start_event"), - &mut events::start_event::StartEvent { + &mut StartEvent { cancelled: false, id: ID("core", "start_event").clone(), - modules: $lib_manager + modules: lib_manager .libraries .values() .cloned() @@ -24,8 +31,9 @@ macro_rules! StartEvent { .collect(), }, ); - }; + } } + impl Event for StartEvent { fn clone_box(&self) -> Box { Box::new(self.clone()) diff --git a/src/macros.rs b/src/macros.rs index c90edc8..fe5c161 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -1,6 +1,6 @@ #[macro_export] macro_rules! register_event { - ($api:expr,$name:ident,$default_state:expr) => { + ($api:expr,$mod_id:ident,$name:ident,$default_state:expr) => { use $crate::Registry; let $name = ID("core", stringify!($name)); $api.event_bus @@ -8,9 +8,8 @@ macro_rules! register_event { .register(Arc::new($default_state), $name.clone()); }; } - #[macro_export] -macro_rules! BuildEventHandler { +macro_rules! RegisterEventHandler { ($handler:ident,$event:ty,$mod_ctx:ty, $handler_fn:expr) => { use std::sync::Arc; pub struct $handler { diff --git a/tests/event_tests.rs b/tests/event_tests.rs index dba0641..bcce944 100644 --- a/tests/event_tests.rs +++ b/tests/event_tests.rs @@ -1,5 +1,5 @@ use enginelib::{ - BuildEventHandler, Registry, + RegisterEventHandler, Registry, api::EngineAPI, event::{Event, EventCTX, EventHandler}, events::ID, @@ -42,7 +42,7 @@ fn test_event_registration_and_handling() { } // Create a test handler - BuildEventHandler!(TestHandler, TestEvent, |event: &mut TestEvent| { + RegisterEventHandler!(TestHandler, TestEvent, |event: &mut TestEvent| { event.value += 1; }); From 6c13dd5b27b38f36083cd92b62dda3bd5f314b4d Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 28 Feb 2025 20:45:41 +0000 Subject: [PATCH 082/163] feature --- src/event.rs | 43 +++++++++---------------------------------- src/macros.rs | 2 +- tests/event_tests.rs | 2 +- 3 files changed, 11 insertions(+), 36 deletions(-) diff --git a/src/event.rs b/src/event.rs index 657437a..0099a97 100644 --- a/src/event.rs +++ b/src/event.rs @@ -1,10 +1,10 @@ use crate::Identifier; use crate::Registry; -use crate::plugin::LibraryInstance; use std::any::Any; use std::collections::HashMap; -use std::process; +use std::fmt::Debug; use std::sync::Arc; +use tracing::instrument; pub use tracing::{debug, error, event, info, warn}; // The Actual Fuck // this fucking piece of god given code saves so much time and wastes soo much time @@ -29,8 +29,12 @@ pub struct EventBus { pub event_registry: EngineEventRegistry, pub event_handler_registry: EngineEventHandlerRegistry, } - -pub trait Event: Any + Send + Sync { +impl Debug for EventBus { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + Ok(()) + } +} +pub trait Event: Any + Send + Sync + Debug { fn clone_box(&self) -> Box; fn cancel(&mut self); fn is_cancelled(&self) -> bool; @@ -86,38 +90,9 @@ impl Registry for EngineEventRegistry { self.events.get(identifier).map(|obj| obj.clone_box()) } } -#[derive(Clone)] -pub struct OnStartEvent { - pub modules: Vec>, - pub cancelled: bool, - pub id: Identifier, -} - -impl Event for OnStartEvent { - fn clone_box(&self) -> Box { - Box::new(self.clone()) - } - - fn cancel(&mut self) { - self.cancelled = true; - process::exit(0) - } - fn is_cancelled(&self) -> bool { - self.cancelled - } - fn get_id(&self) -> Identifier { - self.id.clone() - } - fn as_any(&self) -> &dyn Any { - self - } - - fn as_any_mut(&mut self) -> &mut dyn Any { - self - } -} impl EventBus { + #[instrument] pub fn handle(&self, id: Identifier, event: &mut T) { debug!("EventBus: Processing event {}.{}", id.0, id.1); let handlers: Option<&Vec>> = diff --git a/src/macros.rs b/src/macros.rs index fe5c161..3927183 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -2,7 +2,7 @@ macro_rules! register_event { ($api:expr,$mod_id:ident,$name:ident,$default_state:expr) => { use $crate::Registry; - let $name = ID("core", stringify!($name)); + let $name = ID(stringify!(mod_id), stringify!($name)); $api.event_bus .event_registry .register(Arc::new($default_state), $name.clone()); diff --git a/tests/event_tests.rs b/tests/event_tests.rs index bcce944..4ed90aa 100644 --- a/tests/event_tests.rs +++ b/tests/event_tests.rs @@ -13,7 +13,7 @@ fn test_event_registration_and_handling() { let mut api = EngineAPI::default(); // Create a test event - #[derive(Clone)] + #[derive(Clone, Debug)] struct TestEvent { pub value: i32, pub cancelled: bool, From 2149163a9f14460e4620f34c44ee20fbe68304dd Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 28 Feb 2025 21:18:33 +0000 Subject: [PATCH 083/163] major changes --- src/events/cgrpc_event.rs | 8 +++++--- src/events/mod.rs | 10 ++++++++++ src/macros.rs | 5 +++-- tests/event_tests.rs | 6 ++++++ 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/events/cgrpc_event.rs b/src/events/cgrpc_event.rs index 1f5473a..b152384 100644 --- a/src/events/cgrpc_event.rs +++ b/src/events/cgrpc_event.rs @@ -12,8 +12,7 @@ pub struct CgrpcEvent { } #[macro_export] macro_rules! RegisterCgrpcEventHandler { - ($handler:ident,$handler_id:expr,$handler_fn:expr) => { - use enginelib::events::cgrpc_event::CgrpcEvent; + ($handler:ident,$handler_mod_id:ident,$handler_id:ident,$handler_fn:expr) => { pub struct $handler; impl EventHandler for $handler { fn handle(&self, event: &mut dyn Event) { @@ -24,7 +23,10 @@ macro_rules! RegisterCgrpcEventHandler { } impl EventCTX for $handler { fn handleCTX(&self, event: &mut CgrpcEvent) { - $handler_fn(event) + let id: (String, String) = (stringify!(handler_mod_id), stringify!(handler_id)); + if (id == event.handler_id) { + $handler_fn(event) + } } } }; diff --git a/src/events/mod.rs b/src/events/mod.rs index 2d543bd..9520d00 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -11,6 +11,16 @@ pub fn ID(namespace: &str, id: &str) -> Identifier { impl Events { pub fn init(api: &mut EngineAPI) { + crate::register_event!( + api, + core, + cgrpc_event, + crate::events::cgrpc_event::CgrpcEvent { + cancelled: false, + handler_id: ("".to_string(), "".to_string()), + id: cgrpc_event.clone() + } + ); //Register Events to the Default impl for less boilerplate crate::register_event!( api, diff --git a/src/macros.rs b/src/macros.rs index 3927183..0bcbf7e 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -1,13 +1,14 @@ #[macro_export] macro_rules! register_event { - ($api:expr,$mod_id:ident,$name:ident,$default_state:expr) => { + ($api:expr,$mod_id:ident,$name:ident,$default_state:expr) => {{ use $crate::Registry; let $name = ID(stringify!(mod_id), stringify!($name)); $api.event_bus .event_registry .register(Arc::new($default_state), $name.clone()); - }; + }}; } + #[macro_export] macro_rules! RegisterEventHandler { ($handler:ident,$event:ty,$mod_ctx:ty, $handler_fn:expr) => { diff --git a/tests/event_tests.rs b/tests/event_tests.rs index 4ed90aa..f825400 100644 --- a/tests/event_tests.rs +++ b/tests/event_tests.rs @@ -7,6 +7,12 @@ use enginelib::{ use std::sync::Arc; use tracing_test::traced_test; +#[traced_test] +#[test] +fn id() { + assert!(ID("namespace", "id") == ID("namespace", "id")) +} + #[traced_test] #[test] fn test_event_registration_and_handling() { From d33849c55e0c6c86f5f94182ccf4c2fc9b1473fe Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 28 Feb 2025 22:07:10 +0000 Subject: [PATCH 084/163] temp cgrpc --- src/events/cgrpc_event.rs | 16 ++++++++++++++-- src/events/mod.rs | 6 ++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/events/cgrpc_event.rs b/src/events/cgrpc_event.rs index b152384..dd722f3 100644 --- a/src/events/cgrpc_event.rs +++ b/src/events/cgrpc_event.rs @@ -1,4 +1,7 @@ -use std::any::Any; +use std::{ + any::Any, + sync::{Arc, RwLock}, +}; use crate::{Identifier, api::EngineAPI, event::Event}; @@ -9,6 +12,8 @@ pub struct CgrpcEvent { pub cancelled: bool, pub id: Identifier, pub handler_id: Identifier, + pub payload: Vec, + pub output: Arc>>, } #[macro_export] macro_rules! RegisterCgrpcEventHandler { @@ -32,13 +37,20 @@ macro_rules! RegisterCgrpcEventHandler { }; } impl Events { - pub fn CgrpcEvent(api: &mut EngineAPI, handler_id: Identifier) { + pub fn CgrpcEvent( + api: &mut EngineAPI, + handler_id: Identifier, + payload: Vec, + output: Arc>>, + ) { api.event_bus.handle( ID("core", "cgrpc_event"), &mut CgrpcEvent { cancelled: false, id: ID("core", "cgrpc_event"), handler_id, + payload, + output, }, ); } diff --git a/src/events/mod.rs b/src/events/mod.rs index 9520d00..20bee72 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -1,6 +1,6 @@ use crate::Identifier; use crate::api::EngineAPI; -use std::sync::Arc; +use std::sync::{Arc, RwLock}; pub mod cgrpc_event; pub mod start_event; @@ -18,7 +18,9 @@ impl Events { crate::events::cgrpc_event::CgrpcEvent { cancelled: false, handler_id: ("".to_string(), "".to_string()), - id: cgrpc_event.clone() + id: cgrpc_event.clone(), + payload: Vec::new(), + output: Arc::new(RwLock::new(Vec::new())) } ); //Register Events to the Default impl for less boilerplate From 8eb165dedd35d86e9fe66afb179cee4afd4fb39a Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 28 Feb 2025 23:14:01 +0000 Subject: [PATCH 085/163] fix --- src/events/cgrpc_event.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/events/cgrpc_event.rs b/src/events/cgrpc_event.rs index dd722f3..fe635cf 100644 --- a/src/events/cgrpc_event.rs +++ b/src/events/cgrpc_event.rs @@ -28,7 +28,10 @@ macro_rules! RegisterCgrpcEventHandler { } impl EventCTX for $handler { fn handleCTX(&self, event: &mut CgrpcEvent) { - let id: (String, String) = (stringify!(handler_mod_id), stringify!(handler_id)); + let id: (String, String) = ( + stringify!(handler_mod_id).to_string(), + stringify!(handler_id).to_string(), + ); if (id == event.handler_id) { $handler_fn(event) } From d2e53393d509b5bf5ac10d261ba48706bab876cc Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 28 Feb 2025 23:48:47 +0000 Subject: [PATCH 086/163] god fuck me --- src/macros.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index 0bcbf7e..01af769 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -2,10 +2,10 @@ macro_rules! register_event { ($api:expr,$mod_id:ident,$name:ident,$default_state:expr) => {{ use $crate::Registry; - let $name = ID(stringify!(mod_id), stringify!($name)); + let id = ID(stringify!($mod_id), stringify!($name)); $api.event_bus .event_registry - .register(Arc::new($default_state), $name.clone()); + .register(Arc::new($default_state), id.clone()); }}; } From c8ebdacb18728608b78592b89c1c7bbb954e862b Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Fri, 28 Feb 2025 23:53:23 +0000 Subject: [PATCH 087/163] god fuck me --- src/events/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/events/mod.rs b/src/events/mod.rs index 20bee72..553bd4c 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -18,7 +18,7 @@ impl Events { crate::events::cgrpc_event::CgrpcEvent { cancelled: false, handler_id: ("".to_string(), "".to_string()), - id: cgrpc_event.clone(), + id: ("core".to_string(), "cgrpc_event".to_string()), payload: Vec::new(), output: Arc::new(RwLock::new(Vec::new())) } @@ -30,8 +30,8 @@ impl Events { start_event, crate::events::start_event::StartEvent { modules: vec![], - id: start_event.clone(), cancelled: false, + id: ("core".to_string(), "start_event".to_string()) } ); } From f3b1eea3ccf745c3ce619dd7bee96221a30bc876 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 1 Mar 2025 00:04:28 +0000 Subject: [PATCH 088/163] god fuck me --- src/events/cgrpc_event.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/events/cgrpc_event.rs b/src/events/cgrpc_event.rs index fe635cf..61ef1b6 100644 --- a/src/events/cgrpc_event.rs +++ b/src/events/cgrpc_event.rs @@ -32,6 +32,7 @@ macro_rules! RegisterCgrpcEventHandler { stringify!(handler_mod_id).to_string(), stringify!(handler_id).to_string(), ); + info!("ID Check"); if (id == event.handler_id) { $handler_fn(event) } From bba579e3a7b8a5036ee81ea0dc5ab2aafa34a7eb Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 1 Mar 2025 00:08:16 +0000 Subject: [PATCH 089/163] god fuck me --- src/events/cgrpc_event.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/events/cgrpc_event.rs b/src/events/cgrpc_event.rs index 61ef1b6..6bcfd0e 100644 --- a/src/events/cgrpc_event.rs +++ b/src/events/cgrpc_event.rs @@ -32,7 +32,10 @@ macro_rules! RegisterCgrpcEventHandler { stringify!(handler_mod_id).to_string(), stringify!(handler_id).to_string(), ); - info!("ID Check"); + info!( + "ID Check, req {}:{} curr {}:{}", + event.handler_id.0, handler_id.handler_id.1, id.0, id.1 + ); if (id == event.handler_id) { $handler_fn(event) } From 5d84f6a2282b2162062f934b87e8339c1e449331 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 1 Mar 2025 00:12:21 +0000 Subject: [PATCH 090/163] god fuck me --- src/events/cgrpc_event.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/events/cgrpc_event.rs b/src/events/cgrpc_event.rs index 6bcfd0e..521ff34 100644 --- a/src/events/cgrpc_event.rs +++ b/src/events/cgrpc_event.rs @@ -34,7 +34,7 @@ macro_rules! RegisterCgrpcEventHandler { ); info!( "ID Check, req {}:{} curr {}:{}", - event.handler_id.0, handler_id.handler_id.1, id.0, id.1 + event.handler_id.0, event.handler_id.handler_id.1, id.0, id.1 ); if (id == event.handler_id) { $handler_fn(event) From 3a240123fe813afe96c54dd24047ceaf97620d32 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 1 Mar 2025 00:13:25 +0000 Subject: [PATCH 091/163] god fuck me --- src/events/cgrpc_event.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/events/cgrpc_event.rs b/src/events/cgrpc_event.rs index 521ff34..b906f32 100644 --- a/src/events/cgrpc_event.rs +++ b/src/events/cgrpc_event.rs @@ -29,8 +29,8 @@ macro_rules! RegisterCgrpcEventHandler { impl EventCTX for $handler { fn handleCTX(&self, event: &mut CgrpcEvent) { let id: (String, String) = ( - stringify!(handler_mod_id).to_string(), - stringify!(handler_id).to_string(), + stringify!($handler_mod_id).to_string(), + stringify!($handler_id).to_string(), ); info!( "ID Check, req {}:{} curr {}:{}", From cde7bce3665aa849ebb04994f0d1407b577e1d5e Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 1 Mar 2025 00:17:38 +0000 Subject: [PATCH 092/163] god fuck me --- src/events/cgrpc_event.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/events/cgrpc_event.rs b/src/events/cgrpc_event.rs index b906f32..1103619 100644 --- a/src/events/cgrpc_event.rs +++ b/src/events/cgrpc_event.rs @@ -34,7 +34,7 @@ macro_rules! RegisterCgrpcEventHandler { ); info!( "ID Check, req {}:{} curr {}:{}", - event.handler_id.0, event.handler_id.handler_id.1, id.0, id.1 + event.handler_id.0, event.handler_id.1, id.0, id.1 ); if (id == event.handler_id) { $handler_fn(event) From 5183b9831e7327440481a7ed7c27981af9aa3d1e Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 1 Mar 2025 00:21:09 +0000 Subject: [PATCH 093/163] god fuck me --- src/events/cgrpc_event.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/events/cgrpc_event.rs b/src/events/cgrpc_event.rs index 1103619..a577fd8 100644 --- a/src/events/cgrpc_event.rs +++ b/src/events/cgrpc_event.rs @@ -32,7 +32,7 @@ macro_rules! RegisterCgrpcEventHandler { stringify!($handler_mod_id).to_string(), stringify!($handler_id).to_string(), ); - info!( + debug!( "ID Check, req {}:{} curr {}:{}", event.handler_id.0, event.handler_id.1, id.0, id.1 ); From 147c6ff7d211f362549fb1a18b99c99f930f8c4e Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 19 Mar 2025 16:10:58 +0000 Subject: [PATCH 094/163] better queue system that allows for faster ops --- src/task.rs | 60 ++++++++++++++++++++++++++++---------------- tests/event_tests.rs | 40 +++++++++++++++++++++++------ 2 files changed, 70 insertions(+), 30 deletions(-) diff --git a/src/task.rs b/src/task.rs index 4b5716f..fa06df5 100644 --- a/src/task.rs +++ b/src/task.rs @@ -1,44 +1,60 @@ +use std::collections::HashMap; +use std::sync::Mutex; use std::{fmt::Debug, sync::Arc}; use crate::api::EngineAPI; use crate::{Identifier, Registry}; use serde::{Deserialize, Serialize}; use tracing::{error, instrument, warn}; -pub type StoredTask = (Identifier, Vec); +#[derive(Debug, Default, Clone, Serialize, Deserialize)] +pub struct StoredTask { + bytes: Vec, +} #[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct TaskQueueStorage { - pub tasks: Vec>, + pub tasks: HashMap>>, } impl TaskQueueStorage { pub fn from_task_queue(task_queue: &TaskQueue) -> Self { - let mut tasks = Vec::new(); - for task in &task_queue.tasks { - tasks.push(Box::new((task.get_id(), task.to_bytes()))); + let mut map: HashMap>> = HashMap::new(); + for (id, queue) in task_queue.tasks.iter() { + let task_vec: Vec> = queue + .lock() + .unwrap() + .iter() + .filter_map(|task| Some(task.to_bytes())) + .filter_map(|task_b| Some(StoredTask { bytes: task_b })) + .filter_map(|task_struct| Some(Box::new(task_struct))) + .collect(); + map.insert(id.clone(), task_vec); } - Self { tasks } + Self { tasks: map } } } #[derive(Debug, Default, Clone)] pub struct TaskQueue { - pub tasks: Vec>, + pub tasks: HashMap>>>>, } impl TaskQueue { pub fn from_storage(storage: &TaskQueueStorage, api: &EngineAPI) -> Self { - let tasks = storage - .tasks - .iter() - .filter_map(|task_bytes| match api.task_registry.get(&task_bytes.0) { - Some(x) => Some(x.from_bytes(&task_bytes.1)), - None => { - error!( - "TaskQueue: Failed to deserialize task {}.{} - invalid data", - task_bytes.0.0, task_bytes.0.1 - ); - None - } - }) - .collect(); - TaskQueue { tasks } + let mut map: HashMap<(String, String), Arc>>>> = HashMap::new(); + for (id, tasks) in storage.tasks.iter() { + let task_vec: Vec> = tasks + .iter() + .filter_map(|task_bytes| match api.task_registry.get(&id) { + Some(x) => Some(x.from_bytes(&task_bytes.bytes)), + None => { + error!( + "TaskQueue: Failed to deserialize task {}.{} - invalid data", + &id.0, &id.1 + ); + None + } + }) + .collect(); + map.insert(id.clone(), Arc::new(Mutex::new(task_vec))); + } + TaskQueue { tasks: map } } } diff --git a/tests/event_tests.rs b/tests/event_tests.rs index f825400..2c302f6 100644 --- a/tests/event_tests.rs +++ b/tests/event_tests.rs @@ -4,7 +4,7 @@ use enginelib::{ event::{Event, EventCTX, EventHandler}, events::ID, }; -use std::sync::Arc; +use std::sync::{Arc, Mutex}; use tracing_test::traced_test; #[traced_test] @@ -113,11 +113,27 @@ fn test_task_queue() { value: 0, id: ID("test", "test_task"), }; - - api.task_queue.tasks.push(Box::new(task.clone())); - + let id = ("test".into(), "test_task".into()); + api.task_queue + .tasks + .insert(id.clone(), Arc::new(Mutex::new(Vec::new()))); + api.task_queue + .tasks + .get(&id) + .unwrap() + .lock() + .unwrap() + .push(Box::new(task)); // Test task execution - if let Some(task) = api.task_queue.tasks.first_mut() { + if let Some(task) = api + .task_queue + .tasks + .get(&id) + .unwrap() + .lock() + .unwrap() + .first_mut() + { let task: &mut TestTask = unsafe { &mut *((task as *mut Box) as *mut TestTask) }; let mut task = task.clone(); task.run(Some(Runner::CPU)); @@ -154,15 +170,23 @@ fn test_task_serialization() { Box::new(bincode::deserialize::(bytes).unwrap()) } } - + let id = ID("test", "test_task"); let mut api = EngineAPI::default(); let task = TestTask { value: 42, id: ID("test", "test_task"), }; - api.task_queue.tasks.push(Box::new(task)); - + api.task_queue + .tasks + .insert(id.clone(), Arc::new(Mutex::new(Vec::new()))); + api.task_queue + .tasks + .get(&id) + .unwrap() + .lock() + .unwrap() + .push(Box::new(task)); // Test serialization let storage = TaskQueueStorage::from_task_queue(&api.task_queue); assert_eq!(storage.tasks.len(), 1); From 2ea5649f2de9a1221609dcd65afb52179c17534a Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 19 Mar 2025 16:52:49 +0000 Subject: [PATCH 095/163] progress on tasks --- Cargo.lock | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 1 + src/task.rs | 11 ++++ 3 files changed, 185 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 061b22f..e032bf1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -35,6 +35,21 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "anyhow" version = "1.0.96" @@ -79,6 +94,12 @@ dependencies = [ "serde", ] +[[package]] +name = "bumpalo" +version = "3.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" + [[package]] name = "camino" version = "1.1.9" @@ -111,18 +132,48 @@ dependencies = [ "thiserror 2.0.11", ] +[[package]] +name = "cc" +version = "1.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +dependencies = [ + "shlex", +] + [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "chrono" +version = "0.4.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-link", +] + [[package]] name = "clru" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59" +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + [[package]] name = "crc32fast" version = "1.4.2" @@ -250,6 +301,7 @@ name = "enginelib" version = "0.2.0" dependencies = [ "bincode", + "chrono", "directories", "libloading", "macros", @@ -950,6 +1002,29 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + [[package]] name = "icu_collections" version = "1.5.0" @@ -1140,6 +1215,16 @@ dependencies = [ "jiff-tzdb", ] +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -1269,6 +1354,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + [[package]] name = "num_threads" version = "0.1.7" @@ -1574,6 +1668,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook" version = "0.3.17" @@ -2005,6 +2105,64 @@ dependencies = [ "wit-bindgen-rt", ] +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + [[package]] name = "winapi" version = "0.3.9" @@ -2036,6 +2194,21 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-link" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" + [[package]] name = "windows-sys" version = "0.48.0" diff --git a/Cargo.toml b/Cargo.toml index 48c420a..379b5ba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,6 +17,7 @@ toml = "0.8.19" tracing = "0.1.41" tracing-subscriber = "0.3.18" tracing-test = "0.2.5" +chrono = { version = "0.4.40", features = ["serde"] } [build-dependencies] vergen-gix = { version = "1.0.0", features = ["build", "cargo", "rustc"] } [profile.release] diff --git a/src/task.rs b/src/task.rs index fa06df5..331998a 100644 --- a/src/task.rs +++ b/src/task.rs @@ -4,6 +4,7 @@ use std::{fmt::Debug, sync::Arc}; use crate::api::EngineAPI; use crate::{Identifier, Registry}; +use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use tracing::{error, instrument, warn}; #[derive(Debug, Default, Clone, Serialize, Deserialize)] @@ -11,6 +12,12 @@ pub struct StoredTask { bytes: Vec, } #[derive(Debug, Default, Clone, Serialize, Deserialize)] +pub struct StoredExecutingTask { + bytes: Vec, + user_id: String, + given_at: DateTime, +} +#[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct TaskQueueStorage { pub tasks: HashMap>>, } @@ -35,6 +42,10 @@ impl TaskQueueStorage { pub struct TaskQueue { pub tasks: HashMap>>>>, } +#[derive(Debug, Default, Clone, Serialize, Deserialize)] +pub struct ExecutingTasks { + pub tasks: HashMap, +} impl TaskQueue { pub fn from_storage(storage: &TaskQueueStorage, api: &EngineAPI) -> Self { let mut map: HashMap<(String, String), Arc>>>> = HashMap::new(); From cd5ed2f2114ab6584b5593a9040875cb60ef359a Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 19 Mar 2025 17:12:04 +0000 Subject: [PATCH 096/163] optimize --- src/task.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/task.rs b/src/task.rs index 331998a..e7c6831 100644 --- a/src/task.rs +++ b/src/task.rs @@ -29,9 +29,11 @@ impl TaskQueueStorage { .lock() .unwrap() .iter() - .filter_map(|task| Some(task.to_bytes())) - .filter_map(|task_b| Some(StoredTask { bytes: task_b })) - .filter_map(|task_struct| Some(Box::new(task_struct))) + .map(|task| { + let task_b = task.to_bytes(); + let task_struct = StoredTask { bytes: task_b }; + Box::new(task_struct) + }) .collect(); map.insert(id.clone(), task_vec); } From a71674ff528a8b527973aa3c7f3dad3e3d7232b3 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 19 Mar 2025 17:12:23 +0000 Subject: [PATCH 097/163] fmt --- src/api.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/api.rs b/src/api.rs index 57f9db6..bb3786d 100644 --- a/src/api.rs +++ b/src/api.rs @@ -1,9 +1,9 @@ -use tracing::{debug, Level}; +use tracing::{Level, debug}; use crate::{ + Identifier, Registry, event::{EngineEventHandlerRegistry, EngineEventRegistry, EventBus}, task::{Task, TaskQueue}, - Identifier, Registry, }; pub use bincode::deserialize; pub use bincode::serialize; From 8942097d7bc4fdb4408c9036b08b8fd024e2ed54 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 19 Mar 2025 17:37:11 +0000 Subject: [PATCH 098/163] better init --- Cargo.lock | 142 ++++++++++++++++++++++++++++++++++++++++------ Cargo.toml | 1 + src/api.rs | 23 ++++++++ src/events/mod.rs | 7 ++- 4 files changed, 154 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e032bf1..7fe4952 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -77,6 +77,12 @@ dependencies = [ "serde", ] +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + [[package]] name = "bitflags" version = "2.8.0" @@ -100,6 +106,12 @@ version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "camino" version = "1.1.9" @@ -183,6 +195,21 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + [[package]] name = "darling" version = "0.20.10" @@ -307,6 +334,7 @@ dependencies = [ "macros", "oxifs", "serde", + "sled", "toml", "tracing", "tracing-subscriber", @@ -382,6 +410,25 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "getrandom" version = "0.2.15" @@ -442,7 +489,7 @@ dependencies = [ "gix-utils", "gix-validate", "once_cell", - "parking_lot", + "parking_lot 0.12.3", "signal-hook", "smallvec", "thiserror 2.0.11", @@ -533,7 +580,7 @@ version = "0.14.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11365144ef93082f3403471dbaa94cfe4b5e72743bdb9560719a251d439f4cee" dependencies = [ - "bitflags", + "bitflags 2.8.0", "bstr", "gix-path", "libc", @@ -616,7 +663,7 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaf69a6bec0a3581567484bf99a4003afcaf6c469fd4214352517ea355cf3435" dependencies = [ - "bitflags", + "bitflags 2.8.0", "bstr", "gix-features", "gix-path", @@ -640,7 +687,7 @@ checksum = "0ef65b256631078ef733bc5530c4e6b1c2e7d5c2830b75d4e9034ab3997d18fe" dependencies = [ "gix-hash", "hashbrown 0.14.5", - "parking_lot", + "parking_lot 0.12.3", ] [[package]] @@ -649,7 +696,7 @@ version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "270645fd20556b64c8ffa1540d921b281e6994413a0ca068596f97e9367a257a" dependencies = [ - "bitflags", + "bitflags 2.8.0", "bstr", "filetime", "fnv", @@ -719,7 +766,7 @@ dependencies = [ "gix-pack", "gix-path", "gix-quote", - "parking_lot", + "parking_lot 0.12.3", "tempfile", "thiserror 2.0.11", ] @@ -838,7 +885,7 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61e1ddc474405a68d2ce8485705dd72fe6ce959f2f5fe718601ead5da2c8f9e7" dependencies = [ - "bitflags", + "bitflags 2.8.0", "bstr", "gix-commitgraph", "gix-date", @@ -871,7 +918,7 @@ version = "0.10.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d84dae13271f4313f8d60a166bf27e54c968c7c33e2ffd31c48cafe5da649875" dependencies = [ - "bitflags", + "bitflags 2.8.0", "gix-path", "libc", "windows-sys 0.52.0", @@ -898,7 +945,7 @@ dependencies = [ "gix-fs", "libc", "once_cell", - "parking_lot", + "parking_lot 0.12.3", "signal-hook", "signal-hook-registry", "tempfile", @@ -932,7 +979,7 @@ version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ed47d648619e23e93f971d2bba0d10c1100e54ef95d2981d609907a8cabac89" dependencies = [ - "bitflags", + "bitflags 2.8.0", "gix-commitgraph", "gix-date", "gix-hash", @@ -1180,6 +1227,15 @@ dependencies = [ "hashbrown 0.15.2", ] +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + [[package]] name = "itoa" version = "1.0.14" @@ -1253,9 +1309,9 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags", + "bitflags 2.8.0", "libc", - "redox_syscall", + "redox_syscall 0.5.9", ] [[package]] @@ -1400,6 +1456,17 @@ dependencies = [ "tempfile", ] +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + [[package]] name = "parking_lot" version = "0.12.3" @@ -1407,7 +1474,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", ] [[package]] @@ -1418,7 +1499,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.5.9", "smallvec", "windows-targets 0.52.6", ] @@ -1472,7 +1553,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a266d8d6020c61a437be704c5e618037588e1985c7dbb7bf8d265db84cffe325" dependencies = [ "log", - "parking_lot", + "parking_lot 0.12.3", ] [[package]] @@ -1484,13 +1565,22 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "redox_syscall" version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f" dependencies = [ - "bitflags", + "bitflags 2.8.0", ] [[package]] @@ -1563,7 +1653,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags", + "bitflags 2.8.0", "errno", "libc", "linux-raw-sys", @@ -1693,6 +1783,22 @@ dependencies = [ "libc", ] +[[package]] +name = "sled" +version = "0.34.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935" +dependencies = [ + "crc32fast", + "crossbeam-epoch", + "crossbeam-utils", + "fs2", + "fxhash", + "libc", + "log", + "parking_lot 0.11.2", +] + [[package]] name = "smallvec" version = "1.14.0" @@ -2381,7 +2487,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" dependencies = [ - "bitflags", + "bitflags 2.8.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 379b5ba..d22407a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,6 +18,7 @@ tracing = "0.1.41" tracing-subscriber = "0.3.18" tracing-test = "0.2.5" chrono = { version = "0.4.40", features = ["serde"] } +sled = "0.34.7" [build-dependencies] vergen-gix = { version = "1.0.0", features = ["build", "cargo", "rustc"] } [profile.release] diff --git a/src/api.rs b/src/api.rs index bb3786d..7ef4f43 100644 --- a/src/api.rs +++ b/src/api.rs @@ -3,6 +3,8 @@ use tracing::{Level, debug}; use crate::{ Identifier, Registry, event::{EngineEventHandlerRegistry, EngineEventRegistry, EventBus}, + events::Events, + plugin::LibraryManager, task::{Task, TaskQueue}, }; pub use bincode::deserialize; @@ -12,11 +14,16 @@ pub struct EngineAPI { pub task_queue: TaskQueue, pub task_registry: EngineTaskRegistry, pub event_bus: EventBus, + pub db: sled::Db, + pub lib_manager: LibraryManager, } + impl Default for EngineAPI { fn default() -> Self { Self { task_queue: TaskQueue::default(), + db: sled::open("engine_db").unwrap(), + lib_manager: LibraryManager::default(), task_registry: EngineTaskRegistry::default(), event_bus: EventBus { event_registry: EngineEventRegistry { @@ -30,6 +37,22 @@ impl Default for EngineAPI { } } impl EngineAPI { + pub fn init(api: &mut Self) { + Self::setup_logger(); + Events::init(api); + let mut newLibManager = LibraryManager::default(); + newLibManager.load_modules(api); + api.lib_manager = newLibManager; + } + pub fn init_dev(api: &mut Self) { + Self::setup_logger(); + Events::init(api); + let mut newLibManager = LibraryManager::default(); + newLibManager + .load_library("./target/release/libengine_core.so", api) + .unwrap(); + api.lib_manager = newLibManager; + } pub fn setup_logger() { #[cfg(debug_assertions)] tracing_subscriber::FmtSubscriber::builder() diff --git a/src/events/mod.rs b/src/events/mod.rs index 553bd4c..9581f68 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -1,6 +1,6 @@ use crate::Identifier; use crate::api::EngineAPI; -use std::sync::{Arc, RwLock}; +use std::sync::{Arc, Mutex, RwLock}; pub mod cgrpc_event; pub mod start_event; @@ -11,6 +11,11 @@ pub fn ID(namespace: &str, id: &str) -> Identifier { impl Events { pub fn init(api: &mut EngineAPI) { + for (id, tsk) in api.task_registry.tasks.iter() { + api.task_queue + .tasks + .insert(id.clone(), Arc::new(Mutex::new(Vec::new()))); + } crate::register_event!( api, core, From 34135078aa65e164907c6e317edcd4fb1e9438cc Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 19 Mar 2025 17:39:40 +0000 Subject: [PATCH 099/163] fix bug --- src/events/start_event.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/events/start_event.rs b/src/events/start_event.rs index d90c3a2..c4d0da5 100644 --- a/src/events/start_event.rs +++ b/src/events/start_event.rs @@ -17,7 +17,8 @@ pub struct StartEvent { } impl Events { - pub fn StartEvent(api: &mut EngineAPI, lib_manager: &mut LibraryManager) { + pub fn StartEvent(api: &mut EngineAPI) { + let lib_manager = api.lib_manager.clone(); api.event_bus.handle( ID("core", "start_event"), &mut StartEvent { From 166237d696cefc73873da456dc2546b44e2bdb54 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 19 Mar 2025 17:44:46 +0000 Subject: [PATCH 100/163] re export logging --- src/prelude.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/prelude.rs b/src/prelude.rs index 0e64149..c94b3d2 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -1 +1,2 @@ pub use macros; +pub use tracing::{error, instrument, warn}; From fb5e9f6b932772851981545488ffcc40104d7cc0 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 19 Mar 2025 17:46:23 +0000 Subject: [PATCH 101/163] uneeded logging --- src/events/cgrpc_event.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/events/cgrpc_event.rs b/src/events/cgrpc_event.rs index a577fd8..21c4fc8 100644 --- a/src/events/cgrpc_event.rs +++ b/src/events/cgrpc_event.rs @@ -32,10 +32,6 @@ macro_rules! RegisterCgrpcEventHandler { stringify!($handler_mod_id).to_string(), stringify!($handler_id).to_string(), ); - debug!( - "ID Check, req {}:{} curr {}:{}", - event.handler_id.0, event.handler_id.1, id.0, id.1 - ); if (id == event.handler_id) { $handler_fn(event) } From f8c9b543e55e98d3c46cccdb9e6a393e4bb2ed5c Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 19 Mar 2025 18:10:19 +0000 Subject: [PATCH 102/163] work on CVE --- src/config.rs | 15 +++++++++++++++ src/lib.rs | 1 + 2 files changed, 16 insertions(+) create mode 100644 src/config.rs diff --git a/src/config.rs b/src/config.rs new file mode 100644 index 0000000..157a616 --- /dev/null +++ b/src/config.rs @@ -0,0 +1,15 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Serialize, Deserialize)] +pub struct ConfigTomlServer { + pub cgrpc_token: Option, // Administrator Token, used to invoke cgrpc reqs. If not preset will default to no protection. + pub port: Option, +} +impl Default for ConfigTomlServer { + fn default() -> Self { + Self { + port: Some("[::1]:50051".into()), + cgrpc_token: None, + } + } +} diff --git a/src/lib.rs b/src/lib.rs index b1b1aec..366adab 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,6 @@ use std::sync::Arc; pub mod api; +pub mod config; pub mod event; pub mod events; #[macro_use] From 135f940f8d2693b97eb0c5b82bf826cf8de1d4be Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 19 Mar 2025 18:18:17 +0000 Subject: [PATCH 103/163] config --- src/config.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/config.rs b/src/config.rs index 157a616..7284bb7 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,3 +1,5 @@ +use std::{fs, io::Error}; + use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize)] @@ -13,3 +15,23 @@ impl Default for ConfigTomlServer { } } } +pub struct Config { + pub config_toml: ConfigTomlServer, +} +impl Config { + #[allow(clippy::new_without_default)] + pub fn new() -> Self { + let mut content: String = "".to_owned(); + let result: Result = fs::read_to_string("config.toml"); + if result.is_ok() { + content = result.unwrap(); + }; + let config_toml: ConfigTomlServer = toml::from_str(&content).unwrap_or_else(|err| { + println!("Failed to parse config file."); + println!("{:#?}", err); + ConfigTomlServer::default() + }); + + Self { config_toml } + } +} From bea928cf5c13ab76e2c1d96fbd6b2ed93afb11d4 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 19 Mar 2025 18:20:25 +0000 Subject: [PATCH 104/163] cfg --- src/api.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/api.rs b/src/api.rs index 7ef4f43..cf487a1 100644 --- a/src/api.rs +++ b/src/api.rs @@ -2,6 +2,7 @@ use tracing::{Level, debug}; use crate::{ Identifier, Registry, + config::Config, event::{EngineEventHandlerRegistry, EngineEventRegistry, EventBus}, events::Events, plugin::LibraryManager, @@ -11,6 +12,7 @@ pub use bincode::deserialize; pub use bincode::serialize; use std::{collections::HashMap, sync::Arc}; pub struct EngineAPI { + pub cfg: Config, pub task_queue: TaskQueue, pub task_registry: EngineTaskRegistry, pub event_bus: EventBus, @@ -21,6 +23,7 @@ pub struct EngineAPI { impl Default for EngineAPI { fn default() -> Self { Self { + cfg: Config::new(), task_queue: TaskQueue::default(), db: sled::open("engine_db").unwrap(), lib_manager: LibraryManager::default(), From d4821107d0f08e1da43b1ff67db12bcea9e92889 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 19 Mar 2025 18:26:23 +0000 Subject: [PATCH 105/163] cfg --- src/config.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/config.rs b/src/config.rs index 7284bb7..0c997da 100644 --- a/src/config.rs +++ b/src/config.rs @@ -5,12 +5,12 @@ use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize)] pub struct ConfigTomlServer { pub cgrpc_token: Option, // Administrator Token, used to invoke cgrpc reqs. If not preset will default to no protection. - pub port: Option, + pub port: String, } impl Default for ConfigTomlServer { fn default() -> Self { Self { - port: Some("[::1]:50051".into()), + port: "[::1]:50051".into(), cgrpc_token: None, } } @@ -31,7 +31,6 @@ impl Config { println!("{:#?}", err); ConfigTomlServer::default() }); - Self { config_toml } } } From 3e00a251e7c2cb6f47dec11e71d2bfaa47d1a6de Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 23 Mar 2025 14:26:21 +0000 Subject: [PATCH 106/163] update lib --- src/api.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/api.rs b/src/api.rs index cf487a1..f542c89 100644 --- a/src/api.rs +++ b/src/api.rs @@ -6,7 +6,7 @@ use crate::{ event::{EngineEventHandlerRegistry, EngineEventRegistry, EventBus}, events::Events, plugin::LibraryManager, - task::{Task, TaskQueue}, + task::{ExecutingTasks, Task, TaskQueue, TaskQueueStorage}, }; pub use bincode::deserialize; pub use bincode::serialize; @@ -14,6 +14,8 @@ use std::{collections::HashMap, sync::Arc}; pub struct EngineAPI { pub cfg: Config, pub task_queue: TaskQueue, + pub executing_tasks: ExecutingTasks, + pub solved_tasks: TaskQueue, pub task_registry: EngineTaskRegistry, pub event_bus: EventBus, pub db: sled::Db, @@ -25,6 +27,8 @@ impl Default for EngineAPI { Self { cfg: Config::new(), task_queue: TaskQueue::default(), + executing_tasks: ExecutingTasks::default(), + solved_tasks: TaskQueue::default(), db: sled::open("engine_db").unwrap(), lib_manager: LibraryManager::default(), task_registry: EngineTaskRegistry::default(), From 78e82c0a09257a28d6c1838c220f759fea72c036 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 29 Mar 2025 23:00:23 +0000 Subject: [PATCH 107/163] auth events --- src/events/admin_auth_event.rs | 83 ++++++++++++++++++++++++++++++++++ src/events/auth_event.rs | 83 ++++++++++++++++++++++++++++++++++ src/events/mod.rs | 3 +- 3 files changed, 168 insertions(+), 1 deletion(-) create mode 100644 src/events/admin_auth_event.rs create mode 100644 src/events/auth_event.rs diff --git a/src/events/admin_auth_event.rs b/src/events/admin_auth_event.rs new file mode 100644 index 0000000..51f7352 --- /dev/null +++ b/src/events/admin_auth_event.rs @@ -0,0 +1,83 @@ +use std::{ + any::Any, + sync::{Arc, RwLock}, +}; + +use crate::{Identifier, api::EngineAPI, event::Event}; + +use super::{Events, ID}; + +#[derive(Clone, Debug)] +pub struct AdminAuthEvent { + pub cancelled: bool, + pub id: Identifier, + pub handler_id: Identifier, + pub payload: Option, + pub output: Arc>, +} +#[macro_export] +macro_rules! RegisterAdminAuthEventHandler { + ($handler:ident,$handler_mod_id:ident,$handler_id:ident,$handler_fn:expr) => { + pub struct $handler; + impl EventHandler for $handler { + fn handle(&self, event: &mut dyn Event) { + let event: &mut CgrpcEvent = + >::get_event::(event); + self.handleCTX(event); + } + } + impl EventCTX for $handler { + fn handleCTX(&self, event: &mut CgrpcEvent) { + let id: (String, String) = ( + stringify!($handler_mod_id).to_string(), + stringify!($handler_id).to_string(), + ); + if (id == event.handler_id) { + $handler_fn(event) + } + } + } + }; +} +impl Events { + pub fn AdminAuthEvent( + api: &mut EngineAPI, + handler_id: Identifier, + payload: Option, + output: Arc>, + ) { + api.event_bus.handle( + ID("core", "admin_auth_event"), + &mut AdminAuthEvent { + cancelled: false, + id: ID("core", "admin_auth_event"), + handler_id, + payload, + output, + }, + ); + } +} + +impl Event for AdminAuthEvent { + fn clone_box(&self) -> Box { + Box::new(self.clone()) + } + + fn cancel(&mut self) { + self.cancelled = true; + } + fn is_cancelled(&self) -> bool { + self.cancelled + } + fn get_id(&self) -> Identifier { + self.id.clone() + } + fn as_any(&self) -> &dyn Any { + self + } + + fn as_any_mut(&mut self) -> &mut dyn Any { + self + } +} diff --git a/src/events/auth_event.rs b/src/events/auth_event.rs new file mode 100644 index 0000000..14d81d6 --- /dev/null +++ b/src/events/auth_event.rs @@ -0,0 +1,83 @@ +use std::{ + any::Any, + sync::{Arc, RwLock}, +}; + +use crate::{Identifier, api::EngineAPI, event::Event}; + +use super::{Events, ID}; + +#[derive(Clone, Debug)] +pub struct AuthEvent { + pub cancelled: bool, + pub id: Identifier, + pub handler_id: Identifier, + pub payload: Option, + pub output: Arc>, +} +#[macro_export] +macro_rules! RegisterAuthEventHandler { + ($handler:ident,$handler_mod_id:ident,$handler_id:ident,$handler_fn:expr) => { + pub struct $handler; + impl EventHandler for $handler { + fn handle(&self, event: &mut dyn Event) { + let event: &mut CgrpcEvent = + >::get_event::(event); + self.handleCTX(event); + } + } + impl EventCTX for $handler { + fn handleCTX(&self, event: &mut CgrpcEvent) { + let id: (String, String) = ( + stringify!($handler_mod_id).to_string(), + stringify!($handler_id).to_string(), + ); + if (id == event.handler_id) { + $handler_fn(event) + } + } + } + }; +} +impl Events { + pub fn AuthEvent( + api: &mut EngineAPI, + handler_id: Identifier, + payload: Option, + output: Arc>, + ) { + api.event_bus.handle( + ID("core", "admin_auth_event"), + &mut AuthEvent { + cancelled: false, + id: ID("core", "admin_auth_event"), + handler_id, + payload, + output, + }, + ); + } +} + +impl Event for AuthEvent { + fn clone_box(&self) -> Box { + Box::new(self.clone()) + } + + fn cancel(&mut self) { + self.cancelled = true; + } + fn is_cancelled(&self) -> bool { + self.cancelled + } + fn get_id(&self) -> Identifier { + self.id.clone() + } + fn as_any(&self) -> &dyn Any { + self + } + + fn as_any_mut(&mut self) -> &mut dyn Any { + self + } +} diff --git a/src/events/mod.rs b/src/events/mod.rs index 9581f68..f4add20 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -1,9 +1,10 @@ use crate::Identifier; use crate::api::EngineAPI; use std::sync::{Arc, Mutex, RwLock}; +pub mod admin_auth_event; +pub mod auth_event; pub mod cgrpc_event; pub mod start_event; - pub struct Events {} pub fn ID(namespace: &str, id: &str) -> Identifier { (namespace.to_string(), id.to_string()) From d7f8cfc2abd73ddcf62d644bf12bf6b7f9fa1f7d Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sat, 29 Mar 2025 23:00:46 +0000 Subject: [PATCH 108/163] fix event id --- src/events/auth_event.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/events/auth_event.rs b/src/events/auth_event.rs index 14d81d6..79a232d 100644 --- a/src/events/auth_event.rs +++ b/src/events/auth_event.rs @@ -47,10 +47,10 @@ impl Events { output: Arc>, ) { api.event_bus.handle( - ID("core", "admin_auth_event"), + ID("core", "auth_event"), &mut AuthEvent { cancelled: false, - id: ID("core", "admin_auth_event"), + id: ID("core", "auth_event"), handler_id, payload, output, From f442c38b4dc1c0b1ce7b1c6f65f216cfd522db30 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 11:30:29 +0100 Subject: [PATCH 109/163] fix bug in auth --- src/events/admin_auth_event.rs | 17 ++--------------- src/events/auth_event.rs | 18 +++--------------- 2 files changed, 5 insertions(+), 30 deletions(-) diff --git a/src/events/admin_auth_event.rs b/src/events/admin_auth_event.rs index 51f7352..97a5e12 100644 --- a/src/events/admin_auth_event.rs +++ b/src/events/admin_auth_event.rs @@ -11,7 +11,6 @@ use super::{Events, ID}; pub struct AdminAuthEvent { pub cancelled: bool, pub id: Identifier, - pub handler_id: Identifier, pub payload: Option, pub output: Arc>, } @@ -28,30 +27,18 @@ macro_rules! RegisterAdminAuthEventHandler { } impl EventCTX for $handler { fn handleCTX(&self, event: &mut CgrpcEvent) { - let id: (String, String) = ( - stringify!($handler_mod_id).to_string(), - stringify!($handler_id).to_string(), - ); - if (id == event.handler_id) { - $handler_fn(event) - } + $handler_fn(event) } } }; } impl Events { - pub fn AdminAuthEvent( - api: &mut EngineAPI, - handler_id: Identifier, - payload: Option, - output: Arc>, - ) { + pub fn AdminAuthEvent(api: &mut EngineAPI, payload: Option, output: Arc>) { api.event_bus.handle( ID("core", "admin_auth_event"), &mut AdminAuthEvent { cancelled: false, id: ID("core", "admin_auth_event"), - handler_id, payload, output, }, diff --git a/src/events/auth_event.rs b/src/events/auth_event.rs index 79a232d..d33801b 100644 --- a/src/events/auth_event.rs +++ b/src/events/auth_event.rs @@ -11,7 +11,6 @@ use super::{Events, ID}; pub struct AuthEvent { pub cancelled: bool, pub id: Identifier, - pub handler_id: Identifier, pub payload: Option, pub output: Arc>, } @@ -28,30 +27,19 @@ macro_rules! RegisterAuthEventHandler { } impl EventCTX for $handler { fn handleCTX(&self, event: &mut CgrpcEvent) { - let id: (String, String) = ( - stringify!($handler_mod_id).to_string(), - stringify!($handler_id).to_string(), - ); - if (id == event.handler_id) { - $handler_fn(event) - } + $handler_fn(event) } } }; } impl Events { - pub fn AuthEvent( - api: &mut EngineAPI, - handler_id: Identifier, - payload: Option, - output: Arc>, - ) { + pub fn AuthEvent(api: &mut EngineAPI, payload: Option, output: Arc>) { api.event_bus.handle( ID("core", "auth_event"), &mut AuthEvent { cancelled: false, id: ID("core", "auth_event"), - handler_id, + payload, output, }, From 49bd15e3e9d3de172a7a1634f8f5c5642fc4dd5a Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 11:58:05 +0100 Subject: [PATCH 110/163] adjust types to match reqs --- src/events/admin_auth_event.rs | 4 ++-- src/events/auth_event.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/events/admin_auth_event.rs b/src/events/admin_auth_event.rs index 97a5e12..617bd5b 100644 --- a/src/events/admin_auth_event.rs +++ b/src/events/admin_auth_event.rs @@ -11,7 +11,7 @@ use super::{Events, ID}; pub struct AdminAuthEvent { pub cancelled: bool, pub id: Identifier, - pub payload: Option, + pub payload: String, pub output: Arc>, } #[macro_export] @@ -33,7 +33,7 @@ macro_rules! RegisterAdminAuthEventHandler { }; } impl Events { - pub fn AdminAuthEvent(api: &mut EngineAPI, payload: Option, output: Arc>) { + pub fn AdminAuthEvent(api: &mut EngineAPI, payload: String, output: Arc>) { api.event_bus.handle( ID("core", "admin_auth_event"), &mut AdminAuthEvent { diff --git a/src/events/auth_event.rs b/src/events/auth_event.rs index d33801b..0236647 100644 --- a/src/events/auth_event.rs +++ b/src/events/auth_event.rs @@ -11,7 +11,7 @@ use super::{Events, ID}; pub struct AuthEvent { pub cancelled: bool, pub id: Identifier, - pub payload: Option, + pub payload: String, pub output: Arc>, } #[macro_export] @@ -33,7 +33,7 @@ macro_rules! RegisterAuthEventHandler { }; } impl Events { - pub fn AuthEvent(api: &mut EngineAPI, payload: Option, output: Arc>) { + pub fn AuthEvent(api: &mut EngineAPI, payload: String, output: Arc>) { api.event_bus.handle( ID("core", "auth_event"), &mut AuthEvent { From e15499b2f3edd33a686286698ae8c47c7e24d81d Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 12:20:35 +0100 Subject: [PATCH 111/163] better auth macro --- src/macros.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/macros.rs b/src/macros.rs index 01af769..0262f92 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -9,6 +9,27 @@ macro_rules! register_event { }}; } +#[macro_export] +macro_rules! CheckAuth { + () => { + let mut api = self.EngineAPI.write().await; + let payload = request + .metadata() + .get("authorization") + .unwrap() + .to_str() + .unwrap() + .to_string(); + let output = Arc::new(RS_RwLock::new(false)); + Events::AdminAuthEvent(&mut api, payload, output.clone()); + return *output.read().unwrap(); + }; +} +#[macro_export] +macro_rules! CheckAdmingAuth { + () => {}; +} + #[macro_export] macro_rules! RegisterEventHandler { ($handler:ident,$event:ty,$mod_ctx:ty, $handler_fn:expr) => { From afe314af4b1ac446619e806f1859558044417f77 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 12:28:15 +0100 Subject: [PATCH 112/163] fix name switch --- src/macros.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index 0262f92..ce37c78 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -10,7 +10,7 @@ macro_rules! register_event { } #[macro_export] -macro_rules! CheckAuth { +macro_rules! CheckAdminAuth { () => { let mut api = self.EngineAPI.write().await; let payload = request @@ -26,7 +26,7 @@ macro_rules! CheckAuth { }; } #[macro_export] -macro_rules! CheckAdmingAuth { +macro_rules! CheckAuth { () => {}; } From 29e2c65f64366361c8d95ca46a23977d612f217c Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 12:38:52 +0100 Subject: [PATCH 113/163] fix --- src/macros.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index ce37c78..3a08104 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -11,7 +11,7 @@ macro_rules! register_event { #[macro_export] macro_rules! CheckAdminAuth { - () => { + () => {{ let mut api = self.EngineAPI.write().await; let payload = request .metadata() @@ -23,7 +23,7 @@ macro_rules! CheckAdminAuth { let output = Arc::new(RS_RwLock::new(false)); Events::AdminAuthEvent(&mut api, payload, output.clone()); return *output.read().unwrap(); - }; + }}; } #[macro_export] macro_rules! CheckAuth { From efa2bb166640d9d2b3f33aa1640997f196d367f9 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 12:41:20 +0100 Subject: [PATCH 114/163] remove auth macro --- src/macros.rs | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index 3a08104..01af769 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -9,27 +9,6 @@ macro_rules! register_event { }}; } -#[macro_export] -macro_rules! CheckAdminAuth { - () => {{ - let mut api = self.EngineAPI.write().await; - let payload = request - .metadata() - .get("authorization") - .unwrap() - .to_str() - .unwrap() - .to_string(); - let output = Arc::new(RS_RwLock::new(false)); - Events::AdminAuthEvent(&mut api, payload, output.clone()); - return *output.read().unwrap(); - }}; -} -#[macro_export] -macro_rules! CheckAuth { - () => {}; -} - #[macro_export] macro_rules! RegisterEventHandler { ($handler:ident,$event:ty,$mod_ctx:ty, $handler_fn:expr) => { From 73ea41cbd7ae6c76ca00462247332610e1a2121a Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 12:44:48 +0100 Subject: [PATCH 115/163] upgrade --- src/events/admin_auth_event.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/events/admin_auth_event.rs b/src/events/admin_auth_event.rs index 617bd5b..600280a 100644 --- a/src/events/admin_auth_event.rs +++ b/src/events/admin_auth_event.rs @@ -33,6 +33,11 @@ macro_rules! RegisterAdminAuthEventHandler { }; } impl Events { + pub fn CheckAdminAuth(api: &mut EngineAPI, payload: String) -> bool { + let output = Arc::new(RwLock::new(false)); + Self::AdminAuthEvent(api, payload, output.clone()); + return *output.read().unwrap(); + } pub fn AdminAuthEvent(api: &mut EngineAPI, payload: String, output: Arc>) { api.event_bus.handle( ID("core", "admin_auth_event"), From c1cb532d546e8d92892f96e42eac5fe32ecc8e60 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 13:04:43 +0100 Subject: [PATCH 116/163] auth --- src/events/auth_event.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/events/auth_event.rs b/src/events/auth_event.rs index 0236647..86165cb 100644 --- a/src/events/auth_event.rs +++ b/src/events/auth_event.rs @@ -33,6 +33,11 @@ macro_rules! RegisterAuthEventHandler { }; } impl Events { + pub fn CheckAuth(api: &mut EngineAPI, payload: String) -> bool { + let output = Arc::new(RwLock::new(false)); + Self::AuthEvent(api, payload, output.clone()); + return *output.read().unwrap(); + } pub fn AuthEvent(api: &mut EngineAPI, payload: String, output: Arc>) { api.event_bus.handle( ID("core", "auth_event"), From 09ecb3e9e08c456665d673fa8b1e13d0c35b2efb Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 14:26:02 +0100 Subject: [PATCH 117/163] auth progress --- src/events/admin_auth_event.rs | 16 ++++++++++------ src/events/auth_event.rs | 17 ++++++++++------- src/events/mod.rs | 21 +++++++++++++++++++-- 3 files changed, 39 insertions(+), 15 deletions(-) diff --git a/src/events/admin_auth_event.rs b/src/events/admin_auth_event.rs index 600280a..b9f159e 100644 --- a/src/events/admin_auth_event.rs +++ b/src/events/admin_auth_event.rs @@ -16,21 +16,25 @@ pub struct AdminAuthEvent { } #[macro_export] macro_rules! RegisterAdminAuthEventHandler { - ($handler:ident,$handler_mod_id:ident,$handler_id:ident,$handler_fn:expr) => { + ($handler:ident,$handler_fn:expr) => {{ + use crate::event::Event; + use crate::event::EventCTX; + use crate::event::EventHandler; + use crate::events::admin_auth_event::AdminAuthEvent; pub struct $handler; impl EventHandler for $handler { fn handle(&self, event: &mut dyn Event) { - let event: &mut CgrpcEvent = - >::get_event::(event); + let event: &mut AdminAuthEvent = + >::get_event::(event); self.handleCTX(event); } } - impl EventCTX for $handler { - fn handleCTX(&self, event: &mut CgrpcEvent) { + impl EventCTX for $handler { + fn handleCTX(&self, event: &mut AdminAuthEvent) { $handler_fn(event) } } - }; + }}; } impl Events { pub fn CheckAdminAuth(api: &mut EngineAPI, payload: String) -> bool { diff --git a/src/events/auth_event.rs b/src/events/auth_event.rs index 86165cb..eed3e3b 100644 --- a/src/events/auth_event.rs +++ b/src/events/auth_event.rs @@ -16,21 +16,25 @@ pub struct AuthEvent { } #[macro_export] macro_rules! RegisterAuthEventHandler { - ($handler:ident,$handler_mod_id:ident,$handler_id:ident,$handler_fn:expr) => { + ($handler:ident,$handler_fn:expr) => {{ + use crate::event::Event; + use crate::event::EventCTX; + use crate::event::EventHandler; + use crate::events::auth_event::AuthEvent; pub struct $handler; impl EventHandler for $handler { fn handle(&self, event: &mut dyn Event) { - let event: &mut CgrpcEvent = - >::get_event::(event); + let event: &mut AuthEvent = + >::get_event::(event); self.handleCTX(event); } } - impl EventCTX for $handler { - fn handleCTX(&self, event: &mut CgrpcEvent) { + impl EventCTX for $handler { + fn handleCTX(&self, event: &mut AuthEvent) { $handler_fn(event) } } - }; + }}; } impl Events { pub fn CheckAuth(api: &mut EngineAPI, payload: String) -> bool { @@ -44,7 +48,6 @@ impl Events { &mut AuthEvent { cancelled: false, id: ID("core", "auth_event"), - payload, output, }, diff --git a/src/events/mod.rs b/src/events/mod.rs index f4add20..9b6f893 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -1,5 +1,7 @@ -use crate::Identifier; -use crate::api::EngineAPI; +use auth_event::AuthEvent; + +use crate::api::{self, EngineAPI}; +use crate::{Identifier, RegisterAdminAuthEventHandler, RegisterAuthEventHandler}; use std::sync::{Arc, Mutex, RwLock}; pub mod admin_auth_event; pub mod auth_event; @@ -11,6 +13,21 @@ pub fn ID(namespace: &str, id: &str) -> Identifier { } impl Events { + pub fn init_auth(api: &mut EngineAPI) { + RegisterAuthEventHandler!(AuthHandler, |event: &mut AuthEvent| { + *event.output.write().unwrap() = true; + }); + let token = api.cfg.config_toml.cgrpc_token.clone(); + if let Some(token) = token { + RegisterAdminAuthEventHandler!(AdminAuthHandler, |event: &mut AdminAuthEvent| { + *event.output.write().unwrap() = true; + }); + } else { + RegisterAdminAuthEventHandler!(AdminAuthHandler, |event: &mut AdminAuthEvent| { + *event.output.write().unwrap() = true; + }); + } + } pub fn init(api: &mut EngineAPI) { for (id, tsk) in api.task_registry.tasks.iter() { api.task_queue From 6b31f0646b3410c8fae93ce2af5a0a5882a2cd3c Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 14:59:10 +0100 Subject: [PATCH 118/163] auth ctx --- src/events/admin_auth_event.rs | 32 ++++++++++++++++++++++++++++++-- src/events/auth_event.rs | 4 ++-- src/events/mod.rs | 26 +++++++++++++++++++++++--- 3 files changed, 55 insertions(+), 7 deletions(-) diff --git a/src/events/admin_auth_event.rs b/src/events/admin_auth_event.rs index b9f159e..d06ca97 100644 --- a/src/events/admin_auth_event.rs +++ b/src/events/admin_auth_event.rs @@ -16,7 +16,35 @@ pub struct AdminAuthEvent { } #[macro_export] macro_rules! RegisterAdminAuthEventHandler { - ($handler:ident,$handler_fn:expr) => {{ + ($handler:ident,$mod_ctx:ty, $handler_fn:expr) => { + use crate::event::Event; + use crate::event::EventCTX; + use crate::event::EventHandler; + use crate::events::admin_auth_event::AdminAuthEvent; + use std::sync::Arc; + pub struct $handler { + mod_ctx: Arc<$mod_ctx>, + }; + impl $handler { + pub fn new(mod_ctx: Arc<$mod_ctx>) -> Self { + Self { mod_ctx } + } + } + impl EventHandler for $handler { + fn handle(&self, event: &mut dyn Event) { + let event: &mut AdminAuthEvent = + >::get_event::(event); + self.handleCTX(event); + } + } + impl EventCTX for $handler { + fn handleCTX(&self, event: &mut AdminAuthEvent) { + let mod_ctx: &Arc<$mod_ctx> = &self.mod_ctx; + $handler_fn(event, mod_ctx) + } + } + }; + ($handler:ident,$handler_fn:expr) => { use crate::event::Event; use crate::event::EventCTX; use crate::event::EventHandler; @@ -34,7 +62,7 @@ macro_rules! RegisterAdminAuthEventHandler { $handler_fn(event) } } - }}; + }; } impl Events { pub fn CheckAdminAuth(api: &mut EngineAPI, payload: String) -> bool { diff --git a/src/events/auth_event.rs b/src/events/auth_event.rs index eed3e3b..6252953 100644 --- a/src/events/auth_event.rs +++ b/src/events/auth_event.rs @@ -16,7 +16,7 @@ pub struct AuthEvent { } #[macro_export] macro_rules! RegisterAuthEventHandler { - ($handler:ident,$handler_fn:expr) => {{ + ($handler:ident,$handler_fn:expr) => { use crate::event::Event; use crate::event::EventCTX; use crate::event::EventHandler; @@ -34,7 +34,7 @@ macro_rules! RegisterAuthEventHandler { $handler_fn(event) } } - }}; + }; } impl Events { pub fn CheckAuth(api: &mut EngineAPI, payload: String) -> bool { diff --git a/src/events/mod.rs b/src/events/mod.rs index 9b6f893..636f437 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -17,15 +17,35 @@ impl Events { RegisterAuthEventHandler!(AuthHandler, |event: &mut AuthEvent| { *event.output.write().unwrap() = true; }); + api.event_bus + .event_handler_registry + .register_handler(AuthHandler {}, ID("core", "auth_event")); let token = api.cfg.config_toml.cgrpc_token.clone(); if let Some(token) = token { - RegisterAdminAuthEventHandler!(AdminAuthHandler, |event: &mut AdminAuthEvent| { - *event.output.write().unwrap() = true; - }); + RegisterAdminAuthEventHandler!( + AdminAuthHandler, + String, + |event: &mut AdminAuthEvent, mod_ctx: &Arc| { + let token: &Arc = mod_ctx; + let token: String = token.as_str().to_string(); + if token == event.payload { + *event.output.write().unwrap() = true; + } + } + ); + api.event_bus.event_handler_registry.register_handler( + AdminAuthHandler { + mod_ctx: Arc::new(token), + }, + ID("core", "admin_auth_event"), + ); } else { RegisterAdminAuthEventHandler!(AdminAuthHandler, |event: &mut AdminAuthEvent| { *event.output.write().unwrap() = true; }); + api.event_bus + .event_handler_registry + .register_handler(AdminAuthHandler, ID("core", "admin_auth_event")); } } pub fn init(api: &mut EngineAPI) { From e3b8f9fc92750f5d2c6fcb61207b41360b4d0037 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 15:02:18 +0100 Subject: [PATCH 119/163] update auto to match architecture --- src/events/auth_event.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/events/auth_event.rs b/src/events/auth_event.rs index 6252953..d76a75a 100644 --- a/src/events/auth_event.rs +++ b/src/events/auth_event.rs @@ -11,7 +11,8 @@ use super::{Events, ID}; pub struct AuthEvent { pub cancelled: bool, pub id: Identifier, - pub payload: String, + pub uid: String, + pub challenge: String, pub output: Arc>, } #[macro_export] @@ -37,18 +38,24 @@ macro_rules! RegisterAuthEventHandler { }; } impl Events { - pub fn CheckAuth(api: &mut EngineAPI, payload: String) -> bool { + pub fn CheckAuth(api: &mut EngineAPI, uid: String, challenge: String) -> bool { let output = Arc::new(RwLock::new(false)); - Self::AuthEvent(api, payload, output.clone()); + Self::AuthEvent(api, uid, challenge, output.clone()); return *output.read().unwrap(); } - pub fn AuthEvent(api: &mut EngineAPI, payload: String, output: Arc>) { + pub fn AuthEvent( + api: &mut EngineAPI, + uid: String, + challenge: String, + output: Arc>, + ) { api.event_bus.handle( ID("core", "auth_event"), &mut AuthEvent { cancelled: false, id: ID("core", "auth_event"), - payload, + uid, + challenge, output, }, ); From a7331a51daac19a0e73bb8e7ac58f506cf8c17a4 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 15:05:05 +0100 Subject: [PATCH 120/163] update admin\auth to match architecture --- src/events/admin_auth_event.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/events/admin_auth_event.rs b/src/events/admin_auth_event.rs index d06ca97..5a659b3 100644 --- a/src/events/admin_auth_event.rs +++ b/src/events/admin_auth_event.rs @@ -12,6 +12,7 @@ pub struct AdminAuthEvent { pub cancelled: bool, pub id: Identifier, pub payload: String, + pub target: Identifier, pub output: Arc>, } #[macro_export] @@ -65,12 +66,17 @@ macro_rules! RegisterAdminAuthEventHandler { }; } impl Events { - pub fn CheckAdminAuth(api: &mut EngineAPI, payload: String) -> bool { + pub fn CheckAdminAuth(api: &mut EngineAPI, payload: String, target: Identifier) -> bool { let output = Arc::new(RwLock::new(false)); - Self::AdminAuthEvent(api, payload, output.clone()); + Self::AdminAuthEvent(api, payload, target, output.clone()); return *output.read().unwrap(); } - pub fn AdminAuthEvent(api: &mut EngineAPI, payload: String, output: Arc>) { + pub fn AdminAuthEvent( + api: &mut EngineAPI, + payload: String, + target: Identifier, + output: Arc>, + ) { api.event_bus.handle( ID("core", "admin_auth_event"), &mut AdminAuthEvent { @@ -78,6 +84,7 @@ impl Events { id: ID("core", "admin_auth_event"), payload, output, + target, }, ); } From 0121e6bfc92328da80d49cafeb8e418761e8ce64 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 18:19:17 +0100 Subject: [PATCH 121/163] fix file leak --- src/plugin.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugin.rs b/src/plugin.rs index 2ab8d70..79838d2 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -116,7 +116,7 @@ impl LibraryManager { } else { error!("Invalid library path for module: {}", path); } - std::mem::forget(fs); + //std::mem::forget(fs); } pub fn load_library(&mut self, path: &str, api: &mut EngineAPI) -> Result<(), String> { From e0c01e57a136f45e643ec6ac68e181a9479717e8 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 18:54:37 +0100 Subject: [PATCH 122/163] add db access allowing for users --- src/events/admin_auth_event.rs | 14 ++++++++++++-- src/events/auth_event.rs | 9 +++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/events/admin_auth_event.rs b/src/events/admin_auth_event.rs index 5a659b3..1a5c9d4 100644 --- a/src/events/admin_auth_event.rs +++ b/src/events/admin_auth_event.rs @@ -3,6 +3,8 @@ use std::{ sync::{Arc, RwLock}, }; +use sled::Db; + use crate::{Identifier, api::EngineAPI, event::Event}; use super::{Events, ID}; @@ -13,6 +15,7 @@ pub struct AdminAuthEvent { pub id: Identifier, pub payload: String, pub target: Identifier, + pub db: Db, pub output: Arc>, } #[macro_export] @@ -66,20 +69,27 @@ macro_rules! RegisterAdminAuthEventHandler { }; } impl Events { - pub fn CheckAdminAuth(api: &mut EngineAPI, payload: String, target: Identifier) -> bool { + pub fn CheckAdminAuth( + api: &mut EngineAPI, + payload: String, + target: Identifier, + db: Db, + ) -> bool { let output = Arc::new(RwLock::new(false)); - Self::AdminAuthEvent(api, payload, target, output.clone()); + Self::AdminAuthEvent(api, payload, target, db, output.clone()); return *output.read().unwrap(); } pub fn AdminAuthEvent( api: &mut EngineAPI, payload: String, target: Identifier, + db: Db, output: Arc>, ) { api.event_bus.handle( ID("core", "admin_auth_event"), &mut AdminAuthEvent { + db, cancelled: false, id: ID("core", "admin_auth_event"), payload, diff --git a/src/events/auth_event.rs b/src/events/auth_event.rs index d76a75a..5fc12a6 100644 --- a/src/events/auth_event.rs +++ b/src/events/auth_event.rs @@ -3,6 +3,8 @@ use std::{ sync::{Arc, RwLock}, }; +use sled::Db; + use crate::{Identifier, api::EngineAPI, event::Event}; use super::{Events, ID}; @@ -13,6 +15,7 @@ pub struct AuthEvent { pub id: Identifier, pub uid: String, pub challenge: String, + pub db: Db, pub output: Arc>, } #[macro_export] @@ -38,20 +41,22 @@ macro_rules! RegisterAuthEventHandler { }; } impl Events { - pub fn CheckAuth(api: &mut EngineAPI, uid: String, challenge: String) -> bool { + pub fn CheckAuth(api: &mut EngineAPI, uid: String, challenge: String, db: Db) -> bool { let output = Arc::new(RwLock::new(false)); - Self::AuthEvent(api, uid, challenge, output.clone()); + Self::AuthEvent(api, uid, challenge, db, output.clone()); return *output.read().unwrap(); } pub fn AuthEvent( api: &mut EngineAPI, uid: String, challenge: String, + db: Db, output: Arc>, ) { api.event_bus.handle( ID("core", "auth_event"), &mut AuthEvent { + db, cancelled: false, id: ID("core", "auth_event"), uid, From 74e961b9c2e8e0aeca26c3d9d843c3887eb3719d Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 19:40:23 +0100 Subject: [PATCH 123/163] optimize queue --- src/task.rs | 49 ++----------------------------------------------- 1 file changed, 2 insertions(+), 47 deletions(-) diff --git a/src/task.rs b/src/task.rs index e7c6831..8898819 100644 --- a/src/task.rs +++ b/src/task.rs @@ -19,58 +19,13 @@ pub struct StoredExecutingTask { } #[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct TaskQueueStorage { - pub tasks: HashMap>>, -} -impl TaskQueueStorage { - pub fn from_task_queue(task_queue: &TaskQueue) -> Self { - let mut map: HashMap>> = HashMap::new(); - for (id, queue) in task_queue.tasks.iter() { - let task_vec: Vec> = queue - .lock() - .unwrap() - .iter() - .map(|task| { - let task_b = task.to_bytes(); - let task_struct = StoredTask { bytes: task_b }; - Box::new(task_struct) - }) - .collect(); - map.insert(id.clone(), task_vec); - } - Self { tasks: map } - } -} -#[derive(Debug, Default, Clone)] -pub struct TaskQueue { - pub tasks: HashMap>>>>, + pub tasks: HashMap>, } + #[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct ExecutingTasks { pub tasks: HashMap, } -impl TaskQueue { - pub fn from_storage(storage: &TaskQueueStorage, api: &EngineAPI) -> Self { - let mut map: HashMap<(String, String), Arc>>>> = HashMap::new(); - for (id, tasks) in storage.tasks.iter() { - let task_vec: Vec> = tasks - .iter() - .filter_map(|task_bytes| match api.task_registry.get(&id) { - Some(x) => Some(x.from_bytes(&task_bytes.bytes)), - None => { - error!( - "TaskQueue: Failed to deserialize task {}.{} - invalid data", - &id.0, &id.1 - ); - None - } - }) - .collect(); - map.insert(id.clone(), Arc::new(Mutex::new(task_vec))); - } - TaskQueue { tasks: map } - } -} - pub trait Task: Debug + Sync + Send { fn get_id(&self) -> Identifier; fn clone_box(&self) -> Box; From d47d29ab8319e8773f18310f1e3fd19da75a568a Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 19:47:50 +0100 Subject: [PATCH 124/163] fix #8 --- src/api.rs | 10 +++++----- src/events/mod.rs | 4 +--- src/task.rs | 12 ++++++++---- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/api.rs b/src/api.rs index f542c89..fea5631 100644 --- a/src/api.rs +++ b/src/api.rs @@ -6,7 +6,7 @@ use crate::{ event::{EngineEventHandlerRegistry, EngineEventRegistry, EventBus}, events::Events, plugin::LibraryManager, - task::{ExecutingTasks, Task, TaskQueue, TaskQueueStorage}, + task::{ExecutingTaskQueue, SolvedTasks, Task, TaskQueue}, }; pub use bincode::deserialize; pub use bincode::serialize; @@ -14,8 +14,8 @@ use std::{collections::HashMap, sync::Arc}; pub struct EngineAPI { pub cfg: Config, pub task_queue: TaskQueue, - pub executing_tasks: ExecutingTasks, - pub solved_tasks: TaskQueue, + pub executing_tasks: ExecutingTaskQueue, + pub solved_tasks: SolvedTasks, pub task_registry: EngineTaskRegistry, pub event_bus: EventBus, pub db: sled::Db, @@ -27,8 +27,6 @@ impl Default for EngineAPI { Self { cfg: Config::new(), task_queue: TaskQueue::default(), - executing_tasks: ExecutingTasks::default(), - solved_tasks: TaskQueue::default(), db: sled::open("engine_db").unwrap(), lib_manager: LibraryManager::default(), task_registry: EngineTaskRegistry::default(), @@ -40,6 +38,8 @@ impl Default for EngineAPI { event_handlers: HashMap::new(), }, }, + solved_tasks: SolvedTasks::default(), + executing_tasks: ExecutingTaskQueue::default(), } } } diff --git a/src/events/mod.rs b/src/events/mod.rs index 636f437..15425eb 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -50,9 +50,7 @@ impl Events { } pub fn init(api: &mut EngineAPI) { for (id, tsk) in api.task_registry.tasks.iter() { - api.task_queue - .tasks - .insert(id.clone(), Arc::new(Mutex::new(Vec::new()))); + api.task_queue.tasks.insert(id.clone(), Vec::new()); } crate::register_event!( api, diff --git a/src/task.rs b/src/task.rs index 8898819..a87152d 100644 --- a/src/task.rs +++ b/src/task.rs @@ -7,6 +7,7 @@ use crate::{Identifier, Registry}; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use tracing::{error, instrument, warn}; + #[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct StoredTask { bytes: Vec, @@ -18,13 +19,16 @@ pub struct StoredExecutingTask { given_at: DateTime, } #[derive(Debug, Default, Clone, Serialize, Deserialize)] -pub struct TaskQueueStorage { +pub struct TaskQueue { + pub tasks: HashMap>, +} +#[derive(Debug, Default, Clone, Serialize, Deserialize)] +pub struct SolvedTasks { pub tasks: HashMap>, } - #[derive(Debug, Default, Clone, Serialize, Deserialize)] -pub struct ExecutingTasks { - pub tasks: HashMap, +pub struct ExecutingTaskQueue { + pub tasks: HashMap>, } pub trait Task: Debug + Sync + Send { fn get_id(&self) -> Identifier; From dfab988241762d03cb43ab6b5dc7fbea736cf6ae Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 20:15:48 +0100 Subject: [PATCH 125/163] fix tests --- src/api.rs | 23 +++++++ src/task.rs | 8 +-- tests/event_tests.rs | 144 ++++++++++++++++++++++++------------------- 3 files changed, 108 insertions(+), 67 deletions(-) diff --git a/src/api.rs b/src/api.rs index fea5631..ea8ca8b 100644 --- a/src/api.rs +++ b/src/api.rs @@ -44,6 +44,29 @@ impl Default for EngineAPI { } } impl EngineAPI { + pub fn test_default() -> Self { + Self { + cfg: Config::new(), + task_queue: TaskQueue::default(), + db: sled::Config::new() + .temporary(true) + .flush_every_ms(None) + .open() + .unwrap(), + lib_manager: LibraryManager::default(), + task_registry: EngineTaskRegistry::default(), + event_bus: EventBus { + event_registry: EngineEventRegistry { + events: HashMap::new(), + }, + event_handler_registry: EngineEventHandlerRegistry { + event_handlers: HashMap::new(), + }, + }, + solved_tasks: SolvedTasks::default(), + executing_tasks: ExecutingTaskQueue::default(), + } + } pub fn init(api: &mut Self) { Self::setup_logger(); Events::init(api); diff --git a/src/task.rs b/src/task.rs index a87152d..af71b8e 100644 --- a/src/task.rs +++ b/src/task.rs @@ -10,13 +10,13 @@ use tracing::{error, instrument, warn}; #[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct StoredTask { - bytes: Vec, + pub bytes: Vec, } #[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct StoredExecutingTask { - bytes: Vec, - user_id: String, - given_at: DateTime, + pub bytes: Vec, + pub user_id: String, + pub given_at: DateTime, } #[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct TaskQueue { diff --git a/tests/event_tests.rs b/tests/event_tests.rs index 2c302f6..592ca99 100644 --- a/tests/event_tests.rs +++ b/tests/event_tests.rs @@ -1,10 +1,15 @@ use enginelib::{ RegisterEventHandler, Registry, api::EngineAPI, - event::{Event, EventCTX, EventHandler}, + event::{ + EngineEventHandlerRegistry, EngineEventRegistry, Event, EventBus, EventCTX, EventHandler, + }, events::ID, + plugin::LibraryManager, + task::{SolvedTasks, TaskQueue}, }; -use std::sync::{Arc, Mutex}; +use sled::Config; +use std::{any::Any, collections::HashMap, sync::Arc}; use tracing_test::traced_test; #[traced_test] @@ -16,7 +21,7 @@ fn id() { #[traced_test] #[test] fn test_event_registration_and_handling() { - let mut api = EngineAPI::default(); + let mut api = EngineAPI::test_default(); // Create a test event #[derive(Clone, Debug)] @@ -39,10 +44,10 @@ fn test_event_registration_and_handling() { fn get_id(&self) -> (String, String) { self.id.clone() } - fn as_any(&self) -> &dyn std::any::Any { + fn as_any(&self) -> &dyn Any { self } - fn as_any_mut(&mut self) -> &mut dyn std::any::Any { + fn as_any_mut(&mut self) -> &mut dyn Any { self } } @@ -76,11 +81,58 @@ fn test_event_registration_and_handling() { api.event_bus.handle(event_id, &mut test_event); assert_eq!(test_event.value, 1); + drop(api.db); } #[traced_test] #[test] -fn test_task_queue() { +fn test_task_registration() { + use enginelib::task::Task; + use serde::{Deserialize, Serialize}; + + #[derive(Debug, Clone, Serialize, Deserialize)] + struct TestTask { + pub value: i32, + pub id: (String, String), + } + + impl Task for TestTask { + fn get_id(&self) -> (String, String) { + self.id.clone() + } + fn clone_box(&self) -> Box { + Box::new(self.clone()) + } + fn run_cpu(&mut self) { + self.value += 1; + } + fn to_bytes(&self) -> Vec { + bincode::serialize(self).unwrap() + } + fn from_bytes(&self, bytes: &[u8]) -> Box { + Box::new(bincode::deserialize::(bytes).unwrap()) + } + } + let mut api = EngineAPI::test_default(); + let task_id = ID("test", "test_task"); + + // Register the task type + api.task_registry.register( + Arc::new(TestTask { + value: 0, + id: task_id.clone(), + }), + task_id.clone(), + ); + + // Verify it was registered + assert!(api.task_registry.tasks.contains_key(&task_id)); + drop(api.db); +} + +#[traced_test] +#[test] +fn test_task_execution() { use enginelib::task::{Runner, Task}; use serde::{Deserialize, Serialize}; @@ -108,43 +160,21 @@ fn test_task_queue() { } } - let mut api = EngineAPI::default(); - let task = TestTask { + // Test task execution directly + let mut task = TestTask { value: 0, id: ID("test", "test_task"), }; - let id = ("test".into(), "test_task".into()); - api.task_queue - .tasks - .insert(id.clone(), Arc::new(Mutex::new(Vec::new()))); - api.task_queue - .tasks - .get(&id) - .unwrap() - .lock() - .unwrap() - .push(Box::new(task)); - // Test task execution - if let Some(task) = api - .task_queue - .tasks - .get(&id) - .unwrap() - .lock() - .unwrap() - .first_mut() - { - let task: &mut TestTask = unsafe { &mut *((task as *mut Box) as *mut TestTask) }; - let mut task = task.clone(); - task.run(Some(Runner::CPU)); - assert_eq!(task.value, 1); - } + + task.run(Some(Runner::CPU)); + assert_eq!(task.value, 1); } #[traced_test] #[test] fn test_task_serialization() { - use enginelib::task::{Task, TaskQueueStorage}; + use bincode; + use enginelib::task::{StoredTask, Task}; use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Serialize, Deserialize)] @@ -170,37 +200,25 @@ fn test_task_serialization() { Box::new(bincode::deserialize::(bytes).unwrap()) } } - let id = ID("test", "test_task"); - let mut api = EngineAPI::default(); + let task = TestTask { value: 42, id: ID("test", "test_task"), }; - api.task_queue - .tasks - .insert(id.clone(), Arc::new(Mutex::new(Vec::new()))); - api.task_queue - .tasks - .get(&id) - .unwrap() - .lock() - .unwrap() - .push(Box::new(task)); - // Test serialization - let storage = TaskQueueStorage::from_task_queue(&api.task_queue); - assert_eq!(storage.tasks.len(), 1); - - // Register task type - api.task_registry.register( - Arc::new(TestTask { - value: 0, - id: ID("test", "test_task"), - }), - ID("test", "test_task"), - ); - - // Test deserialization - let new_queue = enginelib::task::TaskQueue::from_storage(&storage, &api); - assert_eq!(new_queue.tasks.len(), 1); + // Test serialization and deserialization + let serialized = task.to_bytes(); + let stored_task = StoredTask { bytes: serialized }; + + // Deserialize + let deserialized_task: TestTask = bincode::deserialize(&stored_task.bytes).unwrap(); + assert_eq!(deserialized_task.value, 42); + + // Test the from_bytes function + let recreated_task = task.from_bytes(&stored_task.bytes); + // We need a way to check the value inside the recreated task + // Since we can't directly access the value, we'll serialize it again and deserialize manually + let bytes = recreated_task.to_bytes(); + let final_task: TestTask = bincode::deserialize(&bytes).unwrap(); + assert_eq!(final_task.value, 42); } From 87eff3456c915a3cdb34745ca634637b52d89453 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 21:38:54 +0100 Subject: [PATCH 126/163] re export time --- src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib.rs b/src/lib.rs index 366adab..50dce95 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -16,3 +16,4 @@ pub trait Registry: Default + Clone { fn register(&mut self, registree: Arc, identifier: Identifier); fn get(&self, identifier: &Identifier) -> Option>; } +pub use chrono; From 42361b97b5eed5d588e3aaffb7e4af566f9921cc Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 21:53:10 +0100 Subject: [PATCH 127/163] db sync --- src/api.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/api.rs b/src/api.rs index ea8ca8b..4090b2b 100644 --- a/src/api.rs +++ b/src/api.rs @@ -74,6 +74,26 @@ impl EngineAPI { newLibManager.load_modules(api); api.lib_manager = newLibManager; } + fn init_db(api: &mut EngineAPI) { + let tasks = api.db.get("tasks"); + let exec_tasks = api.db.get("executing_tasks"); + if tasks.is_err() { + let store = bincode::serialize(&api.task_queue.clone()).unwrap(); + api.db.insert("tasks", store).unwrap(); + } else { + let store = api.db.get("tasks").unwrap().unwrap(); + let res: TaskQueue = bincode::deserialize(&store).unwrap(); + api.task_queue = res; + } + if exec_tasks.is_err() { + let store = bincode::serialize(&api.executing_tasks.clone()).unwrap(); + api.db.insert("executing_tasks", store).unwrap(); + } else { + let store = api.db.get("executing_tasks").unwrap().unwrap(); + let res: ExecutingTaskQueue = bincode::deserialize(&store).unwrap(); + api.executing_tasks = res; + }; + } pub fn init_dev(api: &mut Self) { Self::setup_logger(); Events::init(api); From bfce84a445328e9d10cb52597cb37c9a12147b1c Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 21:55:47 +0100 Subject: [PATCH 128/163] db sync --- src/api.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/api.rs b/src/api.rs index 4090b2b..09033ea 100644 --- a/src/api.rs +++ b/src/api.rs @@ -77,7 +77,8 @@ impl EngineAPI { fn init_db(api: &mut EngineAPI) { let tasks = api.db.get("tasks"); let exec_tasks = api.db.get("executing_tasks"); - if tasks.is_err() { + let solved_tasks = api.db.get("solved_tasks"); + if tasks.is_err() || tasks.unwrap().is_none() { let store = bincode::serialize(&api.task_queue.clone()).unwrap(); api.db.insert("tasks", store).unwrap(); } else { @@ -85,7 +86,7 @@ impl EngineAPI { let res: TaskQueue = bincode::deserialize(&store).unwrap(); api.task_queue = res; } - if exec_tasks.is_err() { + if exec_tasks.is_err() || exec_tasks.unwrap().is_none() { let store = bincode::serialize(&api.executing_tasks.clone()).unwrap(); api.db.insert("executing_tasks", store).unwrap(); } else { @@ -93,6 +94,14 @@ impl EngineAPI { let res: ExecutingTaskQueue = bincode::deserialize(&store).unwrap(); api.executing_tasks = res; }; + if solved_tasks.is_err() || solved_tasks.unwrap().is_none() { + let store = bincode::serialize(&api.solved_tasks.clone()).unwrap(); + api.db.insert("solved_tasks", store).unwrap(); + } else { + let store = api.db.get("solved_tasks").unwrap().unwrap(); + let res: SolvedTasks = bincode::deserialize(&store).unwrap(); + api.solved_tasks = res; + }; } pub fn init_dev(api: &mut Self) { Self::setup_logger(); From 5eab6610c48cb87da37741bd057d1269c965dfb7 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Sun, 30 Mar 2025 21:57:11 +0100 Subject: [PATCH 129/163] db sync --- src/api.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/api.rs b/src/api.rs index 09033ea..4ff3a5f 100644 --- a/src/api.rs +++ b/src/api.rs @@ -69,11 +69,13 @@ impl EngineAPI { } pub fn init(api: &mut Self) { Self::setup_logger(); + Self::init_db(api); Events::init(api); let mut newLibManager = LibraryManager::default(); newLibManager.load_modules(api); api.lib_manager = newLibManager; } + fn init_db(api: &mut EngineAPI) { let tasks = api.db.get("tasks"); let exec_tasks = api.db.get("executing_tasks"); From 986664125ca1588d4eb481183d9d74426a7ef6be Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 31 Mar 2025 19:32:24 +0100 Subject: [PATCH 130/163] add cron job to clean executing tasks --- Cargo.lock | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 1 + src/api.rs | 79 +++++++++++++++++++++++++++++++++++++++-- 3 files changed, 179 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7fe4952..cfe9ee8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,15 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + [[package]] name = "adler2" version = "2.0.0" @@ -68,6 +77,21 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + [[package]] name = "bincode" version = "1.3.3" @@ -112,6 +136,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + [[package]] name = "camino" version = "1.1.9" @@ -335,6 +365,7 @@ dependencies = [ "oxifs", "serde", "sled", + "tokio", "toml", "tracing", "tracing-subscriber", @@ -452,6 +483,12 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + [[package]] name = "gix" version = "0.69.1" @@ -1394,6 +1431,17 @@ dependencies = [ "adler2", ] +[[package]] +name = "mio" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", +] + [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -1428,6 +1476,15 @@ dependencies = [ "libc", ] +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + [[package]] name = "once_cell" version = "1.20.3" @@ -1638,6 +1695,12 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + [[package]] name = "rustc_version" version = "0.4.1" @@ -1805,6 +1868,16 @@ version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +[[package]] +name = "socket2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -1972,6 +2045,35 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +[[package]] +name = "tokio" +version = "1.44.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "parking_lot 0.12.3", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "toml" version = "0.8.20" diff --git a/Cargo.toml b/Cargo.toml index d22407a..628365c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,6 +19,7 @@ tracing-subscriber = "0.3.18" tracing-test = "0.2.5" chrono = { version = "0.4.40", features = ["serde"] } sled = "0.34.7" +tokio = { version = "1.44.1", features = ["full"] } [build-dependencies] vergen-gix = { version = "1.0.0", features = ["build", "cargo", "rustc"] } [profile.release] diff --git a/src/api.rs b/src/api.rs index 4ff3a5f..02fb43c 100644 --- a/src/api.rs +++ b/src/api.rs @@ -1,4 +1,7 @@ -use tracing::{Level, debug}; +use chrono::{Timelike, Utc}; +use sled::Db; +use tokio::time::{interval, sleep}; +use tracing::{Level, debug, error, info}; use crate::{ Identifier, Registry, @@ -6,11 +9,11 @@ use crate::{ event::{EngineEventHandlerRegistry, EngineEventRegistry, EventBus}, events::Events, plugin::LibraryManager, - task::{ExecutingTaskQueue, SolvedTasks, Task, TaskQueue}, + task::{ExecutingTaskQueue, SolvedTasks, StoredTask, Task, TaskQueue}, }; pub use bincode::deserialize; pub use bincode::serialize; -use std::{collections::HashMap, sync::Arc}; +use std::{collections::HashMap, sync::Arc, time::Duration}; pub struct EngineAPI { pub cfg: Config, pub task_queue: TaskQueue, @@ -149,3 +152,73 @@ impl Registry for EngineTaskRegistry { self.tasks.get(identifier).map(|obj| obj.clone_box()) } } + +async fn clear_sled_periodically(db: Arc, n_minutes: u64) { + let mut interval = interval(Duration::from_secs(n_minutes * 60)); + + loop { + interval.tick().await; // Wait for the interval + let now = Utc::now().timestamp(); // Current timestamp in seconds + let mut moved_tasks: Vec<(String, String, StoredTask)> = Vec::new(); + + // Load "executing_tasks" + if let Ok(Some(tsks)) = db.get("executing_tasks") { + if let Ok(mut s) = bincode::deserialize::(&tsks) { + for ((key1, key2), task_list) in s.tasks.iter_mut() { + task_list.retain(|info| { + let age = now - info.given_at.timestamp(); + if age > 3600 { + info!("Task {:?} is older than an hour! Moving...", info); + moved_tasks.push(( + key1.clone(), + key2.clone(), + StoredTask { + bytes: info.bytes.clone(), + }, + )); + false // Remove old tasks + } else { + true // Keep tasks that are less than an hour old + } + }); + } + + // Save updated "executing_tasks" + if let Ok(updated) = bincode::serialize(&s) { + if let Err(e) = db.insert("executing_tasks", updated) { + error!("Failed to update executing_tasks in Sled: {:?}", e); + } + } + } + } + + // Merge moved tasks into "tasks" + if !moved_tasks.is_empty() { + let mut saved_tasks = TaskQueue { + tasks: HashMap::new(), + }; + + if let Ok(Some(saved_tsks)) = db.get("tasks") { + if let Ok(existing_tasks) = bincode::deserialize::(&saved_tsks) { + saved_tasks = existing_tasks; + } + } + + // Add moved tasks + for (key1, key2, task) in moved_tasks { + saved_tasks + .tasks + .entry((key1, key2)) + .or_default() + .push(task); + } + + // Save updated "tasks" queue + if let Ok(updated) = bincode::serialize(&saved_tasks) { + if let Err(e) = db.insert("tasks", updated) { + error!("Failed to update tasks in Sled: {:?}", e); + } + } + } + } +} From 0b713b00aa7678e7a3ca16bbe45ff51083e2afe2 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 8 Apr 2025 18:36:37 +0100 Subject: [PATCH 131/163] fix tasks not gaving ids --- src/api.rs | 1 + src/task.rs | 2 ++ tests/event_tests.rs | 5 ++++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/api.rs b/src/api.rs index 02fb43c..ba2792a 100644 --- a/src/api.rs +++ b/src/api.rs @@ -173,6 +173,7 @@ async fn clear_sled_periodically(db: Arc, n_minutes: u64) { key1.clone(), key2.clone(), StoredTask { + id: info.id.clone(), bytes: info.bytes.clone(), }, )); diff --git a/src/task.rs b/src/task.rs index af71b8e..a3f2c6b 100644 --- a/src/task.rs +++ b/src/task.rs @@ -11,10 +11,12 @@ use tracing::{error, instrument, warn}; #[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct StoredTask { pub bytes: Vec, + pub id: String, } #[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct StoredExecutingTask { pub bytes: Vec, + pub id: String, pub user_id: String, pub given_at: DateTime, } diff --git a/tests/event_tests.rs b/tests/event_tests.rs index 592ca99..75098b4 100644 --- a/tests/event_tests.rs +++ b/tests/event_tests.rs @@ -208,7 +208,10 @@ fn test_task_serialization() { // Test serialization and deserialization let serialized = task.to_bytes(); - let stored_task = StoredTask { bytes: serialized }; + let stored_task = StoredTask { + bytes: serialized, + id: "id".into(), + }; // Deserialize let deserialized_task: TestTask = bincode::deserialize(&stored_task.bytes).unwrap(); From 53b21edd5b918347464fea81d3db1d367cffa59c Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 10 Apr 2025 19:59:06 +0100 Subject: [PATCH 132/163] sled clear --- src/api.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/api.rs b/src/api.rs index ba2792a..e43b3e1 100644 --- a/src/api.rs +++ b/src/api.rs @@ -1,6 +1,9 @@ use chrono::{Timelike, Utc}; use sled::Db; -use tokio::time::{interval, sleep}; +use tokio::{ + sync::RwLock, + time::{interval, sleep}, +}; use tracing::{Level, debug, error, info}; use crate::{ @@ -78,7 +81,6 @@ impl EngineAPI { newLibManager.load_modules(api); api.lib_manager = newLibManager; } - fn init_db(api: &mut EngineAPI) { let tasks = api.db.get("tasks"); let exec_tasks = api.db.get("executing_tasks"); @@ -153,14 +155,14 @@ impl Registry for EngineTaskRegistry { } } -async fn clear_sled_periodically(db: Arc, n_minutes: u64) { +pub async fn clear_sled_periodically(api: Arc>, n_minutes: u64) { let mut interval = interval(Duration::from_secs(n_minutes * 60)); - loop { interval.tick().await; // Wait for the interval let now = Utc::now().timestamp(); // Current timestamp in seconds let mut moved_tasks: Vec<(String, String, StoredTask)> = Vec::new(); - + let mut rw_api = api.write().await; + let db = rw_api.db.clone(); // Load "executing_tasks" if let Ok(Some(tsks)) = db.get("executing_tasks") { if let Ok(mut s) = bincode::deserialize::(&tsks) { @@ -221,5 +223,6 @@ async fn clear_sled_periodically(db: Arc, n_minutes: u64) { } } } + EngineAPI::init_db(&mut rw_api); } } From 922a16f409fcdec863a7e2f2345f1e7fe83524d8 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 10 Apr 2025 20:00:19 +0100 Subject: [PATCH 133/163] new cfg opt --- src/config.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/config.rs b/src/config.rs index 0c997da..0af8a67 100644 --- a/src/config.rs +++ b/src/config.rs @@ -6,12 +6,14 @@ use serde::{Deserialize, Serialize}; pub struct ConfigTomlServer { pub cgrpc_token: Option, // Administrator Token, used to invoke cgrpc reqs. If not preset will default to no protection. pub port: String, + pub clean_tasks: u64, } impl Default for ConfigTomlServer { fn default() -> Self { Self { port: "[::1]:50051".into(), cgrpc_token: None, + clean_tasks: 60, } } } From eaf6747d07a0f216108a05546b93008b7cf79157 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 10 Apr 2025 20:04:59 +0100 Subject: [PATCH 134/163] chron init --- src/api.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/api.rs b/src/api.rs index e43b3e1..709772d 100644 --- a/src/api.rs +++ b/src/api.rs @@ -1,6 +1,7 @@ use chrono::{Timelike, Utc}; use sled::Db; use tokio::{ + spawn, sync::RwLock, time::{interval, sleep}, }; @@ -81,6 +82,10 @@ impl EngineAPI { newLibManager.load_modules(api); api.lib_manager = newLibManager; } + pub fn init_chron(api: Arc>) { + let t = api.try_read().unwrap().cfg.config_toml.clean_tasks; + spawn(clear_sled_periodically(api, t)); + } fn init_db(api: &mut EngineAPI) { let tasks = api.db.get("tasks"); let exec_tasks = api.db.get("executing_tasks"); From 28741f3dfe07cdba223f0c0f0f9633ca70b8024f Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 10 Apr 2025 20:06:42 +0100 Subject: [PATCH 135/163] better logging --- src/config.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/config.rs b/src/config.rs index 0af8a67..c2fb09d 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,8 +1,9 @@ use std::{fs, io::Error}; use serde::{Deserialize, Serialize}; +use tracing::{error, instrument}; -#[derive(Debug, Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize, Clone)] pub struct ConfigTomlServer { pub cgrpc_token: Option, // Administrator Token, used to invoke cgrpc reqs. If not preset will default to no protection. pub port: String, @@ -17,11 +18,14 @@ impl Default for ConfigTomlServer { } } } +#[derive(Debug, Clone)] pub struct Config { pub config_toml: ConfigTomlServer, } + impl Config { #[allow(clippy::new_without_default)] + #[instrument] pub fn new() -> Self { let mut content: String = "".to_owned(); let result: Result = fs::read_to_string("config.toml"); @@ -29,8 +33,8 @@ impl Config { content = result.unwrap(); }; let config_toml: ConfigTomlServer = toml::from_str(&content).unwrap_or_else(|err| { - println!("Failed to parse config file."); - println!("{:#?}", err); + error!("Failed to parse config file."); + error!("{:#?}", err); ConfigTomlServer::default() }); Self { config_toml } From ba32fb6bf0b9592b4696f06a540554f0e6672472 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 10 Apr 2025 20:43:10 +0100 Subject: [PATCH 136/163] better logging --- src/api.rs | 3 ++- src/config.rs | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/api.rs b/src/api.rs index 709772d..97c0125 100644 --- a/src/api.rs +++ b/src/api.rs @@ -32,7 +32,7 @@ pub struct EngineAPI { impl Default for EngineAPI { fn default() -> Self { Self { - cfg: Config::new(), + cfg: Config::default(), task_queue: TaskQueue::default(), db: sled::open("engine_db").unwrap(), lib_manager: LibraryManager::default(), @@ -76,6 +76,7 @@ impl EngineAPI { } pub fn init(api: &mut Self) { Self::setup_logger(); + api.cfg = Config::new(); Self::init_db(api); Events::init(api); let mut newLibManager = LibraryManager::default(); diff --git a/src/config.rs b/src/config.rs index c2fb09d..0aaf10e 100644 --- a/src/config.rs +++ b/src/config.rs @@ -18,7 +18,7 @@ impl Default for ConfigTomlServer { } } } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Default)] pub struct Config { pub config_toml: ConfigTomlServer, } From bead0374cebe457fd43afac082ebfb5460376839 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 10 Apr 2025 20:44:53 +0100 Subject: [PATCH 137/163] better logging --- src/api.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/api.rs b/src/api.rs index 97c0125..2f1a60f 100644 --- a/src/api.rs +++ b/src/api.rs @@ -162,6 +162,8 @@ impl Registry for EngineTaskRegistry { } pub async fn clear_sled_periodically(api: Arc>, n_minutes: u64) { + EngineAPI::setup_logger(); + info!("Sled Cron Job Started"); let mut interval = interval(Duration::from_secs(n_minutes * 60)); loop { interval.tick().await; // Wait for the interval From dffc04efaec26323134dc8b4669ef6ef81860062 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 10 Apr 2025 21:07:38 +0100 Subject: [PATCH 138/163] better logging --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cfe9ee8..59b8465 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2047,9 +2047,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.1" +version = "1.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" +checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" dependencies = [ "backtrace", "bytes", diff --git a/Cargo.toml b/Cargo.toml index 628365c..2e47d15 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ tracing-subscriber = "0.3.18" tracing-test = "0.2.5" chrono = { version = "0.4.40", features = ["serde"] } sled = "0.34.7" -tokio = { version = "1.44.1", features = ["full"] } +tokio = { version = "1.44.2", features = ["full"] } [build-dependencies] vergen-gix = { version = "1.0.0", features = ["build", "cargo", "rustc"] } [profile.release] From c5ba771f2db96bf7702229533470049aaa1f3d42 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 10 Apr 2025 21:09:15 +0100 Subject: [PATCH 139/163] better logging --- Cargo.lock | 518 ++++++++++++++++++++++++++++++++++++++++++----------- Cargo.toml | 2 +- 2 files changed, 415 insertions(+), 105 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 59b8465..239265b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -113,6 +113,15 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + [[package]] name = "bstr" version = "1.11.3" @@ -216,6 +225,15 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.4.2" @@ -240,6 +258,16 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "darling" version = "0.20.10" @@ -275,6 +303,20 @@ dependencies = [ "syn", ] +[[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 0.9.10", +] + [[package]] name = "deranged" version = "0.3.11" @@ -315,6 +357,16 @@ dependencies = [ "syn", ] +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + [[package]] name = "directories" version = "5.0.1" @@ -353,6 +405,15 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + [[package]] name = "enginelib" version = "0.2.0" @@ -418,9 +479,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.35" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" dependencies = [ "crc32fast", "miniz_oxide", @@ -432,6 +493,12 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -460,6 +527,16 @@ dependencies = [ "byteorder", ] +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "getrandom" version = "0.2.15" @@ -491,27 +568,33 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "gix" -version = "0.69.1" +version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d0eebdaecdcf405d5433a36f85e4f058cf4de48ee2604388be0dbccbaad353e" +checksum = "a61e71ec6817fc3c9f12f812682cfe51ee6ea0d2e27e02fc3849c35524617435" dependencies = [ "gix-actor", + "gix-attributes", + "gix-command", "gix-commitgraph", "gix-config", "gix-date", "gix-diff", + "gix-dir", "gix-discover", "gix-features", + "gix-filter", "gix-fs", "gix-glob", "gix-hash", "gix-hashtable", + "gix-ignore", "gix-index", "gix-lock", "gix-object", "gix-odb", "gix-pack", "gix-path", + "gix-pathspec", "gix-protocol", "gix-ref", "gix-refspec", @@ -519,12 +602,15 @@ dependencies = [ "gix-revwalk", "gix-sec", "gix-shallow", + "gix-status", + "gix-submodule", "gix-tempfile", "gix-trace", "gix-traverse", "gix-url", "gix-utils", "gix-validate", + "gix-worktree", "once_cell", "parking_lot 0.12.3", "signal-hook", @@ -534,16 +620,33 @@ dependencies = [ [[package]] name = "gix-actor" -version = "0.33.2" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20018a1a6332e065f1fcc8305c1c932c6b8c9985edea2284b3c79dc6fa3ee4b2" +checksum = "f438c87d4028aca4b82f82ba8d8ab1569823cfb3e5bc5fa8456a71678b2a20e7" dependencies = [ "bstr", "gix-date", "gix-utils", "itoa", "thiserror 2.0.11", - "winnow 0.6.26", + "winnow", +] + +[[package]] +name = "gix-attributes" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4e25825e0430aa11096f8b65ced6780d4a96a133f81904edceebb5344c8dd7f" +dependencies = [ + "bstr", + "gix-glob", + "gix-path", + "gix-quote", + "gix-trace", + "kstring", + "smallvec", + "thiserror 2.0.11", + "unicode-bom", ] [[package]] @@ -566,25 +669,25 @@ dependencies = [ [[package]] name = "gix-command" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb410b84d6575db45e62025a9118bdbf4d4b099ce7575a76161e898d9ca98df1" +checksum = "c0378995847773a697f8e157fe2963ecf3462fe64be05b7b3da000b3b472def8" dependencies = [ "bstr", "gix-path", + "gix-quote", "gix-trace", "shell-words", ] [[package]] name = "gix-commitgraph" -version = "0.25.1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8da6591a7868fb2b6dabddea6b09988b0b05e0213f938dbaa11a03dd7a48d85" +checksum = "043cbe49b7a7505150db975f3cb7c15833335ac1e26781f615454d9d640a28fe" dependencies = [ "bstr", "gix-chunk", - "gix-features", "gix-hash", "memmap2", "thiserror 2.0.11", @@ -592,9 +695,9 @@ dependencies = [ [[package]] name = "gix-config" -version = "0.42.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6649b406ca1f99cb148959cf00468b231f07950f8ec438cc0903cda563606f19" +checksum = "9c6f830bf746604940261b49abf7f655d2c19cadc9f4142ae9379e3a316e8cfa" dependencies = [ "bstr", "gix-config-value", @@ -608,14 +711,14 @@ dependencies = [ "smallvec", "thiserror 2.0.11", "unicode-bom", - "winnow 0.6.26", + "winnow", ] [[package]] name = "gix-config-value" -version = "0.14.11" +version = "0.14.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11365144ef93082f3403471dbaa94cfe4b5e72743bdb9560719a251d439f4cee" +checksum = "8dc2c844c4cf141884678cabef736fd91dd73068b9146e6f004ba1a0457944b6" dependencies = [ "bitflags 2.8.0", "bstr", @@ -626,9 +729,9 @@ dependencies = [ [[package]] name = "gix-date" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c57c477b645ee248b173bb1176b52dd528872f12c50375801a58aaf5ae91113f" +checksum = "daa30058ec7d3511fbc229e4f9e696a35abd07ec5b82e635eff864a2726217e4" dependencies = [ "bstr", "itoa", @@ -638,21 +741,53 @@ dependencies = [ [[package]] name = "gix-diff" -version = "0.49.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8e92566eccbca205a0a0f96ffb0327c061e85bc5c95abbcddfe177498aa04f6" +checksum = "a2c975dad2afc85e4e233f444d1efbe436c3cdcf3a07173984509c436d00a3f8" dependencies = [ "bstr", + "gix-attributes", + "gix-command", + "gix-filter", + "gix-fs", "gix-hash", + "gix-index", "gix-object", + "gix-path", + "gix-pathspec", + "gix-tempfile", + "gix-trace", + "gix-traverse", + "gix-worktree", + "imara-diff", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-dir" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5879497bd3815d8277ed864ec8975290a70de5b62bb92d2d666a4cefc5d4793b" +dependencies = [ + "bstr", + "gix-discover", + "gix-fs", + "gix-ignore", + "gix-index", + "gix-object", + "gix-path", + "gix-pathspec", + "gix-trace", + "gix-utils", + "gix-worktree", "thiserror 2.0.11", ] [[package]] name = "gix-discover" -version = "0.37.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bf6dfa4e266a4a9becb4d18fc801f92c3f7cc6c433dd86fdadbcf315ffb6ef" +checksum = "f7fb8a4349b854506a3915de18d3341e5f1daa6b489c8affc9ca0d69efe86781" dependencies = [ "bstr", "dunce", @@ -666,39 +801,62 @@ dependencies = [ [[package]] name = "gix-features" -version = "0.39.1" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d85d673f2e022a340dba4713bed77ef2cf4cd737d2f3e0f159d45e0935fd81f" +checksum = "016d6050219458d14520fe22bdfdeb9cb71631dec9bc2724767c983f60109634" dependencies = [ "crc32fast", "flate2", - "gix-hash", + "gix-path", "gix-trace", "gix-utils", "libc", "once_cell", "prodash", - "sha1_smol", "thiserror 2.0.11", "walkdir", ] +[[package]] +name = "gix-filter" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb2b2bbffdc5cc9b2b82fc82da1b98163c9b423ac2b45348baa83a947ac9ab89" +dependencies = [ + "bstr", + "encoding_rs", + "gix-attributes", + "gix-command", + "gix-hash", + "gix-object", + "gix-packetline-blocking", + "gix-path", + "gix-quote", + "gix-trace", + "gix-utils", + "smallvec", + "thiserror 2.0.11", +] + [[package]] name = "gix-fs" -version = "0.12.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3d4fac505a621f97e5ce2c69fdc425742af00c0920363ca4074f0eb48b1db9" +checksum = "951e886120dc5fa8cac053e5e5c89443f12368ca36811b2e43d1539081f9c111" dependencies = [ + "bstr", "fastrand", "gix-features", + "gix-path", "gix-utils", + "thiserror 2.0.11", ] [[package]] name = "gix-glob" -version = "0.17.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf69a6bec0a3581567484bf99a4003afcaf6c469fd4214352517ea355cf3435" +checksum = "20972499c03473e773a2099e5fd0c695b9b72465837797a51a43391a1635a030" dependencies = [ "bitflags 2.8.0", "bstr", @@ -708,30 +866,45 @@ dependencies = [ [[package]] name = "gix-hash" -version = "0.15.1" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5eccc17194ed0e67d49285e4853307e4147e95407f91c1c3e4a13ba9f4e4ce" +checksum = "834e79722063958b03342edaa1e17595cd2939bb2b3306b3225d0815566dcb49" dependencies = [ "faster-hex", + "gix-features", + "sha1-checked", "thiserror 2.0.11", ] [[package]] name = "gix-hashtable" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef65b256631078ef733bc5530c4e6b1c2e7d5c2830b75d4e9034ab3997d18fe" +checksum = "f06066d8702a9186dc1fdc1ed751ff2d7e924ceca21cb5d51b8f990c9c2e014a" dependencies = [ "gix-hash", "hashbrown 0.14.5", "parking_lot 0.12.3", ] +[[package]] +name = "gix-ignore" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a27c8380f493a10d1457f756a3f81924d578fc08d6535e304dfcafbf0261d18" +dependencies = [ + "bstr", + "gix-glob", + "gix-path", + "gix-trace", + "unicode-bom", +] + [[package]] name = "gix-index" -version = "0.37.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "270645fd20556b64c8ffa1540d921b281e6994413a0ca068596f97e9367a257a" +checksum = "855bece2d4153453aa5d0a80d51deea1ce8cd6a3b4cf213da85ac344ccb908a7" dependencies = [ "bitflags 2.8.0", "bstr", @@ -757,9 +930,9 @@ dependencies = [ [[package]] name = "gix-lock" -version = "15.0.1" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd3ab68a452db63d9f3ebdacb10f30dba1fa0d31ac64f4203d395ed1102d940" +checksum = "df47b8f11c34520db5541bc5fc9fbc8e4b0bdfcec3736af89ccb1a5728a0126f" dependencies = [ "gix-tempfile", "gix-utils", @@ -768,9 +941,9 @@ dependencies = [ [[package]] name = "gix-object" -version = "0.46.1" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e42d58010183ef033f31088479b4eb92b44fe341b35b62d39eb8b185573d77ea" +checksum = "4943fcdae6ffc135920c9ea71e0362ed539182924ab7a85dd9dac8d89b0dd69a" dependencies = [ "bstr", "gix-actor", @@ -784,14 +957,14 @@ dependencies = [ "itoa", "smallvec", "thiserror 2.0.11", - "winnow 0.6.26", + "winnow", ] [[package]] name = "gix-odb" -version = "0.66.0" +version = "0.68.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb780eceb3372ee204469478de02eaa34f6ba98247df0186337e0333de97d0ae" +checksum = "50306d40dcc982eb6b7593103f066ea6289c7b094cb9db14f3cd2be0b9f5e610" dependencies = [ "arc-swap", "gix-date", @@ -810,9 +983,9 @@ dependencies = [ [[package]] name = "gix-pack" -version = "0.56.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4158928929be29cae7ab97afc8e820a932071a7f39d8ba388eed2380c12c566c" +checksum = "9b65fffb09393c26624ca408d32cfe8776fb94cd0a5cdf984905e1d2f39779cb" dependencies = [ "clru", "gix-chunk", @@ -828,9 +1001,21 @@ dependencies = [ [[package]] name = "gix-packetline" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "123844a70cf4d5352441dc06bab0da8aef61be94ec239cb631e0ba01dc6d3a04" +dependencies = [ + "bstr", + "faster-hex", + "gix-trace", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-packetline-blocking" version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e5ae6bc3ac160a6bf44a55f5537813ca3ddb08549c0fd3e7ef699c73c439cd" +checksum = "1ecf3ea2e105c7e45587bac04099824301262a6c43357fad5205da36dbb233b3" dependencies = [ "bstr", "faster-hex", @@ -840,9 +1025,9 @@ dependencies = [ [[package]] name = "gix-path" -version = "0.10.14" +version = "0.10.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c40f12bb65a8299be0cfb90fe718e3be236b7a94b434877012980863a883a99f" +checksum = "f910668e2f6b2a55ff35a1f04df88a1a049f7b868507f4cbeeaa220eaba7be87" dependencies = [ "bstr", "gix-trace", @@ -851,11 +1036,26 @@ dependencies = [ "thiserror 2.0.11", ] +[[package]] +name = "gix-pathspec" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fef8422c3c9066d649074b24025125963f85232bfad32d6d16aea9453b82ec14" +dependencies = [ + "bitflags 2.8.0", + "bstr", + "gix-attributes", + "gix-config-value", + "gix-glob", + "gix-path", + "thiserror 2.0.11", +] + [[package]] name = "gix-protocol" -version = "0.47.0" +version = "0.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c84642e8b6fed7035ce9cc449593019c55b0ec1af7a5dce1ab8a0636eaaeb067" +checksum = "5678ddae1d62880bc30e2200be1b9387af3372e0e88e21f81b4e7f8367355b5a" dependencies = [ "bstr", "gix-date", @@ -867,14 +1067,14 @@ dependencies = [ "gix-utils", "maybe-async", "thiserror 2.0.11", - "winnow 0.6.26", + "winnow", ] [[package]] name = "gix-quote" -version = "0.4.15" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e49357fccdb0c85c0d3a3292a9f6db32d9b3535959b5471bb9624908f4a066c6" +checksum = "1b005c550bf84de3b24aa5e540a23e6146a1c01c7d30470e35d75a12f827f969" dependencies = [ "bstr", "gix-utils", @@ -883,9 +1083,9 @@ dependencies = [ [[package]] name = "gix-ref" -version = "0.49.1" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91b61776c839d0f1b7114901179afb0947aa7f4d30793ca1c56d335dfef485f" +checksum = "b2e1f7eb6b7ce82d2d19961f74bd637bab3ea79b1bc7bfb23dbefc67b0415d8b" dependencies = [ "gix-actor", "gix-features", @@ -899,14 +1099,14 @@ dependencies = [ "gix-validate", "memmap2", "thiserror 2.0.11", - "winnow 0.6.26", + "winnow", ] [[package]] name = "gix-refspec" -version = "0.27.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00c056bb747868c7eb0aeb352c9f9181ab8ca3d0a2550f16470803500c6c413d" +checksum = "1d8587b21e2264a6e8938d940c5c99662779c13a10741a5737b15fc85c252ffc" dependencies = [ "bstr", "gix-hash", @@ -918,9 +1118,9 @@ dependencies = [ [[package]] name = "gix-revision" -version = "0.31.1" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e1ddc474405a68d2ce8485705dd72fe6ce959f2f5fe718601ead5da2c8f9e7" +checksum = "342caa4e158df3020cadf62f656307c3948fe4eacfdf67171d7212811860c3e9" dependencies = [ "bitflags 2.8.0", "bstr", @@ -936,9 +1136,9 @@ dependencies = [ [[package]] name = "gix-revwalk" -version = "0.17.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "510026fc32f456f8f067d8f37c34088b97a36b2229d88a6a5023ef179fcb109d" +checksum = "2dc7c3d7e5cdc1ab8d35130106e4af0a4f9f9eca0c81f4312b690780e92bde0d" dependencies = [ "gix-commitgraph", "gix-date", @@ -951,9 +1151,9 @@ dependencies = [ [[package]] name = "gix-sec" -version = "0.10.11" +version = "0.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d84dae13271f4313f8d60a166bf27e54c968c7c33e2ffd31c48cafe5da649875" +checksum = "47aeb0f13de9ef2f3033f5ff218de30f44db827ac9f1286f9ef050aacddd5888" dependencies = [ "bitflags 2.8.0", "gix-path", @@ -963,9 +1163,9 @@ dependencies = [ [[package]] name = "gix-shallow" -version = "0.1.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2673242e87492cb6ff671f0c01f689061ca306c4020f137197f3abc84ce01" +checksum = "cc0598aacfe1d52575a21c9492fee086edbb21e228ec36c819c42ab923f434c3" dependencies = [ "bstr", "gix-hash", @@ -973,12 +1173,51 @@ dependencies = [ "thiserror 2.0.11", ] +[[package]] +name = "gix-status" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "605a6d0eb5891680c46e24b2ee7a63ef7bd39cb136dc7c7e55172960cf68b2f5" +dependencies = [ + "bstr", + "filetime", + "gix-diff", + "gix-dir", + "gix-features", + "gix-filter", + "gix-fs", + "gix-hash", + "gix-index", + "gix-object", + "gix-path", + "gix-pathspec", + "gix-worktree", + "portable-atomic", + "thiserror 2.0.11", +] + +[[package]] +name = "gix-submodule" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c7390c2059505c365e9548016d4edc9f35749c6a9112b7b1214400bbc68da2" +dependencies = [ + "bstr", + "gix-config", + "gix-path", + "gix-pathspec", + "gix-refspec", + "gix-url", + "thiserror 2.0.11", +] + [[package]] name = "gix-tempfile" -version = "15.0.0" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2feb86ef094cc77a4a9a5afbfe5de626897351bbbd0de3cb9314baf3049adb82" +checksum = "3d6de439bbb9a5d3550c9c7fab0e16d2d637d120fcbe0dfbc538772a187f099b" dependencies = [ + "dashmap", "gix-fs", "libc", "once_cell", @@ -996,9 +1235,9 @@ checksum = "7c396a2036920c69695f760a65e7f2677267ccf483f25046977d87e4cb2665f7" [[package]] name = "gix-transport" -version = "0.44.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d91e507a8713cfa2318d5a85d75b36e53a40379cc7eb7634ce400ecacbaf" +checksum = "b3f68c2870bfca8278389d2484a7f2215b67d0b0cc5277d3c72ad72acf41787e" dependencies = [ "bstr", "gix-command", @@ -1012,9 +1251,9 @@ dependencies = [ [[package]] name = "gix-traverse" -version = "0.43.1" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed47d648619e23e93f971d2bba0d10c1100e54ef95d2981d609907a8cabac89" +checksum = "36c0b049f8bdb61b20016694102f7b507f2e1727e83e9c5e6dad4f7d84ff7384" dependencies = [ "bitflags 2.8.0", "gix-commitgraph", @@ -1029,9 +1268,9 @@ dependencies = [ [[package]] name = "gix-url" -version = "0.28.2" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d096fb733ba6bd3f5403dba8bd72bdd8809fe2b347b57844040b8f49c93492d9" +checksum = "48dfe23f93f1ddb84977d80bb0dd7aa09d1bf5d5afc0c9b6820cccacc25ae860" dependencies = [ "bstr", "gix-features", @@ -1043,24 +1282,44 @@ dependencies = [ [[package]] name = "gix-utils" -version = "0.1.14" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08f24e03ac8916c478c8419d7d3c33393da9bb41fa4c24455d5406aeefd35f" +checksum = "189f8724cf903e7fd57cfe0b7bc209db255cacdcb22c781a022f52c3a774f8d0" dependencies = [ + "bstr", "fastrand", "unicode-normalization", ] [[package]] name = "gix-validate" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eaa01c3337d885617c0a42e92823922a2aea71f4caeace6fe87002bdcadbd90" +checksum = "34b5f1253109da6c79ed7cf6e1e38437080bb6d704c76af14c93e2f255234084" dependencies = [ "bstr", "thiserror 2.0.11", ] +[[package]] +name = "gix-worktree" +version = "0.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7760dbc4b79aa274fed30adc0d41dca6b917641f26e7867c4071b1fb4dc727b" +dependencies = [ + "bstr", + "gix-attributes", + "gix-features", + "gix-fs", + "gix-glob", + "gix-hash", + "gix-ignore", + "gix-index", + "gix-object", + "gix-path", + "gix-validate", +] + [[package]] name = "hashbrown" version = "0.14.5" @@ -1076,6 +1335,9 @@ name = "hashbrown" version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash", +] [[package]] name = "home" @@ -1254,6 +1516,15 @@ dependencies = [ "icu_properties", ] +[[package]] +name = "imara-diff" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17d34b7d42178945f775e84bc4c36dde7c1c6cdfea656d3354d009056f2bb3d2" +dependencies = [ + "hashbrown 0.15.2", +] + [[package]] name = "indexmap" version = "2.7.1" @@ -1281,10 +1552,11 @@ checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "jiff" -version = "0.1.29" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c04ef77ae73f3cf50510712722f0c4e8b46f5aaa1bf5ffad2ae213e6495e78e5" +checksum = "1f33145a5cbea837164362c7bd596106eb7c5198f97d1ba6f6ebb3223952e488" dependencies = [ + "jiff-static", "jiff-tzdb-platform", "log", "portable-atomic", @@ -1293,17 +1565,28 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "jiff-static" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43ce13c40ec6956157a3635d97a1ee2df323b263f09ea14165131289cb0f5c19" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "jiff-tzdb" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2cec2f5d266af45a071ece48b1fb89f3b00b2421ac3a5fe10285a6caaa60d3" +checksum = "c1283705eb0a21404d2bfd6eef2a7593d240bc42a0bdb39db0ad6fa2ec026524" [[package]] name = "jiff-tzdb-platform" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a63c62e404e7b92979d2792352d885a7f8f83fd1d0d31eea582d77b2ceca697e" +checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" dependencies = [ "jiff-tzdb", ] @@ -1318,6 +1601,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kstring" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1" +dependencies = [ + "static_assertions", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -1605,9 +1897,9 @@ dependencies = [ [[package]] name = "prodash" -version = "29.0.0" +version = "29.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a266d8d6020c61a437be704c5e618037588e1985c7dbb7bf8d265db84cffe325" +checksum = "9ee7ce24c980b976607e2d6ae4aae92827994d23fed71659c3ede3f92528b58b" dependencies = [ "log", "parking_lot 0.12.3", @@ -1801,10 +2093,25 @@ dependencies = [ ] [[package]] -name = "sha1_smol" -version = "1.0.1" +name = "sha1" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha1-checked" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89f599ac0c323ebb1c6082821a54962b839832b03984598375bff3975b804423" +dependencies = [ + "digest", + "sha1", +] [[package]] name = "sharded-slab" @@ -1884,6 +2191,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "strsim" version = "0.11.1" @@ -2105,7 +2418,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow 0.7.3", + "winnow", ] [[package]] @@ -2190,6 +2503,12 @@ dependencies = [ "syn", ] +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + [[package]] name = "unicode-bom" version = "2.0.3" @@ -2242,9 +2561,9 @@ checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vergen" -version = "9.0.4" +version = "9.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0d2f179f8075b805a43a2a21728a46f0cc2921b3c58695b28fa8817e103cd9a" +checksum = "6b2bf58be11fc9414104c6d3a2e464163db5ef74b12296bda593cac37b6e4777" dependencies = [ "anyhow", "cargo_metadata", @@ -2258,9 +2577,9 @@ dependencies = [ [[package]] name = "vergen-gix" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b218ac3c56c2c31227bd7813735bfa51eb0dc5212e6d4bab6eac7c8208e5b66" +checksum = "5f8dfe6eb333a1397e596164ae7326f68e4b95267b41aedc6aa3c81f3426a010" dependencies = [ "anyhow", "derive_builder", @@ -2565,15 +2884,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "winnow" -version = "0.6.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" -dependencies = [ - "memchr", -] - [[package]] name = "winnow" version = "0.7.3" diff --git a/Cargo.toml b/Cargo.toml index 2e47d15..c67d063 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ chrono = { version = "0.4.40", features = ["serde"] } sled = "0.34.7" tokio = { version = "1.44.2", features = ["full"] } [build-dependencies] -vergen-gix = { version = "1.0.0", features = ["build", "cargo", "rustc"] } +vergen-gix = { version = "1.0.9", features = ["build", "cargo", "rustc"] } [profile.release] codegen-units = 1 # Make builds deterministic [profile.dev] From 5d54b8ff0426f7bfc0a4610bf9f6b876ec7ac2bf Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 10 Apr 2025 21:10:15 +0100 Subject: [PATCH 140/163] better logging --- src/api.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api.rs b/src/api.rs index 2f1a60f..8e5fc49 100644 --- a/src/api.rs +++ b/src/api.rs @@ -162,7 +162,7 @@ impl Registry for EngineTaskRegistry { } pub async fn clear_sled_periodically(api: Arc>, n_minutes: u64) { - EngineAPI::setup_logger(); + //EngineAPI::setup_logger(); info!("Sled Cron Job Started"); let mut interval = interval(Duration::from_secs(n_minutes * 60)); loop { From 677e557f393be35462c86147e4fdece2fd557d02 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 10 Apr 2025 21:11:18 +0100 Subject: [PATCH 141/163] better logging --- src/api.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/api.rs b/src/api.rs index 8e5fc49..11522fc 100644 --- a/src/api.rs +++ b/src/api.rs @@ -167,6 +167,7 @@ pub async fn clear_sled_periodically(api: Arc>, n_minutes: u64 let mut interval = interval(Duration::from_secs(n_minutes * 60)); loop { interval.tick().await; // Wait for the interval + info!("Purging Unsolved Tasks"); let now = Utc::now().timestamp(); // Current timestamp in seconds let mut moved_tasks: Vec<(String, String, StoredTask)> = Vec::new(); let mut rw_api = api.write().await; From 84ce8a175cf9c68e77094d1533f706ea1a33dea6 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 14 Apr 2025 12:42:09 +0100 Subject: [PATCH 142/163] task verification --- Cargo.lock | 5 +++-- macros/Cargo.lock | 12 ++++++++++++ macros/Cargo.toml | 1 + macros/src/lib.rs | 17 +++++++++++++++++ src/task.rs | 6 +++++- tests/event_tests.rs | 9 +++++---- 6 files changed, 43 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 239265b..5fcc1b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1677,6 +1677,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", + "syn", ] [[package]] @@ -2205,9 +2206,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.98" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", diff --git a/macros/Cargo.lock b/macros/Cargo.lock index 3bbafe4..5bb0ace 100644 --- a/macros/Cargo.lock +++ b/macros/Cargo.lock @@ -8,6 +8,7 @@ version = "0.1.0" dependencies = [ "proc-macro2", "quote", + "syn", ] [[package]] @@ -28,6 +29,17 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "syn" +version = "2.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "unicode-ident" version = "1.0.17" diff --git a/macros/Cargo.toml b/macros/Cargo.toml index 019f123..66bae20 100644 --- a/macros/Cargo.toml +++ b/macros/Cargo.toml @@ -7,3 +7,4 @@ proc-macro = true [dependencies] proc-macro2 = "1.0.93" quote = "1.0.38" +syn = "2.0.100" diff --git a/macros/src/lib.rs b/macros/src/lib.rs index 437c7c1..e50749d 100644 --- a/macros/src/lib.rs +++ b/macros/src/lib.rs @@ -1,5 +1,6 @@ use proc_macro::TokenStream; use quote::quote; +use syn::{DeriveInput, parse_macro_input}; #[proc_macro_attribute] pub fn metadata(_attr: TokenStream, item: TokenStream) -> TokenStream { let item = proc_macro2::TokenStream::from(item); @@ -18,3 +19,19 @@ pub fn module(_attr: TokenStream, item: TokenStream) -> TokenStream { } .into() } +#[proc_macro_derive(Verifiable)] +pub fn derive_verifiable(input: TokenStream) -> TokenStream { + let input = parse_macro_input!(input as DeriveInput); + let name = input.ident; + + let expanded = quote! { + impl Verifiable for #name { + fn verify(&self, b: Vec) -> bool { + let k: Result<#name, _> = bincode::deserialize(b.as_slice()); + k.is_ok() + } + } + }; + + TokenStream::from(expanded) +} diff --git a/src/task.rs b/src/task.rs index a3f2c6b..f46040c 100644 --- a/src/task.rs +++ b/src/task.rs @@ -32,7 +32,11 @@ pub struct SolvedTasks { pub struct ExecutingTaskQueue { pub tasks: HashMap>, } -pub trait Task: Debug + Sync + Send { + +pub trait Verifiable { + fn verify(&self, b: Vec) -> bool; +} +pub trait Task: Debug + Sync + Send + Verifiable { fn get_id(&self) -> Identifier; fn clone_box(&self) -> Box; #[instrument] diff --git a/tests/event_tests.rs b/tests/event_tests.rs index 75098b4..78c4115 100644 --- a/tests/event_tests.rs +++ b/tests/event_tests.rs @@ -6,8 +6,9 @@ use enginelib::{ }, events::ID, plugin::LibraryManager, - task::{SolvedTasks, TaskQueue}, + task::{SolvedTasks, TaskQueue, Verifiable}, }; +use macros::Verifiable; use sled::Config; use std::{any::Any, collections::HashMap, sync::Arc}; use tracing_test::traced_test; @@ -90,7 +91,7 @@ fn test_task_registration() { use enginelib::task::Task; use serde::{Deserialize, Serialize}; - #[derive(Debug, Clone, Serialize, Deserialize)] + #[derive(Debug, Clone, Serialize, Deserialize, Verifiable)] struct TestTask { pub value: i32, pub id: (String, String), @@ -136,7 +137,7 @@ fn test_task_execution() { use enginelib::task::{Runner, Task}; use serde::{Deserialize, Serialize}; - #[derive(Debug, Clone, Serialize, Deserialize)] + #[derive(Debug, Clone, Serialize, Deserialize, Verifiable)] struct TestTask { pub value: i32, pub id: (String, String), @@ -177,7 +178,7 @@ fn test_task_serialization() { use enginelib::task::{StoredTask, Task}; use serde::{Deserialize, Serialize}; - #[derive(Debug, Clone, Serialize, Deserialize)] + #[derive(Debug, Clone, Serialize, Deserialize, Verifiable)] struct TestTask { pub value: i32, pub id: (String, String), From 6db8092b4d0077d9787c1f1186dbeb423a07a107 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 14 Apr 2025 13:21:53 +0100 Subject: [PATCH 143/163] fix task loading --- src/api.rs | 2 +- src/events/mod.rs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/api.rs b/src/api.rs index 11522fc..d6a3531 100644 --- a/src/api.rs +++ b/src/api.rs @@ -78,10 +78,10 @@ impl EngineAPI { Self::setup_logger(); api.cfg = Config::new(); Self::init_db(api); - Events::init(api); let mut newLibManager = LibraryManager::default(); newLibManager.load_modules(api); api.lib_manager = newLibManager; + Events::init(api); } pub fn init_chron(api: Arc>) { let t = api.try_read().unwrap().cfg.config_toml.clean_tasks; diff --git a/src/events/mod.rs b/src/events/mod.rs index 15425eb..5c2ef2f 100644 --- a/src/events/mod.rs +++ b/src/events/mod.rs @@ -50,8 +50,11 @@ impl Events { } pub fn init(api: &mut EngineAPI) { for (id, tsk) in api.task_registry.tasks.iter() { - api.task_queue.tasks.insert(id.clone(), Vec::new()); + api.task_queue.tasks.entry(id.clone()).or_default(); + api.executing_tasks.tasks.entry(id.clone()).or_default(); + api.solved_tasks.tasks.entry(id.clone()).or_default(); } + crate::register_event!( api, core, From a11dd33d6ffca67e68667647d30cb6611206bccc Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 14 Apr 2025 15:56:45 +0100 Subject: [PATCH 144/163] fix task registrying logger not being active --- src/api.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/api.rs b/src/api.rs index d6a3531..c8c2787 100644 --- a/src/api.rs +++ b/src/api.rs @@ -5,7 +5,7 @@ use tokio::{ sync::RwLock, time::{interval, sleep}, }; -use tracing::{Level, debug, error, info}; +use tracing::{Level, debug, error, info, instrument}; use crate::{ Identifier, Registry, @@ -147,6 +147,7 @@ pub struct EngineTaskRegistry { pub tasks: HashMap>, } impl Registry for EngineTaskRegistry { + #[instrument] fn register(&mut self, task: Arc, identifier: Identifier) { // Insert the task into the hashmap with (mod_id, identifier) as the key debug!( From 00c6b6cfc74849a4aebc8eb81b6709fa8e431b6d Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 14 Apr 2025 16:04:54 +0100 Subject: [PATCH 145/163] init packet --- src/api.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/api.rs b/src/api.rs index c8c2787..24dd0d0 100644 --- a/src/api.rs +++ b/src/api.rs @@ -83,6 +83,11 @@ impl EngineAPI { api.lib_manager = newLibManager; Events::init(api); } + pub fn init_packer(api: &mut Self) { + Self::setup_logger(); + let mut newLibManager = LibraryManager::default(); + newLibManager.load_modules(api); + } pub fn init_chron(api: Arc>) { let t = api.try_read().unwrap().cfg.config_toml.clean_tasks; spawn(clear_sled_periodically(api, t)); From 1db39a7e81d2fec9b978bfc0f2fad0526680f7f9 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 14 Apr 2025 17:27:16 +0100 Subject: [PATCH 146/163] packer specific task fn --- src/task.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/task.rs b/src/task.rs index f46040c..ed6c135 100644 --- a/src/task.rs +++ b/src/task.rs @@ -66,6 +66,7 @@ pub trait Task: Debug + Sync + Send + Verifiable { fn to_bytes(&self) -> Vec; #[allow(clippy::wrong_self_convention)] fn from_bytes(&self, bytes: &[u8]) -> Box; + fn from_toml(&self, d: String) -> Box; } #[derive(Debug, Clone, Copy)] From 37a46cd27a88c09002d52f1068d7d23c38a65f49 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 14 Apr 2025 17:29:08 +0100 Subject: [PATCH 147/163] tests --- tests/event_tests.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/event_tests.rs b/tests/event_tests.rs index 78c4115..7d09b9b 100644 --- a/tests/event_tests.rs +++ b/tests/event_tests.rs @@ -113,6 +113,9 @@ fn test_task_registration() { fn from_bytes(&self, bytes: &[u8]) -> Box { Box::new(bincode::deserialize::(bytes).unwrap()) } + fn from_toml(&self, d: String) -> Box { + return Box::new(self.clone()); + } } let mut api = EngineAPI::test_default(); let task_id = ID("test", "test_task"); @@ -144,6 +147,9 @@ fn test_task_execution() { } impl Task for TestTask { + fn from_toml(&self, d: String) -> Box { + return Box::new(self.clone()); + } fn get_id(&self) -> (String, String) { self.id.clone() } @@ -185,6 +191,9 @@ fn test_task_serialization() { } impl Task for TestTask { + fn from_toml(&self, d: String) -> Box { + return Box::new(self.clone()); + } fn get_id(&self) -> (String, String) { self.id.clone() } From fa2b0bbccdf87511b51fc7b8e70b99e14c4e5260 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 14 Apr 2025 18:35:38 +0100 Subject: [PATCH 148/163] packer support --- src/task.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/task.rs b/src/task.rs index ed6c135..6099342 100644 --- a/src/task.rs +++ b/src/task.rs @@ -67,6 +67,7 @@ pub trait Task: Debug + Sync + Send + Verifiable { #[allow(clippy::wrong_self_convention)] fn from_bytes(&self, bytes: &[u8]) -> Box; fn from_toml(&self, d: String) -> Box; + fn to_toml(&self) -> String; } #[derive(Debug, Clone, Copy)] From bf08b03ec1bef86929502638e08c9625f3787be2 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Mon, 5 May 2025 21:32:20 +0100 Subject: [PATCH 149/163] fix tests --- tests/event_tests.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/event_tests.rs b/tests/event_tests.rs index 7d09b9b..cae594c 100644 --- a/tests/event_tests.rs +++ b/tests/event_tests.rs @@ -98,6 +98,9 @@ fn test_task_registration() { } impl Task for TestTask { + fn to_toml(&self) -> String { + "".into() + } fn get_id(&self) -> (String, String) { self.id.clone() } @@ -147,6 +150,9 @@ fn test_task_execution() { } impl Task for TestTask { + fn to_toml(&self) -> String { + "".into() + } fn from_toml(&self, d: String) -> Box { return Box::new(self.clone()); } @@ -191,6 +197,9 @@ fn test_task_serialization() { } impl Task for TestTask { + fn to_toml(&self) -> String { + "".into() + } fn from_toml(&self, d: String) -> Box { return Box::new(self.clone()); } From 4a19bd8e6ad33d34ca9459340d9ca7611c8a3dc2 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 6 May 2025 20:11:44 +0100 Subject: [PATCH 150/163] add TaskState Enum --- src/task.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/task.rs b/src/task.rs index 6099342..62c4787 100644 --- a/src/task.rs +++ b/src/task.rs @@ -8,6 +8,11 @@ use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use tracing::{error, instrument, warn}; +pub enum TaskState { + StoredTask(StoredTask), + StoredExecutingTask(StoredExecutingTask), +} + #[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct StoredTask { pub bytes: Vec, From 0e9c95e930cd7a7967ab734347c1fce912a7f9cc Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 6 May 2025 20:15:49 +0100 Subject: [PATCH 151/163] add TaskState clone --- src/task.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/task.rs b/src/task.rs index 62c4787..4861cb9 100644 --- a/src/task.rs +++ b/src/task.rs @@ -7,7 +7,7 @@ use crate::{Identifier, Registry}; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use tracing::{error, instrument, warn}; - +#[derive(Clone)] pub enum TaskState { StoredTask(StoredTask), StoredExecutingTask(StoredExecutingTask), From 75d16dd867ef1164719917f4f36dc30f30abfdf8 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 6 May 2025 20:17:17 +0100 Subject: [PATCH 152/163] add TaskState missing vec --- src/task.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/task.rs b/src/task.rs index 4861cb9..53555ea 100644 --- a/src/task.rs +++ b/src/task.rs @@ -9,8 +9,8 @@ use serde::{Deserialize, Serialize}; use tracing::{error, instrument, warn}; #[derive(Clone)] pub enum TaskState { - StoredTask(StoredTask), - StoredExecutingTask(StoredExecutingTask), + StoredTask(Vec), + StoredExecutingTask(Vec), } #[derive(Debug, Default, Clone, Serialize, Deserialize)] From 75cdf1ef1294d6b25961cc4759a29daf54a0a895 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 6 May 2025 20:19:47 +0100 Subject: [PATCH 153/163] undo experiment --- src/task.rs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/task.rs b/src/task.rs index 53555ea..6099342 100644 --- a/src/task.rs +++ b/src/task.rs @@ -7,11 +7,6 @@ use crate::{Identifier, Registry}; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use tracing::{error, instrument, warn}; -#[derive(Clone)] -pub enum TaskState { - StoredTask(Vec), - StoredExecutingTask(Vec), -} #[derive(Debug, Default, Clone, Serialize, Deserialize)] pub struct StoredTask { From 856dbb72535e749cf9a4b68fb4c82573119a697d Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 30 Jul 2025 15:16:11 +0100 Subject: [PATCH 154/163] pagination limit to cfg --- src/config.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/config.rs b/src/config.rs index 0aaf10e..239b9f8 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,4 +1,4 @@ -use std::{fs, io::Error}; +use std::{fs, io::Error, u32}; use serde::{Deserialize, Serialize}; use tracing::{error, instrument}; @@ -8,6 +8,7 @@ pub struct ConfigTomlServer { pub cgrpc_token: Option, // Administrator Token, used to invoke cgrpc reqs. If not preset will default to no protection. pub port: String, pub clean_tasks: u64, + pub pagination_limit: u32, } impl Default for ConfigTomlServer { fn default() -> Self { @@ -15,6 +16,7 @@ impl Default for ConfigTomlServer { port: "[::1]:50051".into(), cgrpc_token: None, clean_tasks: 60, + pagination_limit: u32::MAX, } } } From 0e0fe0ef22442675c29ee8968dcb830b002b5f0b Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 31 Jul 2025 19:32:15 +0100 Subject: [PATCH 155/163] sync_db fn #16 --- src/api.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/api.rs b/src/api.rs index 24dd0d0..7aea249 100644 --- a/src/api.rs +++ b/src/api.rs @@ -92,6 +92,19 @@ impl EngineAPI { let t = api.try_read().unwrap().cfg.config_toml.clean_tasks; spawn(clear_sled_periodically(api, t)); } + pub fn sync_db(api: &mut EngineAPI) { + // IF THIS FN CAUSES PANIC SOMETHING IS VERY BROKEN + let tasks_db = bincode::serialize(&api.task_queue.clone()).unwrap(); + api.db.insert("tasks", tasks_db).unwrap(); + + let executing_tasks_db = bincode::serialize(&api.executing_tasks.clone()).unwrap(); + api.db + .insert("executing_tasks", executing_tasks_db) + .unwrap(); + + let solved_tasks_db = bincode::serialize(&api.solved_tasks.clone()).unwrap(); + api.db.insert("solved_tasks", solved_tasks_db).unwrap(); + } fn init_db(api: &mut EngineAPI) { let tasks = api.db.get("tasks"); let exec_tasks = api.db.get("executing_tasks"); From 3b021776a1cbd0fa842b07e5ac2ec23e7b37594f Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 31 Jul 2025 19:33:58 +0100 Subject: [PATCH 156/163] clean up api.rs --- src/api.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/api.rs b/src/api.rs index 7aea249..0d63e41 100644 --- a/src/api.rs +++ b/src/api.rs @@ -78,9 +78,9 @@ impl EngineAPI { Self::setup_logger(); api.cfg = Config::new(); Self::init_db(api); - let mut newLibManager = LibraryManager::default(); - newLibManager.load_modules(api); - api.lib_manager = newLibManager; + let mut new_lib_manager = LibraryManager::default(); + new_lib_manager.load_modules(api); + api.lib_manager = new_lib_manager; Events::init(api); } pub fn init_packer(api: &mut Self) { From c4f620bf50d4cdd07a388a1859f580138c612d3b Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 31 Jul 2025 19:34:44 +0100 Subject: [PATCH 157/163] clean up plugin.rs --- src/plugin.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugin.rs b/src/plugin.rs index 79838d2..e06ac01 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -8,7 +8,7 @@ use std::{collections::HashMap, fs}; use tracing::{debug, error, info}; #[derive(Clone, Debug)] pub struct LibraryInstance { - dynamicLibrary: Arc>, + dynamic_library: Arc>, pub metadata: Arc, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -169,7 +169,7 @@ impl LibraryManager { self.libraries.insert( metadata.mod_id.clone(), LibraryInstance { - dynamicLibrary: Arc::new(ManuallyDrop::new(lib)), + dynamic_library: Arc::new(ManuallyDrop::new(lib)), metadata: Arc::new(metadata.clone()), }, ); From c45e7fcd79e50fcab0b2a7baec012e00dede6f07 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Thu, 31 Jul 2025 19:40:02 +0100 Subject: [PATCH 158/163] better log message for syncdb --- src/api.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/api.rs b/src/api.rs index 0d63e41..112be12 100644 --- a/src/api.rs +++ b/src/api.rs @@ -94,6 +94,7 @@ impl EngineAPI { } pub fn sync_db(api: &mut EngineAPI) { // IF THIS FN CAUSES PANIC SOMETHING IS VERY BROKEN + let tasks_db = bincode::serialize(&api.task_queue.clone()).unwrap(); api.db.insert("tasks", tasks_db).unwrap(); @@ -104,6 +105,7 @@ impl EngineAPI { let solved_tasks_db = bincode::serialize(&api.solved_tasks.clone()).unwrap(); api.db.insert("solved_tasks", solved_tasks_db).unwrap(); + debug!("Synced In memory db to File db"); } fn init_db(api: &mut EngineAPI) { let tasks = api.db.get("tasks"); From c1f9bc1b0776b848f4216f3478d14adad0be1f98 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 12 Aug 2025 23:14:07 +0100 Subject: [PATCH 159/163] move engine to /engine --- Cargo.lock | 218 +- Cargo.toml | 35 +- engine/Cargo.lock | 4016 ++++++++++++++++++++++++++ engine/Cargo.toml | 32 + LICENSE.md => engine/LICENSE.md | 0 README.md => engine/README.md | 0 build.rs => engine/build.rs | 0 {proto => engine/proto}/engine.proto | 0 {src => engine/src}/bin/client.rs | 0 {src => engine/src}/bin/packer.rs | 0 {src => engine/src}/bin/server.rs | 0 {src => engine/src}/lib.rs | 0 12 files changed, 4160 insertions(+), 141 deletions(-) create mode 100644 engine/Cargo.lock create mode 100644 engine/Cargo.toml rename LICENSE.md => engine/LICENSE.md (100%) rename README.md => engine/README.md (100%) rename build.rs => engine/build.rs (100%) rename {proto => engine/proto}/engine.proto (100%) rename {src => engine/src}/bin/client.rs (100%) rename {src => engine/src}/bin/packer.rs (100%) rename {src => engine/src}/bin/server.rs (100%) rename {src => engine/src}/lib.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index 4a3e5ab..1f1a266 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -61,9 +61,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.19" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" dependencies = [ "anstyle", "anstyle-parse", @@ -91,29 +91,29 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.9" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anyhow" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arc-swap" @@ -271,9 +271,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "camino" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" +checksum = "5d07aa9a93b00c76f71bc35d598bed923f6d4f3a9ca5c24b7737ae1a292841c0" dependencies = [ "serde", ] @@ -298,14 +298,14 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] name = "cc" -version = "1.2.30" +version = "1.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7" +checksum = "2352e5597e9c544d5e6d9c95190d5d27738ade584fa8db0a16e130e5c2b5296e" dependencies = [ "shlex", ] @@ -333,9 +333,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.42" +version = "4.5.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed87a9d530bb41a67537289bafcac159cb3ee28460e0a4571123d2a778a6a882" +checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" dependencies = [ "clap_builder", "clap_derive", @@ -343,9 +343,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.42" +version = "4.5.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64f4f3f3c77c94aff3c7e9aac9a2ca1974a5adf392a8bb751e827d6d127ab966" +checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" dependencies = [ "anstream", "anstyle", @@ -355,18 +355,18 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.55" +version = "4.5.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5abde44486daf70c5be8b8f8f1b66c49f86236edf6fa2abadb4d961c4c6229a" +checksum = "4d9501bd3f5f09f7bbee01da9a511073ed30a80cd7a509f1214bb74eadea71ad" dependencies = [ "clap", ] [[package]] name = "clap_derive" -version = "4.5.41" +version = "4.5.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" +checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6" dependencies = [ "heck", "proc-macro2", @@ -637,7 +637,7 @@ dependencies = [ [[package]] name = "enginelib" version = "0.2.0" -source = "git+https://github.com/GrandEngineering/enginelib.git#c4f620bf50d4cdd07a388a1859f580138c612d3b" +source = "git+https://github.com/GrandEngineering/enginelib.git#c45e7fcd79e50fcab0b2a7baec012e00dede6f07" dependencies = [ "bincode", "chrono", @@ -891,7 +891,7 @@ dependencies = [ "parking_lot 0.12.4", "signal-hook", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -904,7 +904,7 @@ dependencies = [ "gix-date", "gix-utils 0.2.0", "itoa", - "thiserror 2.0.12", + "thiserror 2.0.14", "winnow", ] @@ -921,7 +921,7 @@ dependencies = [ "gix-trace", "kstring", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.14", "unicode-bom", ] @@ -931,7 +931,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1db9765c69502650da68f0804e3dc2b5f8ccc6a2d104ca6c85bc40700d37540" dependencies = [ - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -940,7 +940,7 @@ version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b1f1d8764958699dc764e3f727cef280ff4d1bd92c107bbf8acd85b30c1bd6f" dependencies = [ - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -966,7 +966,7 @@ dependencies = [ "gix-chunk", "gix-hash 0.17.0", "memmap2", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -985,7 +985,7 @@ dependencies = [ "memchr", "once_cell", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.14", "unicode-bom", "winnow", ] @@ -1000,7 +1000,7 @@ dependencies = [ "bstr", "gix-path", "libc", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1012,7 +1012,7 @@ dependencies = [ "bstr", "itoa", "jiff", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1036,7 +1036,7 @@ dependencies = [ "gix-traverse", "gix-worktree", "imara-diff", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1056,7 +1056,7 @@ dependencies = [ "gix-trace", "gix-utils 0.2.0", "gix-worktree", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1072,7 +1072,7 @@ dependencies = [ "gix-path", "gix-ref", "gix-sec", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1089,7 +1089,7 @@ dependencies = [ "libc", "once_cell", "prodash", - "thiserror 2.0.12", + "thiserror 2.0.14", "walkdir", ] @@ -1123,7 +1123,7 @@ dependencies = [ "gix-trace", "gix-utils 0.2.0", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1137,7 +1137,7 @@ dependencies = [ "gix-features 0.41.1", "gix-path", "gix-utils 0.2.0", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1151,7 +1151,7 @@ dependencies = [ "gix-features 0.42.1", "gix-path", "gix-utils 0.3.0", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1175,7 +1175,7 @@ dependencies = [ "faster-hex 0.9.0", "gix-features 0.41.1", "sha1-checked", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1187,7 +1187,7 @@ dependencies = [ "faster-hex 0.10.0", "gix-features 0.42.1", "sha1-checked", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1239,7 +1239,7 @@ dependencies = [ "memmap2", "rustix 0.38.44", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1250,7 +1250,7 @@ checksum = "570f8b034659f256366dc90f1a24924902f20acccd6a15be96d44d1269e7a796" dependencies = [ "gix-tempfile", "gix-utils 0.3.0", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1270,7 +1270,7 @@ dependencies = [ "gix-validate 0.9.4", "itoa", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.14", "winnow", ] @@ -1292,7 +1292,7 @@ dependencies = [ "gix-quote", "parking_lot 0.12.4", "tempfile", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1310,7 +1310,7 @@ dependencies = [ "gix-path", "memmap2", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1322,7 +1322,7 @@ dependencies = [ "bstr", "faster-hex 0.9.0", "gix-trace", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1334,21 +1334,21 @@ dependencies = [ "bstr", "faster-hex 0.9.0", "gix-trace", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] name = "gix-path" -version = "0.10.19" +version = "0.10.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6279d323d925ad4790602105ae27df4b915e7a7d81e4cdba2603121c03ad111" +checksum = "06d37034a4c67bbdda76f7bcd037b2f7bc0fba0c09a6662b19697a5716e7b2fd" dependencies = [ "bstr", "gix-trace", "gix-validate 0.10.0", "home", "once_cell", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1363,7 +1363,7 @@ dependencies = [ "gix-config-value", "gix-glob", "gix-path", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1381,7 +1381,7 @@ dependencies = [ "gix-transport", "gix-utils 0.2.0", "maybe-async", - "thiserror 2.0.12", + "thiserror 2.0.14", "winnow", ] @@ -1393,7 +1393,7 @@ checksum = "1b005c550bf84de3b24aa5e540a23e6146a1c01c7d30470e35d75a12f827f969" dependencies = [ "bstr", "gix-utils 0.2.0", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1413,7 +1413,7 @@ dependencies = [ "gix-utils 0.2.0", "gix-validate 0.9.4", "memmap2", - "thiserror 2.0.12", + "thiserror 2.0.14", "winnow", ] @@ -1428,7 +1428,7 @@ dependencies = [ "gix-revision", "gix-validate 0.9.4", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1446,7 +1446,7 @@ dependencies = [ "gix-object", "gix-revwalk", "gix-trace", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1461,7 +1461,7 @@ dependencies = [ "gix-hashtable", "gix-object", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1485,7 +1485,7 @@ dependencies = [ "bstr", "gix-hash 0.17.0", "gix-lock", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1508,7 +1508,7 @@ dependencies = [ "gix-pathspec", "gix-worktree", "portable-atomic", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1523,7 +1523,7 @@ dependencies = [ "gix-pathspec", "gix-refspec", "gix-url", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1561,7 +1561,7 @@ dependencies = [ "gix-quote", "gix-sec", "gix-url", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1578,7 +1578,7 @@ dependencies = [ "gix-object", "gix-revwalk", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1591,7 +1591,7 @@ dependencies = [ "gix-features 0.41.1", "gix-path", "percent-encoding", - "thiserror 2.0.12", + "thiserror 2.0.14", "url", ] @@ -1623,7 +1623,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34b5f1253109da6c79ed7cf6e1e38437080bb6d704c76af14c93e2f255234084" dependencies = [ "bstr", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1633,7 +1633,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77b9e00cacde5b51388d28ed746c493b18a6add1f19b5e01d686b3b9ece66d4d" dependencies = [ "bstr", - "thiserror 2.0.12", + "thiserror 2.0.14", ] [[package]] @@ -1657,9 +1657,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", @@ -1695,9 +1695,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.4" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "foldhash", ] @@ -1971,7 +1971,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17d34b7d42178945f775e84bc4c36dde7c1c6cdfea656d3354d009056f2bb3d2" dependencies = [ - "hashbrown 0.15.4", + "hashbrown 0.15.5", ] [[package]] @@ -1981,7 +1981,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", - "hashbrown 0.15.4", + "hashbrown 0.15.5", ] [[package]] @@ -2093,9 +2093,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.174" +version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "libloading" @@ -2155,7 +2155,7 @@ checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "macros" version = "0.1.0" -source = "git+https://github.com/GrandEngineering/enginelib.git#c4f620bf50d4cdd07a388a1859f580138c612d3b" +source = "git+https://github.com/GrandEngineering/enginelib.git#c45e7fcd79e50fcab0b2a7baec012e00dede6f07" dependencies = [ "proc-macro2", "quote", @@ -2459,9 +2459,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "d61789d7719defeb74ea5fe81f2fdfdbd28a803847077cecce2ff14e1472f6f1" dependencies = [ "unicode-ident", ] @@ -2710,9 +2710,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" @@ -2766,9 +2766,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.141" +version = "1.0.142" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" +checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" dependencies = [ "itoa", "memchr", @@ -2839,18 +2839,18 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.5" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] [[package]] name = "slab" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "sled" @@ -2965,11 +2965,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "0b0949c3a6c842cbde3f1686d6eea5a010516deb7085f79db747562d4102f41e" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.14", ] [[package]] @@ -2985,9 +2985,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "cc5b44b4ab9c2fdd0e0512e6bece8388e214c0749f5862b114cc5b7a25daf227" dependencies = [ "proc-macro2", "quote", @@ -3063,9 +3063,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.0" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43864ed400b6043a4757a25c7a64a8efde741aed79a056a2fb348a406701bb35" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", @@ -3105,9 +3105,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.15" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -3159,9 +3159,9 @@ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "tonic" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308e1db96abdccdf0a9150fb69112bf6ea72640e0bd834ef0c4a618ccc8c8ddc" +checksum = "67ac5a8627ada0968acec063a4746bf79588aa03ccb66db2f75d7dce26722a40" dependencies = [ "async-trait", "axum", @@ -3188,9 +3188,9 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18262cdd13dec66e8e3f2e3fe535e4b2cc706fab444a7d3678d75d8ac2557329" +checksum = "49e323d8bba3be30833707e36d046deabf10a35ae8ad3cae576943ea8933e25d" dependencies = [ "prettyplease", "proc-macro2", @@ -3200,9 +3200,9 @@ dependencies = [ [[package]] name = "tonic-prost" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d8b5b7a44512c59f5ad45e0c40e53263cbbf4426d74fe6b569e04f1d4206e9c" +checksum = "b9c511b9a96d40cb12b7d5d00464446acf3b9105fd3ce25437cfe41c92b1c87d" dependencies = [ "bytes", "prost", @@ -3211,9 +3211,9 @@ dependencies = [ [[package]] name = "tonic-prost-build" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "114cca66d757d72422ef8cccf8be3065321860ac9fa4be73aab37a8a20a9a805" +checksum = "8ef298fcd01b15e135440c4b8c974460ceca4e6a5af7f1c933b08e4d2875efa1" dependencies = [ "prettyplease", "proc-macro2", @@ -3227,9 +3227,9 @@ dependencies = [ [[package]] name = "tonic-reflection" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b6a72aca1cabacc0a7b61a61b6045ce0e833d773de6fb455e7737194e548977" +checksum = "0267a0073385cd94996197d12acb1856a3a0a2367482c726a48a769f6fed8a3a" dependencies = [ "prost", "prost-types", @@ -3416,9 +3416,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" +checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" dependencies = [ "getrandom 0.3.3", "js-sys", @@ -3995,9 +3995,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke", "zerofrom", diff --git a/Cargo.toml b/Cargo.toml index dd0ebdc..3bccb6e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,32 +1,3 @@ -[package] -name = "engine" -version = "0.1.0" -edition = "2024" -license-file = "LICENSE.md" -description = "A Blazingly fast distributed task system" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -[features] -default = [] -dev = [] -[dependencies] -bincode = "1.3.3" -clap = { version = "4.5.36", features = ["derive"] } -clap_complete = "4.5.47" -colored = "3.0.0" -# directories = "5.0.1" -druid = { git = "https://github.com/GrandEngineering/druid.git" } -enginelib = { git = "https://github.com/GrandEngineering/enginelib.git" } -# libloading = "0.8.6" -prost = "0.14" -serde = "1.0.219" -# serde = "1.0.219" -tokio = { version = "1.44", features = ["rt-multi-thread", "macros"] } -toml = "0.8.20" -# toml = "0.8.19" -tonic = "0.14" -tonic-prost = "0.14.0" - -tonic-reflection = "0.14" -[build-dependencies] -tonic-build = "0.14" -tonic-prost-build = "0.14" +[workspace] +resolver = "3" +members = ["engine"] diff --git a/engine/Cargo.lock b/engine/Cargo.lock new file mode 100644 index 0000000..4a3e5ab --- /dev/null +++ b/engine/Cargo.lock @@ -0,0 +1,4016 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anstream" +version = "0.6.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" + +[[package]] +name = "anstyle-parse" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.59.0", +] + +[[package]] +name = "anyhow" +version = "1.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" + +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" + +[[package]] +name = "async-trait" +version = "0.1.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "axum" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" +dependencies = [ + "axum-core", + "bytes", + "futures-util", + "http", + "http-body", + "http-body-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68464cd0412f486726fb3373129ef5d2993f90c34bc2bc1c1e9943b2f4fc7ca6" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", +] + +[[package]] +name = "backtrace" +version = "0.3.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bstr" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" +dependencies = [ + "memchr", + "regex-automata 0.4.9", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "camino" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.19.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 2.0.12", +] + +[[package]] +name = "cc" +version = "1.2.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deec109607ca693028562ed836a5f1c4b8bd77755c4e132fc5ce11b0b6211ae7" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" + +[[package]] +name = "chrono" +version = "0.4.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-link", +] + +[[package]] +name = "clap" +version = "4.5.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed87a9d530bb41a67537289bafcac159cb3ee28460e0a4571123d2a778a6a882" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64f4f3f3c77c94aff3c7e9aac9a2ca1974a5adf392a8bb751e827d6d127ab966" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_complete" +version = "4.5.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5abde44486daf70c5be8b8f8f1b66c49f86236edf6fa2abadb4d961c4c6229a" +dependencies = [ + "clap", +] + +[[package]] +name = "clap_derive" +version = "4.5.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "clap_lex" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" + +[[package]] +name = "clru" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59" + +[[package]] +name = "colorchoice" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + +[[package]] +name = "colored" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fde0e0ec90c9dfb3b4b1a0891a7dcd0e2bffde2f7efed5fe7c9bb00e5bfb915e" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "darling" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.20.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[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 0.9.11", +] + +[[package]] +name = "deranged" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derive_builder" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" +dependencies = [ + "derive_builder_core", + "syn", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "directories" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "druid" +version = "0.1.0" +source = "git+https://github.com/GrandEngineering/druid.git#801365f097b6b437314d0deaa72fd85be6af0a8f" +dependencies = [ + "chrono", + "rand", + "rand_chacha", + "uuid", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "engine" +version = "0.1.0" +dependencies = [ + "bincode", + "clap", + "clap_complete", + "colored", + "druid", + "enginelib", + "prost", + "serde", + "tokio", + "toml", + "tonic", + "tonic-build", + "tonic-prost", + "tonic-prost-build", + "tonic-reflection", +] + +[[package]] +name = "enginelib" +version = "0.2.0" +source = "git+https://github.com/GrandEngineering/enginelib.git#c4f620bf50d4cdd07a388a1859f580138c612d3b" +dependencies = [ + "bincode", + "chrono", + "directories", + "libloading", + "macros", + "oxifs", + "serde", + "sled", + "tokio", + "toml", + "tracing", + "tracing-subscriber", + "tracing-test", + "vergen-gix", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +dependencies = [ + "libc", + "windows-sys 0.60.2", +] + +[[package]] +name = "faster-hex" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" +dependencies = [ + "serde", +] + +[[package]] +name = "faster-hex" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7223ae2d2f179b803433d9c830478527e92b8117eab39460edae7f1614d9fb73" +dependencies = [ + "heapless", + "serde", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "filetime" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.59.0", +] + +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + +[[package]] +name = "flate2" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "pin-utils", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "gix" +version = "0.71.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a61e71ec6817fc3c9f12f812682cfe51ee6ea0d2e27e02fc3849c35524617435" +dependencies = [ + "gix-actor", + "gix-attributes", + "gix-command", + "gix-commitgraph", + "gix-config", + "gix-date", + "gix-diff", + "gix-dir", + "gix-discover", + "gix-features 0.41.1", + "gix-filter", + "gix-fs 0.14.0", + "gix-glob", + "gix-hash 0.17.0", + "gix-hashtable", + "gix-ignore", + "gix-index", + "gix-lock", + "gix-object", + "gix-odb", + "gix-pack", + "gix-path", + "gix-pathspec", + "gix-protocol", + "gix-ref", + "gix-refspec", + "gix-revision", + "gix-revwalk", + "gix-sec", + "gix-shallow", + "gix-status", + "gix-submodule", + "gix-tempfile", + "gix-trace", + "gix-traverse", + "gix-url", + "gix-utils 0.2.0", + "gix-validate 0.9.4", + "gix-worktree", + "once_cell", + "parking_lot 0.12.4", + "signal-hook", + "smallvec", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-actor" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f438c87d4028aca4b82f82ba8d8ab1569823cfb3e5bc5fa8456a71678b2a20e7" +dependencies = [ + "bstr", + "gix-date", + "gix-utils 0.2.0", + "itoa", + "thiserror 2.0.12", + "winnow", +] + +[[package]] +name = "gix-attributes" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4e25825e0430aa11096f8b65ced6780d4a96a133f81904edceebb5344c8dd7f" +dependencies = [ + "bstr", + "gix-glob", + "gix-path", + "gix-quote", + "gix-trace", + "kstring", + "smallvec", + "thiserror 2.0.12", + "unicode-bom", +] + +[[package]] +name = "gix-bitmap" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1db9765c69502650da68f0804e3dc2b5f8ccc6a2d104ca6c85bc40700d37540" +dependencies = [ + "thiserror 2.0.12", +] + +[[package]] +name = "gix-chunk" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b1f1d8764958699dc764e3f727cef280ff4d1bd92c107bbf8acd85b30c1bd6f" +dependencies = [ + "thiserror 2.0.12", +] + +[[package]] +name = "gix-command" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0378995847773a697f8e157fe2963ecf3462fe64be05b7b3da000b3b472def8" +dependencies = [ + "bstr", + "gix-path", + "gix-quote", + "gix-trace", + "shell-words", +] + +[[package]] +name = "gix-commitgraph" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "043cbe49b7a7505150db975f3cb7c15833335ac1e26781f615454d9d640a28fe" +dependencies = [ + "bstr", + "gix-chunk", + "gix-hash 0.17.0", + "memmap2", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-config" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c6f830bf746604940261b49abf7f655d2c19cadc9f4142ae9379e3a316e8cfa" +dependencies = [ + "bstr", + "gix-config-value", + "gix-features 0.41.1", + "gix-glob", + "gix-path", + "gix-ref", + "gix-sec", + "memchr", + "once_cell", + "smallvec", + "thiserror 2.0.12", + "unicode-bom", + "winnow", +] + +[[package]] +name = "gix-config-value" +version = "0.14.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc2c844c4cf141884678cabef736fd91dd73068b9146e6f004ba1a0457944b6" +dependencies = [ + "bitflags 2.9.1", + "bstr", + "gix-path", + "libc", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-date" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daa30058ec7d3511fbc229e4f9e696a35abd07ec5b82e635eff864a2726217e4" +dependencies = [ + "bstr", + "itoa", + "jiff", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-diff" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2c975dad2afc85e4e233f444d1efbe436c3cdcf3a07173984509c436d00a3f8" +dependencies = [ + "bstr", + "gix-attributes", + "gix-command", + "gix-filter", + "gix-fs 0.14.0", + "gix-hash 0.17.0", + "gix-index", + "gix-object", + "gix-path", + "gix-pathspec", + "gix-tempfile", + "gix-trace", + "gix-traverse", + "gix-worktree", + "imara-diff", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-dir" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5879497bd3815d8277ed864ec8975290a70de5b62bb92d2d666a4cefc5d4793b" +dependencies = [ + "bstr", + "gix-discover", + "gix-fs 0.14.0", + "gix-ignore", + "gix-index", + "gix-object", + "gix-path", + "gix-pathspec", + "gix-trace", + "gix-utils 0.2.0", + "gix-worktree", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-discover" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7fb8a4349b854506a3915de18d3341e5f1daa6b489c8affc9ca0d69efe86781" +dependencies = [ + "bstr", + "dunce", + "gix-fs 0.14.0", + "gix-hash 0.17.0", + "gix-path", + "gix-ref", + "gix-sec", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-features" +version = "0.41.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "016d6050219458d14520fe22bdfdeb9cb71631dec9bc2724767c983f60109634" +dependencies = [ + "crc32fast", + "flate2", + "gix-path", + "gix-trace", + "gix-utils 0.2.0", + "libc", + "once_cell", + "prodash", + "thiserror 2.0.12", + "walkdir", +] + +[[package]] +name = "gix-features" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f4399af6ec4fd9db84dd4cf9656c5c785ab492ab40a7c27ea92b4241923fed" +dependencies = [ + "gix-trace", + "gix-utils 0.3.0", + "libc", + "prodash", +] + +[[package]] +name = "gix-filter" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb2b2bbffdc5cc9b2b82fc82da1b98163c9b423ac2b45348baa83a947ac9ab89" +dependencies = [ + "bstr", + "encoding_rs", + "gix-attributes", + "gix-command", + "gix-hash 0.17.0", + "gix-object", + "gix-packetline-blocking", + "gix-path", + "gix-quote", + "gix-trace", + "gix-utils 0.2.0", + "smallvec", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-fs" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "951e886120dc5fa8cac053e5e5c89443f12368ca36811b2e43d1539081f9c111" +dependencies = [ + "bstr", + "fastrand", + "gix-features 0.41.1", + "gix-path", + "gix-utils 0.2.0", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-fs" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a0637149b4ef24d3ea55f81f77231401c8463fae6da27331c987957eb597c7" +dependencies = [ + "bstr", + "fastrand", + "gix-features 0.42.1", + "gix-path", + "gix-utils 0.3.0", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-glob" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20972499c03473e773a2099e5fd0c695b9b72465837797a51a43391a1635a030" +dependencies = [ + "bitflags 2.9.1", + "bstr", + "gix-features 0.41.1", + "gix-path", +] + +[[package]] +name = "gix-hash" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "834e79722063958b03342edaa1e17595cd2939bb2b3306b3225d0815566dcb49" +dependencies = [ + "faster-hex 0.9.0", + "gix-features 0.41.1", + "sha1-checked", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-hash" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d4900562c662852a6b42e2ef03442eccebf24f047d8eab4f23bc12ef0d785d8" +dependencies = [ + "faster-hex 0.10.0", + "gix-features 0.42.1", + "sha1-checked", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-hashtable" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b5cb3c308b4144f2612ff64e32130e641279fcf1a84d8d40dad843b4f64904" +dependencies = [ + "gix-hash 0.18.0", + "hashbrown 0.14.5", + "parking_lot 0.12.4", +] + +[[package]] +name = "gix-ignore" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a27c8380f493a10d1457f756a3f81924d578fc08d6535e304dfcafbf0261d18" +dependencies = [ + "bstr", + "gix-glob", + "gix-path", + "gix-trace", + "unicode-bom", +] + +[[package]] +name = "gix-index" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "855bece2d4153453aa5d0a80d51deea1ce8cd6a3b4cf213da85ac344ccb908a7" +dependencies = [ + "bitflags 2.9.1", + "bstr", + "filetime", + "fnv", + "gix-bitmap", + "gix-features 0.41.1", + "gix-fs 0.14.0", + "gix-hash 0.17.0", + "gix-lock", + "gix-object", + "gix-traverse", + "gix-utils 0.2.0", + "gix-validate 0.9.4", + "hashbrown 0.14.5", + "itoa", + "libc", + "memmap2", + "rustix 0.38.44", + "smallvec", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-lock" +version = "17.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "570f8b034659f256366dc90f1a24924902f20acccd6a15be96d44d1269e7a796" +dependencies = [ + "gix-tempfile", + "gix-utils 0.3.0", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-object" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4943fcdae6ffc135920c9ea71e0362ed539182924ab7a85dd9dac8d89b0dd69a" +dependencies = [ + "bstr", + "gix-actor", + "gix-date", + "gix-features 0.41.1", + "gix-hash 0.17.0", + "gix-hashtable", + "gix-path", + "gix-utils 0.2.0", + "gix-validate 0.9.4", + "itoa", + "smallvec", + "thiserror 2.0.12", + "winnow", +] + +[[package]] +name = "gix-odb" +version = "0.68.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50306d40dcc982eb6b7593103f066ea6289c7b094cb9db14f3cd2be0b9f5e610" +dependencies = [ + "arc-swap", + "gix-date", + "gix-features 0.41.1", + "gix-fs 0.14.0", + "gix-hash 0.17.0", + "gix-hashtable", + "gix-object", + "gix-pack", + "gix-path", + "gix-quote", + "parking_lot 0.12.4", + "tempfile", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-pack" +version = "0.58.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b65fffb09393c26624ca408d32cfe8776fb94cd0a5cdf984905e1d2f39779cb" +dependencies = [ + "clru", + "gix-chunk", + "gix-features 0.41.1", + "gix-hash 0.17.0", + "gix-hashtable", + "gix-object", + "gix-path", + "memmap2", + "smallvec", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-packetline" +version = "0.18.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "123844a70cf4d5352441dc06bab0da8aef61be94ec239cb631e0ba01dc6d3a04" +dependencies = [ + "bstr", + "faster-hex 0.9.0", + "gix-trace", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-packetline-blocking" +version = "0.18.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ecf3ea2e105c7e45587bac04099824301262a6c43357fad5205da36dbb233b3" +dependencies = [ + "bstr", + "faster-hex 0.9.0", + "gix-trace", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-path" +version = "0.10.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6279d323d925ad4790602105ae27df4b915e7a7d81e4cdba2603121c03ad111" +dependencies = [ + "bstr", + "gix-trace", + "gix-validate 0.10.0", + "home", + "once_cell", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-pathspec" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fef8422c3c9066d649074b24025125963f85232bfad32d6d16aea9453b82ec14" +dependencies = [ + "bitflags 2.9.1", + "bstr", + "gix-attributes", + "gix-config-value", + "gix-glob", + "gix-path", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-protocol" +version = "0.49.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5678ddae1d62880bc30e2200be1b9387af3372e0e88e21f81b4e7f8367355b5a" +dependencies = [ + "bstr", + "gix-date", + "gix-features 0.41.1", + "gix-hash 0.17.0", + "gix-ref", + "gix-shallow", + "gix-transport", + "gix-utils 0.2.0", + "maybe-async", + "thiserror 2.0.12", + "winnow", +] + +[[package]] +name = "gix-quote" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b005c550bf84de3b24aa5e540a23e6146a1c01c7d30470e35d75a12f827f969" +dependencies = [ + "bstr", + "gix-utils 0.2.0", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-ref" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2e1f7eb6b7ce82d2d19961f74bd637bab3ea79b1bc7bfb23dbefc67b0415d8b" +dependencies = [ + "gix-actor", + "gix-features 0.41.1", + "gix-fs 0.14.0", + "gix-hash 0.17.0", + "gix-lock", + "gix-object", + "gix-path", + "gix-tempfile", + "gix-utils 0.2.0", + "gix-validate 0.9.4", + "memmap2", + "thiserror 2.0.12", + "winnow", +] + +[[package]] +name = "gix-refspec" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d8587b21e2264a6e8938d940c5c99662779c13a10741a5737b15fc85c252ffc" +dependencies = [ + "bstr", + "gix-hash 0.17.0", + "gix-revision", + "gix-validate 0.9.4", + "smallvec", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-revision" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "342caa4e158df3020cadf62f656307c3948fe4eacfdf67171d7212811860c3e9" +dependencies = [ + "bitflags 2.9.1", + "bstr", + "gix-commitgraph", + "gix-date", + "gix-hash 0.17.0", + "gix-hashtable", + "gix-object", + "gix-revwalk", + "gix-trace", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-revwalk" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dc7c3d7e5cdc1ab8d35130106e4af0a4f9f9eca0c81f4312b690780e92bde0d" +dependencies = [ + "gix-commitgraph", + "gix-date", + "gix-hash 0.17.0", + "gix-hashtable", + "gix-object", + "smallvec", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-sec" +version = "0.10.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47aeb0f13de9ef2f3033f5ff218de30f44db827ac9f1286f9ef050aacddd5888" +dependencies = [ + "bitflags 2.9.1", + "gix-path", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "gix-shallow" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc0598aacfe1d52575a21c9492fee086edbb21e228ec36c819c42ab923f434c3" +dependencies = [ + "bstr", + "gix-hash 0.17.0", + "gix-lock", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-status" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "605a6d0eb5891680c46e24b2ee7a63ef7bd39cb136dc7c7e55172960cf68b2f5" +dependencies = [ + "bstr", + "filetime", + "gix-diff", + "gix-dir", + "gix-features 0.41.1", + "gix-filter", + "gix-fs 0.14.0", + "gix-hash 0.17.0", + "gix-index", + "gix-object", + "gix-path", + "gix-pathspec", + "gix-worktree", + "portable-atomic", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-submodule" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c7390c2059505c365e9548016d4edc9f35749c6a9112b7b1214400bbc68da2" +dependencies = [ + "bstr", + "gix-config", + "gix-path", + "gix-pathspec", + "gix-refspec", + "gix-url", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-tempfile" +version = "17.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c750e8c008453a2dba67a2b0d928b7716e05da31173a3f5e351d5457ad4470aa" +dependencies = [ + "dashmap", + "gix-fs 0.15.0", + "libc", + "once_cell", + "parking_lot 0.12.4", + "signal-hook", + "signal-hook-registry", + "tempfile", +] + +[[package]] +name = "gix-trace" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2ccaf54b0b1743a695b482ca0ab9d7603744d8d10b2e5d1a332fef337bee658" + +[[package]] +name = "gix-transport" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3f68c2870bfca8278389d2484a7f2215b67d0b0cc5277d3c72ad72acf41787e" +dependencies = [ + "bstr", + "gix-command", + "gix-features 0.41.1", + "gix-packetline", + "gix-quote", + "gix-sec", + "gix-url", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-traverse" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36c0b049f8bdb61b20016694102f7b507f2e1727e83e9c5e6dad4f7d84ff7384" +dependencies = [ + "bitflags 2.9.1", + "gix-commitgraph", + "gix-date", + "gix-hash 0.17.0", + "gix-hashtable", + "gix-object", + "gix-revwalk", + "smallvec", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-url" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48dfe23f93f1ddb84977d80bb0dd7aa09d1bf5d5afc0c9b6820cccacc25ae860" +dependencies = [ + "bstr", + "gix-features 0.41.1", + "gix-path", + "percent-encoding", + "thiserror 2.0.12", + "url", +] + +[[package]] +name = "gix-utils" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "189f8724cf903e7fd57cfe0b7bc209db255cacdcb22c781a022f52c3a774f8d0" +dependencies = [ + "bstr", + "fastrand", + "unicode-normalization", +] + +[[package]] +name = "gix-utils" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5351af2b172caf41a3728eb4455326d84e0d70fe26fc4de74ab0bd37df4191c5" +dependencies = [ + "fastrand", + "unicode-normalization", +] + +[[package]] +name = "gix-validate" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b5f1253109da6c79ed7cf6e1e38437080bb6d704c76af14c93e2f255234084" +dependencies = [ + "bstr", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-validate" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77b9e00cacde5b51388d28ed746c493b18a6add1f19b5e01d686b3b9ece66d4d" +dependencies = [ + "bstr", + "thiserror 2.0.12", +] + +[[package]] +name = "gix-worktree" +version = "0.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7760dbc4b79aa274fed30adc0d41dca6b917641f26e7867c4071b1fb4dc727b" +dependencies = [ + "bstr", + "gix-attributes", + "gix-features 0.41.1", + "gix-fs 0.14.0", + "gix-glob", + "gix-hash 0.17.0", + "gix-ignore", + "gix-index", + "gix-object", + "gix-path", + "gix-validate 0.9.4", +] + +[[package]] +name = "h2" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +dependencies = [ + "foldhash", +] + +[[package]] +name = "heapless" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" +dependencies = [ + "hash32", + "stable_deref_trait", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "home" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "http" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "hyper", + "libc", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" + +[[package]] +name = "icu_properties" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "potential_utf", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + +[[package]] +name = "icu_provider" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +dependencies = [ + "displaydoc", + "icu_locale_core", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "imara-diff" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17d34b7d42178945f775e84bc4c36dde7c1c6cdfea656d3354d009056f2bb3d2" +dependencies = [ + "hashbrown 0.15.4", +] + +[[package]] +name = "indexmap" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +dependencies = [ + "equivalent", + "hashbrown 0.15.4", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-uring" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93587f37623a1a17d94ef2bc9ada592f5465fe7732084ab7beefabe5c77c0c4" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "libc", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "jiff" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" +dependencies = [ + "jiff-static", + "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", + "windows-sys 0.59.0", +] + +[[package]] +name = "jiff-static" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "jiff-tzdb" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1283705eb0a21404d2bfd6eef2a7593d240bc42a0bdb39db0ad6fa2ec026524" + +[[package]] +name = "jiff-tzdb-platform" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8" +dependencies = [ + "jiff-tzdb", +] + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "kstring" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "558bf9508a558512042d3095138b1f7b8fe90c5467d94f9f1da28b3731c5dbd1" +dependencies = [ + "static_assertions", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.174" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" + +[[package]] +name = "libloading" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" +dependencies = [ + "cfg-if", + "windows-targets 0.53.3", +] + +[[package]] +name = "libredox" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +dependencies = [ + "bitflags 2.9.1", + "libc", + "redox_syscall 0.5.17", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "linux-raw-sys" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" + +[[package]] +name = "litemap" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" + +[[package]] +name = "lock_api" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" + +[[package]] +name = "macros" +version = "0.1.0" +source = "git+https://github.com/GrandEngineering/enginelib.git#c4f620bf50d4cdd07a388a1859f580138c612d3b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" + +[[package]] +name = "maybe-async" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "memchr" +version = "2.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" + +[[package]] +name = "memmap2" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28" +dependencies = [ + "libc", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +dependencies = [ + "libc", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", +] + +[[package]] +name = "multimap" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "oxifs" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "792609ce5126ce20295e83d7d4129d338b9d8f896cbc774906b90c274b6e1235" +dependencies = [ + "tar", + "tempfile", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.11", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.17", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "petgraph" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "portable-atomic" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" + +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "prettyplease" +version = "0.2.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff24dfcda44452b9816fff4cd4227e1bb73ff5a2f1bc1105aa92fb8565ce44d2" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro2" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prodash" +version = "29.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04bb108f648884c23b98a0e940ebc2c93c0c3b89f04dbaf7eb8256ce617d1bc" +dependencies = [ + "log", + "parking_lot 0.12.4", +] + +[[package]] +name = "prost" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" +dependencies = [ + "heck", + "itertools", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "pulldown-cmark", + "pulldown-cmark-to-cmark", + "regex", + "syn", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "prost-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" +dependencies = [ + "prost", +] + +[[package]] +name = "pulldown-cmark" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e8bbe1a966bd2f362681a44f6edce3c2310ac21e4d5067a6e7ec396297a6ea0" +dependencies = [ + "bitflags 2.9.1", + "memchr", + "unicase", +] + +[[package]] +name = "pulldown-cmark-to-cmark" +version = "21.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5b6a0769a491a08b31ea5c62494a8f144ee0987d86d670a8af4df1e1b7cde75" +dependencies = [ + "pulldown-cmark", +] + +[[package]] +name = "quote" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "rand" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" +dependencies = [ + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.3", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +dependencies = [ + "bitflags 2.9.1", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.16", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags 2.9.1", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +dependencies = [ + "bitflags 2.9.1", + "errno", + "libc", + "linux-raw-sys 0.9.4", + "windows-sys 0.60.2", +] + +[[package]] +name = "rustversion" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +dependencies = [ + "serde", +] + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.141" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha1-checked" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89f599ac0c323ebb1c6082821a54962b839832b03984598375bff3975b804423" +dependencies = [ + "digest", + "sha1", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shell-words" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" +dependencies = [ + "libc", +] + +[[package]] +name = "slab" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" + +[[package]] +name = "sled" +version = "0.34.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935" +dependencies = [ + "crc32fast", + "crossbeam-epoch", + "crossbeam-utils", + "fs2", + "fxhash", + "libc", + "log", + "parking_lot 0.11.2", +] + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "syn" +version = "2.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tar" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tempfile" +version = "3.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +dependencies = [ + "fastrand", + "getrandom 0.3.3", + "once_cell", + "rustix 1.0.8", + "windows-sys 0.59.0", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +dependencies = [ + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "time" +version = "0.3.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +dependencies = [ + "deranged", + "itoa", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" + +[[package]] +name = "time-macros" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.47.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43864ed400b6043a4757a25c7a64a8efde741aed79a056a2fb348a406701bb35" +dependencies = [ + "backtrace", + "bytes", + "io-uring", + "libc", + "mio", + "parking_lot 0.12.4", + "pin-project-lite", + "signal-hook-registry", + "slab", + "socket2", + "tokio-macros", + "windows-sys 0.59.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-stream" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "toml_write", + "winnow", +] + +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + +[[package]] +name = "tonic" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "308e1db96abdccdf0a9150fb69112bf6ea72640e0bd834ef0c4a618ccc8c8ddc" +dependencies = [ + "async-trait", + "axum", + "base64", + "bytes", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "socket2", + "sync_wrapper", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-build" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18262cdd13dec66e8e3f2e3fe535e4b2cc706fab444a7d3678d75d8ac2557329" +dependencies = [ + "prettyplease", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tonic-prost" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d8b5b7a44512c59f5ad45e0c40e53263cbbf4426d74fe6b569e04f1d4206e9c" +dependencies = [ + "bytes", + "prost", + "tonic", +] + +[[package]] +name = "tonic-prost-build" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "114cca66d757d72422ef8cccf8be3065321860ac9fa4be73aab37a8a20a9a805" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build", + "prost-types", + "quote", + "syn", + "tempfile", + "tonic-build", +] + +[[package]] +name = "tonic-reflection" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b6a72aca1cabacc0a7b61a61b6045ce0e833d773de6fb455e7737194e548977" +dependencies = [ + "prost", + "prost-types", + "tokio", + "tokio-stream", + "tonic", + "tonic-prost", +] + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "indexmap", + "pin-project-lite", + "slab", + "sync_wrapper", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tracing-test" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "557b891436fe0d5e0e363427fc7f217abf9ccd510d5136549847bdcbcd011d68" +dependencies = [ + "tracing-core", + "tracing-subscriber", + "tracing-test-macro", +] + +[[package]] +name = "tracing-test-macro" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04659ddb06c87d233c566112c1c9c5b9e98256d9af50ec3bc9c8327f873a7568" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typenum" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" + +[[package]] +name = "unicase" +version = "2.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" + +[[package]] +name = "unicode-bom" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cf4199d1e5d15ddd86a694e4d0dffa9c323ce759fea589f00fef9d81cc1931d" +dependencies = [ + "getrandom 0.3.3", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "vergen" +version = "9.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b2bf58be11fc9414104c6d3a2e464163db5ef74b12296bda593cac37b6e4777" +dependencies = [ + "anyhow", + "cargo_metadata", + "derive_builder", + "regex", + "rustc_version", + "rustversion", + "time", + "vergen-lib", +] + +[[package]] +name = "vergen-gix" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f8dfe6eb333a1397e596164ae7326f68e4b95267b41aedc6aa3c81f3426a010" +dependencies = [ + "anyhow", + "derive_builder", + "gix", + "rustversion", + "time", + "vergen", + "vergen-lib", +] + +[[package]] +name = "vergen-lib" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b07e6010c0f3e59fcb164e0163834597da68d1f864e2b8ca49f74de01e9c166" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", +] + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.3", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + +[[package]] +name = "winnow" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags 2.9.1", +] + +[[package]] +name = "writeable" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" + +[[package]] +name = "xattr" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" +dependencies = [ + "libc", + "rustix 1.0.8", +] + +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/engine/Cargo.toml b/engine/Cargo.toml new file mode 100644 index 0000000..dd0ebdc --- /dev/null +++ b/engine/Cargo.toml @@ -0,0 +1,32 @@ +[package] +name = "engine" +version = "0.1.0" +edition = "2024" +license-file = "LICENSE.md" +description = "A Blazingly fast distributed task system" +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[features] +default = [] +dev = [] +[dependencies] +bincode = "1.3.3" +clap = { version = "4.5.36", features = ["derive"] } +clap_complete = "4.5.47" +colored = "3.0.0" +# directories = "5.0.1" +druid = { git = "https://github.com/GrandEngineering/druid.git" } +enginelib = { git = "https://github.com/GrandEngineering/enginelib.git" } +# libloading = "0.8.6" +prost = "0.14" +serde = "1.0.219" +# serde = "1.0.219" +tokio = { version = "1.44", features = ["rt-multi-thread", "macros"] } +toml = "0.8.20" +# toml = "0.8.19" +tonic = "0.14" +tonic-prost = "0.14.0" + +tonic-reflection = "0.14" +[build-dependencies] +tonic-build = "0.14" +tonic-prost-build = "0.14" diff --git a/LICENSE.md b/engine/LICENSE.md similarity index 100% rename from LICENSE.md rename to engine/LICENSE.md diff --git a/README.md b/engine/README.md similarity index 100% rename from README.md rename to engine/README.md diff --git a/build.rs b/engine/build.rs similarity index 100% rename from build.rs rename to engine/build.rs diff --git a/proto/engine.proto b/engine/proto/engine.proto similarity index 100% rename from proto/engine.proto rename to engine/proto/engine.proto diff --git a/src/bin/client.rs b/engine/src/bin/client.rs similarity index 100% rename from src/bin/client.rs rename to engine/src/bin/client.rs diff --git a/src/bin/packer.rs b/engine/src/bin/packer.rs similarity index 100% rename from src/bin/packer.rs rename to engine/src/bin/packer.rs diff --git a/src/bin/server.rs b/engine/src/bin/server.rs similarity index 100% rename from src/bin/server.rs rename to engine/src/bin/server.rs diff --git a/src/lib.rs b/engine/src/lib.rs similarity index 100% rename from src/lib.rs rename to engine/src/lib.rs From 02e548a488d75e81e4b1bfca8af6075512289460 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 12 Aug 2025 23:18:20 +0100 Subject: [PATCH 160/163] move enginelib to /enginelib --- Cargo.lock => enginelib/Cargo.lock | 0 Cargo.toml => enginelib/Cargo.toml | 0 LICENSE.md => enginelib/LICENSE.md | 0 build.rs => enginelib/build.rs | 0 {macros => enginelib/macros}/Cargo.lock | 0 {macros => enginelib/macros}/Cargo.toml | 0 {macros => enginelib/macros}/src/lib.rs | 0 {src => enginelib/src}/api.rs | 0 {src => enginelib/src}/config.rs | 0 {src => enginelib/src}/event.rs | 0 {src => enginelib/src}/events/admin_auth_event.rs | 0 {src => enginelib/src}/events/auth_event.rs | 0 {src => enginelib/src}/events/cgrpc_event.rs | 0 {src => enginelib/src}/events/mod.rs | 0 {src => enginelib/src}/events/start_event.rs | 0 {src => enginelib/src}/lib.rs | 0 {src => enginelib/src}/macros.rs | 0 {src => enginelib/src}/plugin.rs | 0 {src => enginelib/src}/prelude.rs | 0 {src => enginelib/src}/task.rs | 0 {tests => enginelib/tests}/event_tests.rs | 0 21 files changed, 0 insertions(+), 0 deletions(-) rename Cargo.lock => enginelib/Cargo.lock (100%) rename Cargo.toml => enginelib/Cargo.toml (100%) rename LICENSE.md => enginelib/LICENSE.md (100%) rename build.rs => enginelib/build.rs (100%) rename {macros => enginelib/macros}/Cargo.lock (100%) rename {macros => enginelib/macros}/Cargo.toml (100%) rename {macros => enginelib/macros}/src/lib.rs (100%) rename {src => enginelib/src}/api.rs (100%) rename {src => enginelib/src}/config.rs (100%) rename {src => enginelib/src}/event.rs (100%) rename {src => enginelib/src}/events/admin_auth_event.rs (100%) rename {src => enginelib/src}/events/auth_event.rs (100%) rename {src => enginelib/src}/events/cgrpc_event.rs (100%) rename {src => enginelib/src}/events/mod.rs (100%) rename {src => enginelib/src}/events/start_event.rs (100%) rename {src => enginelib/src}/lib.rs (100%) rename {src => enginelib/src}/macros.rs (100%) rename {src => enginelib/src}/plugin.rs (100%) rename {src => enginelib/src}/prelude.rs (100%) rename {src => enginelib/src}/task.rs (100%) rename {tests => enginelib/tests}/event_tests.rs (100%) diff --git a/Cargo.lock b/enginelib/Cargo.lock similarity index 100% rename from Cargo.lock rename to enginelib/Cargo.lock diff --git a/Cargo.toml b/enginelib/Cargo.toml similarity index 100% rename from Cargo.toml rename to enginelib/Cargo.toml diff --git a/LICENSE.md b/enginelib/LICENSE.md similarity index 100% rename from LICENSE.md rename to enginelib/LICENSE.md diff --git a/build.rs b/enginelib/build.rs similarity index 100% rename from build.rs rename to enginelib/build.rs diff --git a/macros/Cargo.lock b/enginelib/macros/Cargo.lock similarity index 100% rename from macros/Cargo.lock rename to enginelib/macros/Cargo.lock diff --git a/macros/Cargo.toml b/enginelib/macros/Cargo.toml similarity index 100% rename from macros/Cargo.toml rename to enginelib/macros/Cargo.toml diff --git a/macros/src/lib.rs b/enginelib/macros/src/lib.rs similarity index 100% rename from macros/src/lib.rs rename to enginelib/macros/src/lib.rs diff --git a/src/api.rs b/enginelib/src/api.rs similarity index 100% rename from src/api.rs rename to enginelib/src/api.rs diff --git a/src/config.rs b/enginelib/src/config.rs similarity index 100% rename from src/config.rs rename to enginelib/src/config.rs diff --git a/src/event.rs b/enginelib/src/event.rs similarity index 100% rename from src/event.rs rename to enginelib/src/event.rs diff --git a/src/events/admin_auth_event.rs b/enginelib/src/events/admin_auth_event.rs similarity index 100% rename from src/events/admin_auth_event.rs rename to enginelib/src/events/admin_auth_event.rs diff --git a/src/events/auth_event.rs b/enginelib/src/events/auth_event.rs similarity index 100% rename from src/events/auth_event.rs rename to enginelib/src/events/auth_event.rs diff --git a/src/events/cgrpc_event.rs b/enginelib/src/events/cgrpc_event.rs similarity index 100% rename from src/events/cgrpc_event.rs rename to enginelib/src/events/cgrpc_event.rs diff --git a/src/events/mod.rs b/enginelib/src/events/mod.rs similarity index 100% rename from src/events/mod.rs rename to enginelib/src/events/mod.rs diff --git a/src/events/start_event.rs b/enginelib/src/events/start_event.rs similarity index 100% rename from src/events/start_event.rs rename to enginelib/src/events/start_event.rs diff --git a/src/lib.rs b/enginelib/src/lib.rs similarity index 100% rename from src/lib.rs rename to enginelib/src/lib.rs diff --git a/src/macros.rs b/enginelib/src/macros.rs similarity index 100% rename from src/macros.rs rename to enginelib/src/macros.rs diff --git a/src/plugin.rs b/enginelib/src/plugin.rs similarity index 100% rename from src/plugin.rs rename to enginelib/src/plugin.rs diff --git a/src/prelude.rs b/enginelib/src/prelude.rs similarity index 100% rename from src/prelude.rs rename to enginelib/src/prelude.rs diff --git a/src/task.rs b/enginelib/src/task.rs similarity index 100% rename from src/task.rs rename to enginelib/src/task.rs diff --git a/tests/event_tests.rs b/enginelib/tests/event_tests.rs similarity index 100% rename from tests/event_tests.rs rename to enginelib/tests/event_tests.rs From 84d5ece8ffb9d9b88c84221f1b5ee247d5af3cfa Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 12 Aug 2025 23:21:51 +0100 Subject: [PATCH 161/163] fix issue --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 3bccb6e..9096877 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,3 +1,3 @@ [workspace] resolver = "3" -members = ["engine"] +members = ["engine", "enginelib"] From ad55b97a2ab82596f7c18267e607e41ee6b9ecf6 Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Tue, 12 Aug 2025 23:43:22 +0100 Subject: [PATCH 162/163] readme --- README.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..4a248fd --- /dev/null +++ b/README.md @@ -0,0 +1,33 @@ +# GE Engine [![Rust](https://github.com/GrandEngineering/engine/actions/workflows/rust.yml/badge.svg)](https://github.com/GrandEngineering/engine/actions/workflows/rust.yml) +A blazingly fast distrubted computing project made with Rust and Tonic. + +## Modding +GE Engine provides an API with an event system and tasks allowing for great moddability. To create a mod dev env use rustforge our own tool that manages it all for you. + +## License & Use +[GE](https://github.com/GrandEngineering) reserve all rights and [GE](https://github.com/GrandEngineering) also reserves the rights to restrain individuals abilities to use this software and its code. The points below outline what you can, cannot and must do when dealing with the +contents of this repository and its submodules. Licenses for commercial use can only be granted by [GE](https://github.com/GrandEngineering). +For better understading checkout [LICENSE](https://github.com/GrandEngineering/engine/blob/main/LICENSE.md) +### You CAN +* Write your own code that uses this code as a dependency. +* Submit Pull Requests to this repository. +* Use this software for research. +* Fork and modify the code as long as modifications are distributed publicly. + +### You CANNOT +* Claim this software as your own. +* Use this SOFTWARE commercially/for profit without a License given by [GE](https://github.com/GrandEngineering) +* Share this software without express permission from [GE](https://github.com/GrandEngineering) in the form of a License. +* Distribute modifications of this software without giving credit to [GE](https://github.com/GrandEngineering) +* Use this software in a way that damages other humans. + +### Disclaimer + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + From e8ec1d4d0b75c18e9401c6d4ba4bc33f48b33e1b Mon Sep 17 00:00:00 2001 From: IGN-Styly Date: Wed, 13 Aug 2025 00:01:49 +0100 Subject: [PATCH 163/163] small fixes --- Cargo.lock | 33 +++++++++++++++++++++++++++++++-- Cargo.toml | 2 +- enginelib/Cargo.toml | 3 ++- enginelib/src/plugin.rs | 2 +- 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1f1a266..262b740 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -622,7 +622,7 @@ dependencies = [ "clap_complete", "colored", "druid", - "enginelib", + "enginelib 0.2.0 (git+https://github.com/GrandEngineering/enginelib.git)", "prost", "serde", "tokio", @@ -634,6 +634,26 @@ dependencies = [ "tonic-reflection", ] +[[package]] +name = "enginelib" +version = "0.2.0" +dependencies = [ + "bincode", + "chrono", + "directories", + "libloading", + "macros 0.1.0", + "oxifs", + "serde", + "sled", + "tokio", + "toml", + "tracing", + "tracing-subscriber", + "tracing-test", + "vergen-gix", +] + [[package]] name = "enginelib" version = "0.2.0" @@ -643,7 +663,7 @@ dependencies = [ "chrono", "directories", "libloading", - "macros", + "macros 0.1.0 (git+https://github.com/GrandEngineering/enginelib.git)", "oxifs", "serde", "sled", @@ -2152,6 +2172,15 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +[[package]] +name = "macros" +version = "0.1.0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "macros" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 9096877..4fbf65c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,3 +1,3 @@ [workspace] resolver = "3" -members = ["engine", "enginelib"] +members = ["engine", "enginelib", "enginelib/macros"] diff --git a/enginelib/Cargo.toml b/enginelib/Cargo.toml index c67d063..148133d 100644 --- a/enginelib/Cargo.toml +++ b/enginelib/Cargo.toml @@ -16,7 +16,6 @@ serde = { version = "1.0.217", features = ["derive"] } toml = "0.8.19" tracing = "0.1.41" tracing-subscriber = "0.3.18" -tracing-test = "0.2.5" chrono = { version = "0.4.40", features = ["serde"] } sled = "0.34.7" tokio = { version = "1.44.2", features = ["full"] } @@ -26,3 +25,5 @@ vergen-gix = { version = "1.0.9", features = ["build", "cargo", "rustc"] } codegen-units = 1 # Make builds deterministic [profile.dev] codegen-units = 1 # Make builds deterministic +[dev-dependencies] +tracing-test = "0.2.5" diff --git a/enginelib/src/plugin.rs b/enginelib/src/plugin.rs index e06ac01..ae9e717 100644 --- a/enginelib/src/plugin.rs +++ b/enginelib/src/plugin.rs @@ -106,7 +106,7 @@ impl LibraryManager { #[cfg(unix)] let library_path = tmp_path.join("mod.so"); #[cfg(windows)] - let library_path = tmp_path.join("mod.so"); + let library_path = tmp_path.join("mod.dll"); if let Some(lib_path_str) = library_path.to_str() { debug!("Extracted library path: {}", lib_path_str);