diff --git a/Cargo.lock b/Cargo.lock index 37a8bd785cf4b3..0dd038818987bf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1902,6 +1902,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-where" +version = "1.2.7" +source = "registry+/~https://github.com/rust-lang/crates.io-index" +checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + [[package]] name = "derive_arbitrary" version = "1.3.2" @@ -8855,7 +8866,7 @@ dependencies = [ "assert_matches", "crossbeam-channel", "dashmap", - "derivative", + "derive-where", "lazy_static", "log", "qualifier_attr", diff --git a/Cargo.toml b/Cargo.toml index 52d36f3b238ffb..70e1dcd524f3ea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -264,7 +264,7 @@ ctrlc = "3.4.5" curve25519-dalek = { version = "4.1.3", features = ["digest", "rand_core"] } dashmap = "5.5.3" derivation-path = { version = "0.2.0", default-features = false } -derivative = "2.2.0" +derive-where = "1.2.7" dialoguer = "0.10.4" digest = "0.10.7" dir-diff = "0.3.3" diff --git a/programs/sbf/Cargo.lock b/programs/sbf/Cargo.lock index 89d56b13fb096f..77e3c31c5e8bc6 100644 --- a/programs/sbf/Cargo.lock +++ b/programs/sbf/Cargo.lock @@ -1370,6 +1370,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-where" +version = "1.2.7" +source = "registry+/~https://github.com/rust-lang/crates.io-index" +checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -7353,7 +7364,7 @@ dependencies = [ "assert_matches", "crossbeam-channel", "dashmap", - "derivative", + "derive-where", "log", "qualifier_attr", "scopeguard", diff --git a/unified-scheduler-pool/Cargo.toml b/unified-scheduler-pool/Cargo.toml index e4dd6015ed44cd..c771eef8a8dec5 100644 --- a/unified-scheduler-pool/Cargo.toml +++ b/unified-scheduler-pool/Cargo.toml @@ -13,7 +13,7 @@ edition = { workspace = true } assert_matches = { workspace = true } crossbeam-channel = { workspace = true } dashmap = { workspace = true } -derivative = { workspace = true } +derive-where = { workspace = true } log = { workspace = true } qualifier_attr = { workspace = true } scopeguard = { workspace = true } diff --git a/unified-scheduler-pool/src/lib.rs b/unified-scheduler-pool/src/lib.rs index 105e0d93326d3e..3193278b47d798 100644 --- a/unified-scheduler-pool/src/lib.rs +++ b/unified-scheduler-pool/src/lib.rs @@ -15,6 +15,7 @@ use { crossbeam_channel::{self, never, select_biased, Receiver, RecvError, SendError, Sender}, dashmap::DashMap, derivative::Derivative, + derive_where::derive_where, log::*, scopeguard::defer, solana_ledger::blockstore_processor::{ @@ -569,8 +570,7 @@ mod chained_channel { // P doesn't need to be `: Clone`, yet rustc derive can't handle it. // see /~https://github.com/rust-lang/rust/issues/26925 - #[derive(Derivative)] - #[derivative(Clone(bound = "C: Clone"))] + #[derive_where(Clone)] pub(super) struct ChainedChannelReceiver
{
receiver: Receiver ,