Could you please consider adding support for the latest nightly version of Rust in your crate? This would greatly benefit developers who rely on nightly features for their projects.
Thank you for your attention to this matter.
#23 839.6 Compiling rust-ipfs v0.10.4 (https://github.com/dariusc93/rust-ipfs.git?branch=libp2p-next#ced0237b)
#23 845.7 error[E0277]: `core::fmt::rt::Opaque` cannot be shared between threads safely
#23 845.7 --> /usr/local/cargo/git/checkouts/rust-ipfs-8623051e16f56fb9/ced0237/src/task.rs:277:13
#23 845.7 |
#23 845.7 277 | / tokio::task::spawn(async move {
#23 845.7 278 | | debug!("stopping session {}", ctx);
#23 845.7 279 | | if let Some(workers) = workers {
#23 845.7 280 | | debug!("stopping workers {} for session {}", workers.len(), ctx);
#23 845.7 ... |
#23 845.7 295 | | debug!("session {} stopped", ctx);
#23 845.7 296 | | });
#23 845.7 | |______________^ `core::fmt::rt::Opaque` cannot be shared between threads safely
#23 845.7 |
#23 845.7 = help: the trait `Sync` is not implemented for `core::fmt::rt::Opaque`, which is required by `{async block@/usr/local/cargo/git/checkouts/rust-ipfs-8623051e16f56fb9/ced0237/src/task.rs:277:32: 296:14}: std::marker::Send`
#23 845.7 = note: required for `&core::fmt::rt::Opaque` to implement `std::marker::Send`
#23 845.7 note: required because it appears within the type `core::fmt::rt::Argument<'_>`
#23 845.7 --> /rustc/f4b771bf1fb836392e1c510a625cdc81be09c952/library/core/src/fmt/rt.rs:75:12
#23 845.7 = note: required because it captures the following types: `&beetle_bitswap_next::client::session_manager::SessionManager`, `u64`, `&{closure@beetle_bitswap_next::client::session_manager::SessionManager::remove_session::{closure#0}::{closure#0}}`, `tracing::field::Iter`, `&FieldSet`, `&Field`, `Field`, `&[&str]`, `core::fmt::rt::Argument<'_>`, `impl futures::Future<Output = tokio::sync::RwLockReadGuard<'_, ahash::hash_map::AHashMap<u64, Session>>>`, `tracing::log::Level`, `tracing::log::Metadata<'_>`, `&tracing::Metadata<'_>`, `&dyn tracing::log::Log`, `tracing::log::Metadata<'_>`, `tracing::field::Iter`, `&FieldSet`, `&Field`, `Field`, `&[&str]`, `core::fmt::rt::Argument<'_>`, `impl futures::Future<Output = tokio::sync::RwLockReadGuard<'_, ahash::hash_map::AHashMap<u64, Session>>>`, `Vec<CidGeneric<64>>`, `impl futures::Future<Output = Vec<CidGeneric<64>>>`, `impl futures::Future<Output = ()>`, `impl futures::Future<Output = tokio::sync::RwLockWriteGuard<'_, ahash::hash_map::AHashMap<u64, Session>>>`
#23 845.7 note: required because it's used within this `async` fn body
#23 845.7 --> /usr/local/cargo/git/checkouts/rust-ipfs-8623051e16f56fb9/ced0237/packages/beetle-bitswap-next/src/client/session_manager.rs:175:71
#23 845.7 |
#23 845.7 175 | pub async fn remove_session(&self, session_id: u64) -> Result<()> {
#23 845.7 | _______________________________________________________________________^
#23 845.7 176 | | debug!(
#23 845.7 177 | | "stopping session {} ({} sessions)",
#23 845.7 178 | | session_id,
#23 845.7 ... |
#23 845.7 189 | | Ok(())
#23 845.7 190 | | }
#23 845.7 | |_____^
#23 845.7 = note: required because it captures the following types: `Session`, `usize`, `impl futures::Future<Output = Result<(), anyhow::Error>>`, `session::Inner`, `tokio::task::JoinHandle<()>`
#23 845.7 note: required because it's used within this `async` fn body
#23 845.7 --> /usr/local/cargo/git/checkouts/rust-ipfs-8623051e16f56fb9/ced0237/packages/beetle-bitswap-next/src/client/session.rs:182:43
#23 845.7 |
#23 845.7 182 | pub async fn stop(self) -> Result<()> {
#23 845.7 | ___________________________________________^
#23 845.7 183 | | let count = Arc::strong_count(&self.inner);
#23 845.7 184 | | info!("stopping session {} ({})", self.inner.id, count,);
#23 845.7 185 | | ensure!(
#23 845.7 ... |
#23 845.7 207 | | Ok(())
#23 845.7 208 | | }
#23 845.7 | |_____^
#23 845.7 = note: required because it captures the following types: `std::option::Option<Session>`, `impl futures::Future<Output = std::option::Option<Session>>`, `impl futures::Future<Output = Result<(), anyhow::Error>>`
#23 845.7 note: required because it's used within this `async` fn body
#23 845.7 --> /usr/local/cargo/git/checkouts/rust-ipfs-8623051e16f56fb9/ced0237/packages/beetle-bitswap-next/src/client.rs:317:69
#23 845.7 |
#23 845.7 317 | pub async fn stop_session(&self, session_id: u64) -> Result<()> {
#23 845.7 | _____________________________________________________________________^
#23 845.7 318 | | if let Some(session) = self.session_manager.get_session(session_id).await {
#23 845.7 319 | | session.stop().await?;
#23 845.7 320 | | }
#23 845.7 321 | |
#23 845.7 322 | | Ok(())
#23 845.7 323 | | }
#23 845.7 | |_____^
#23 845.7 = note: required because it captures the following types: `Vec<(futures::futures_channel::oneshot::Sender<()>, tokio::task::JoinHandle<()>)>`, `std::vec::IntoIter<(futures::futures_channel::oneshot::Sender<()>, tokio::task::JoinHandle<()>)>`, `std::option::Option<(futures::futures_channel::oneshot::Sender<()>, tokio::task::JoinHandle<()>)>`, `tokio::task::JoinHandle<()>`, `impl futures::Future<Output = Result<(), anyhow::Error>>`
#23 845.7 note: required because it's used within this `async` block
#23 845.7 --> /usr/local/cargo/git/checkouts/rust-ipfs-8623051e16f56fb9/ced0237/src/task.rs:277:32
#23 845.7 |
#23 845.7 277 | tokio::task::spawn(async move {
#23 845.7 | ________________________________^
#23 845.7 278 | | debug!("stopping session {}", ctx);
#23 845.7 279 | | if let Some(workers) = workers {
#23 845.7 280 | | debug!("stopping workers {} for session {}", workers.len(), ctx);
#23 845.7 ... |
#23 845.7 295 | | debug!("session {} stopped", ctx);
#23 845.7 296 | | });
#23 845.7 | |_____________^
#23 845.7 note: required by a bound in `tokio::spawn`
#23 845.7 --> /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.36.0/src/task/spawn.rs:166:21
#23 845.7 |
#23 845.7 164 | pub fn spawn<F>(future: F) -> JoinHandle<F::Output>
#23 845.7 | ----- required by a bound in this function
#23 845.7 165 | where
#23 845.7 166 | F: Future + Send + 'static,
#23 845.7 | ^^^^ required by this bound in `spawn`
#23 845.7
#23 845.8 For more information about this error, try `rustc --explain E0277`.
#23 845.8 error: could not compile `rust-ipfs` (lib) due to 1 previous error