Checking Checking async-raft v0.5.1 (/home/mpostma/Documents/code/rust/async-raft/async-raft)
async-raft v0.5.1 (/home/mpostma/Documents/code/rust/async-raft/async-raft)
error[E0277]: `<S as storage::RaftStorage<D, R>>::Snapshot` cannot be shared between threads safely
--> async-raft/src/core/mod.rs:136:9
|
136 | tokio::spawn(this.main())
| ^^^^^^^^^^^^ `<S as storage::RaftStorage<D, R>>::Snapshot` cannot be shared between threads safely
|
::: /home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/task/spawn.rs:127:21
|
127 | T: Future + Send + 'static,
| ---- required by this bound in `tokio::task::spawn::spawn`
|
= help: the trait `std::marker::Sync` is not implemented for `<S as storage::RaftStorage<D, R>>::Snapshot`
= note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<<S as storage::RaftStorage<D, R>>::Snapshot>`
= note: required because it appears within the type `std::boxed::Box<<S as storage::RaftStorage<D, R>>::Snapshot>`
= note: required because it appears within the type `core::SnapshotState<<S as storage::RaftStorage<D, R>>::Snapshot>`
= note: required because it appears within the type `std::option::Option<core::SnapshotState<<S as storage::RaftStorage<D, R>>::Snapshot>>`
= note: required because it appears within the type `core::RaftCore<D, R, N, S>`
= note: required because of the requirements on the impl of `std::marker::Send` for `&core::RaftCore<D, R, N, S>`
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10> {std::future::ResumeTy, bool, u64, core::RaftCore<D, R, N, S>, &'r mut core::RaftCore<D, R, N, S>, &'s S, std::sync::Arc<S>, &'t0 core::RaftCore<D, R, N, S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't1)>>, (), std::vec::Vec<raft::Entry<D>>, std::vec::Vec<(&'t2 u64, &'t3 D)>, &'t4 [(&'t5 u64, &'t6 D)], &'t7 std::vec::Vec<(&'t8 u64, &'t9 D)>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't10)>>}`
= note: required because it appears within the type `[static generator@async-raft/src/core/append_entries.rs:203:107: 235:6 self:&mut core::RaftCore<D, R, N, S>, report_metrics:&mut bool for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10> {std::future::ResumeTy, bool, u64, core::RaftCore<D, R, N, S>, &'r mut core::RaftCore<D, R, N, S>, &'s S, std::sync::Arc<S>, &'t0 core::RaftCore<D, R, N, S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't1)>>, (), std::vec::Vec<raft::Entry<D>>, std::vec::Vec<(&'t2 u64, &'t3 D)>, &'t4 [(&'t5 u64, &'t6 D)], &'t7 std::vec::Vec<(&'t8 u64, &'t9 D)>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't10)>>}]`
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::future::ResumeTy, &'r mut core::RaftCore<D, R, N, S>, &'s mut bool, tracing::span::Span, [static generator@async-raft/src/core/append_entries.rs:203:107: 235:6 self:&'t0 mut core::RaftCore<D, R, N, S>, report_metrics:&'t1 mut bool for<'t6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18> {std::future::ResumeTy, bool, u64, core::RaftCore<D, R, N, S>, &'t6 mut core::RaftCore<D, R, N, S>, &'t7 S, std::sync::Arc<S>, &'t8 core::RaftCore<D, R, N, S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't9)>>, (), std::vec::Vec<raft::Entry<D>>, std::vec::Vec<(&'t10 u64, &'t11 D)>, &'t12 [(&'t13 u64, &'t14 D)], &'t15 std::vec::Vec<(&'t16 u64, &'t17 D)>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't18)>>}], impl core::future::future::Future, tracing_futurerror[E0277]: `<S as storage::RaftStorage<D, R>>::Snapshot` cannot be shared between threads safely
--> async-raft/src/core/mod.rs:136:9
|
136 | tokio::spawn(this.main())
| ^^^^^^^^^^^^ `<S as storage::RaftStorage<D, R>>::Snapshot` cannot be shared between threads safely
|
::: /home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/task/spawn.rs:127:21
|
127 | T: Future + Send + 'static,
| ---- required by this bound in `tokio::task::spawn::spawn`
|
= help: the trait `std::marker::Sync` is not implemented for `<S as storage::RaftStorage<D, R>>::Snapshot`
= note: required because of the requirements on the impl of `std::marker::Sync` for `std::ptr::Unique<<S as storage::RaftStorage<D, R>>::Snapshot>`
= note: required because it appears within the type `std::boxed::Box<<S as storage::RaftStorage<D, R>>::Snapshot>`
= note: required because it appears within the type `core::SnapshotState<<S as storage::RaftStorage<D, R>>::Snapshot>`
= note: required because it appears within the type `std::option::Option<core::SnapshotState<<S as storage::RaftStorage<D, R>>::Snapshot>>`
= note: required because it appears within the type `core::RaftCore<D, R, N, S>`
= note: required because of the requirements on the impl of `std::marker::Send` for `&core::RaftCore<D, R, N, S>`
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10> {std::future::ResumeTy, bool, u64, core::RaftCore<D, R, N, S>, &'r mut core::RaftCore<D, R, N, S>, &'s S, std::sync::Arc<S>, &'t0 core::RaftCore<D, R, N, S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't1)>>, (), std::vec::Vec<raft::Entry<D>>, std::vec::Vec<(&'t2 u64, &'t3 D)>, &'t4 [(&'t5 u64, &'t6 D)], &'t7 std::vec::Vec<(&'t8 u64, &'t9 D)>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't10)>>}`
= note: required because it appears within the type `[static generator@async-raft/src/core/append_entries.rs:203:107: 235:6 self:&mut core::RaftCore<D, R, N, S>, report_metrics:&mut bool for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10> {std::future::ResumeTy, bool, u64, core::RaftCore<D, R, N, S>, &'r mut core::RaftCore<D, R, N, S>, &'s S, std::sync::Arc<S>, &'t0 core::RaftCore<D, R, N, S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't1)>>, (), std::vec::Vec<raft::Entry<D>>, std::vec::Vec<(&'t2 u64, &'t3 D)>, &'t4 [(&'t5 u64, &'t6 D)], &'t7 std::vec::Vec<(&'t8 u64, &'t9 D)>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't10)>>}]`
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::future::ResumeTy, &'r mut core::RaftCore<D, R, N, S>, &'s mut bool, tracing::span::Span, [static generator@async-raft/src/core/append_entries.rs:203:107: 235:6 self:&'t0 mut core::RaftCore<D, R, N, S>, report_metrics:&'t1 mut bool for<'t6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18> {std::future::ResumeTy, bool, u64, core::RaftCore<D, R, N, S>, &'t6 mut core::RaftCore<D, R, N, S>, &'t7 S, std::sync::Arc<S>, &'t8 core::RaftCore<D, R, N, S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't9)>>, (), std::vec::Vec<raft::Entry<D>>, std::vec::Vec<(&'t10 u64, &'t11 D)>, &'t12 [(&'t13 u64, &'t14 D)], &'t15 std::vec::Vec<(&'t16 u64, &'t17 D)>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't18)>>}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}`
= note: required because it appears within the type `[static generator@async-raft/src/core/append_entries.rs:202:5: 202:72 self:&mut core::RaftCore<D, R, N, S>, report_metrics:&mut bool for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::future::ResumeTy, &'r mut core::RaftCore<D, R, N, S>, &'s mut bool, tracing::span::Span, [static generator@async-raft/src/core/append_entries.rs:203:107: 235:6 self:&'t0 mut core::RaftCore<D, R, N, S>, report_metrics:&'t1 mut bool for<'t6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18> {std::future::ResumeTy, bool, u64, core::RaftCore<D, R, N, S>, &'t6 mut core::RaftCore<D, R, N, S>, &'t7 S, std::sync::Arc<S>, &'t8 core::RaftCore<D, R, N, S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't9)>>, (), std::vec::Vec<raft::Entry<D>>, std::vec::Vec<(&'t10 u64, &'t11 D)>, &'t12 [(&'t13 u64, &'t14 D)], &'t15 std::vec::Vec<(&'t16 u64, &'t17 D)>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't18)>>}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]`
= note: required because it appears within the type `std::future::from_generator::GenFuture<[static generator@async-raft/src/core/append_entries.rs:202:5: 202:72 self:&mut core::RaftCore<D, R, N, S>, report_metrics:&mut bool for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::future::ResumeTy, &'r mut core::RaftCore<D, R, N, S>, &'s mut bool, tracing::span::Span, [static generator@async-raft/src/core/append_entries.rs:203:107: 235:6 self:&'t0 mut core::RaftCore<D, R, N, S>, report_metrics:&'t1 mut bool for<'t6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18> {std::future::ResumeTy, bool, u64, core::RaftCore<D, R, N, S>, &'t6 mut core::RaftCore<D, R, N, S>, &'t7 S, std::sync::Arc<S>, &'t8 core::RaftCore<D, R, N, S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't9)>>, (), std::vec::Vec<raft::Entry<D>>, std::vec::Vec<(&'t10 u64, &'t11 D)>, &'t12 [(&'t13 u64, &'t14 D)], &'t15 std::vec::Vec<(&'t16 u64, &'t17 D)>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't18)>>}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]>`
= note: required because it appears within the type `impl core::future::future::Future`
= note: required because it appears within the type `impl core::future::future::Future`
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11> {std::future::ResumeTy, bool, &'r mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, (), &'t0 mut bool, impl core::future::future::Future, raft::AppendEntriesRequest<D>, std::vec::Vec<raft::Entry<D>>, &'t3 [raft::Entry<D>], &'t4 std::vec::Vec<raft::Entry<D>>, impl core::future::future::Future, core::RaftCore<D, R, N, S>, &'t7 S, std::sync::Arc<S>, u64, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't8)>>, &'t9 raft::Entry<D>, raft::Entry<D>, std::option::Option<u64>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't10)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<raft::MembershipConfig, anyhow::Error>> + std::marker::Send + 't11)>>}`
= note: required because it appears within the type `[static generator@async-raft/src/core/append_entries.rs:14:133: 168:6 msg:raft::AppendEntriesRequest<D>, self:&mut core::RaftCore<D, R, N, S> for<'r, 's, 't0, es::Instrumented<impl core::future::future::Future>, ()}`
= note: required because it appears within the type `[static generator@async-raft/src/core/append_entries.rs:202:5: 202:72 self:&mut core::RaftCore<D, R, N, S>, report_metrics:&mut bool for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::future::ResumeTy, &'r mut core::RaftCore<D, R, N, S>, &'s mut bool, tracing::span::Span, [static generator@async-raft/src/core/append_entries.rs:203:107: 235:6 self:&'t0 mut core::RaftCore<D, R, N, S>, report_metrics:&'t1 mut bool for<'t6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18> {std::future::ResumeTy, bool, u64, core::RaftCore<D, R, N, S>, &'t6 mut core::RaftCore<D, R, N, S>, &'t7 S, std::sync::Arc<S>, &'t8 core::RaftCore<D, R, N, S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't9)>>, (), std::vec::Vec<raft::Entry<D>>, std::vec::Vec<(&'t10 u64, &'t11 D)>, &'t12 [(&'t13 u64, &'t14 D)], &'t15 std::vec::Vec<(&'t16 u64, &'t17 D)>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't18)>>}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]`
= note: required because it appears within the type `std::future::from_generator::GenFuture<[static generator@async-raft/src/core/append_entries.rs:202:5: 202:72 self:&mut core::RaftCore<D, R, N, S>, report_metrics:&mut bool for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5> {std::future::ResumeTy, &'r mut core::RaftCore<D, R, N, S>, &'s mut bool, tracing::span::Span, [static generator@async-raft/src/core/append_entries.rs:203:107: 235:6 self:&'t0 mut core::RaftCore<D, R, N, S>, report_metrics:&'t1 mut bool for<'t6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18> {std::future::ResumeTy, bool, u64, core::RaftCore<D, R, N, S>, &'t6 mut core::RaftCore<D, R, N, S>, &'t7 S, std::sync::Arc<S>, &'t8 core::RaftCore<D, R, N, S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't9)>>, (), std::vec::Vec<raft::Entry<D>>, std::vec::Vec<(&'t10 u64, &'t11 D)>, &'t12 [(&'t13 u64, &'t14 D)], &'t15 std::vec::Vec<(&'t16 u64, &'t17 D)>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't18)>>}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]>`
= note: required because it appears within the type `impl core::future::future::Future`
= note: required because it appears within the type `impl core::future::future::Future`
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11> {std::future::ResumeTy, bool, &'r mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, (), &'t0 mut bool, impl core::future::future::Future, raft::AppendEntriesRequest<D>, std::vec::Vec<raft::Entry<D>>, &'t3 [raft::Entry<D>], &'t4 std::vec::Vec<raft::Entry<D>>, impl core::future::future::Future, core::RaftCore<D, R, N, S>, &'t7 S, std::sync::Arc<S>, u64, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't8)>>, &'t9 raft::Entry<D>, raft::Entry<D>, std::option::Option<u64>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't10)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<raft::MembershipConfig, anyhow::Error>> + std::marker::Send + 't11)>>}`
= note: required because it appears within the type `[static generator@async-raft/src/core/append_entries.rs:14:133: 168:6 msg:raft::AppendEntriesRequest<D>, self:&mut core::RaftCore<D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11> {std::future::ResumeTy, bool, &'r mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, (), &'t0 mut bool, impl core::future::future::Future, raft::AppendEntriesRequest<D>, std::vec::Vec<raft::Entry<D>>, &'t3 [raft::Entry<D>], &'t4 std::vec::Vec<raft::Entry<D>>, impl core::future::future::Future, core::RaftCore<D, R, N, S>, &'t7 S, std::sync::Arc<S>, u64, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't8)>>, &'t9 raft::Entry<D>, raft::Entry<D>, std::option::Option<u64>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't10)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<raft::MembershipConfig, anyhow::Error>> + std::marker::Send + 't11)>>}]`
= note: required because it appears within the type `for<'r, 's, 't0, 't1> {std::future::ResumeTy, &'r mut core::RaftCore<D, R, N, S>, raft::AppendEntriesRequest<D>, tracing::span::Span, [static generator@async-raft/src/core/append_entries.rs:14:133: 168:6 msg:raft::AppendEntriesRequest<D>, self:&'s mut core::RaftCore<D, R, N, S> for<'t2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15> {std::future::ResumeTy, bool, &'t2 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, (), &'t4 mut bool, impl core::future::future::Future, raft::AppendEntriesRequest<D>, std::vec::Vec<raft::Entry<D>>, &'t7 [raft::Entry<D>], &'t8 std::vec::Vec<raft::Entry<D>>, impl core::future::future::Future, core::RaftCore<D, R, N, S>, &'t11 S, std::sync::Arc<S>, u64, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't12)>>, &'t13 raft::Entry<D>, raft::Entry<D>, std::option::Option<u64>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't14)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<raft::MembershipConfig, anyhow::Error>> + std::marker::Send + 't15)>>}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}`
= note: required because it appears within the type `[static generator@async-raft/src/core/append_entries.rs:10:5: 13:7 self:&mut core::RaftCore<D, R, N, S>, msg:raft::AppendEntriesRequest<D> for<'r, 's, 't0, 't1> {std::future::ResumeTy, &'r mut core::RaftCore<D, R, N, S>, raft::AppendEntriesRequest<D>, tracing::span::Span, [static generator@async-raft/src/core/append_entries.rs:14:133: 168:6 msg:raft::AppendEntriesRequest<D>, self:&'s mut core::RaftCore<D, R, N, S> for<'t2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15> {std::future::ResumeTy, bool, &'t2 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, (), &'t4 mut bool, impl core::future::future::Future, raft::AppendEntriesRequest<D>, std::vec::Vec<raft::Entry<D>>, &'t7 [raft::Entry<D>], &'t8 std::vec::Vec<raft::Entry<D>>, impl core::future::future::Future, core::RaftCore<D, R, N, S>, &'t11 S, std::sync::Arc<S>, u64, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't12)>>, &'t13 raft::Entry<D>, raft::Entry<D>, std::option::Option<u64>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't14)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<raft::MembershipConfig, anyhow::Error>> + std::marker::Send + 't15)>>}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]`
= note: required because it appears within the type `std::future::from_generator::GenFuture<[stat't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11> {std::future::ResumeTy, bool, &'r mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, (), &'t0 mut bool, impl core::future::future::Future, raft::AppendEntriesRequest<D>, std::vec::Vec<raft::Entry<D>>, &'t3 [raft::Entry<D>], &'t4 std::vec::Vec<raft::Entry<D>>, impl core::future::future::Future, core::RaftCore<D, R, N, S>, &'t7 S, std::sync::Arc<S>, u64, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't8)>>, &'t9 raft::Entry<D>, raft::Entry<D>, std::option::Option<u64>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't10)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<raft::MembershipConfig, anyhow::Error>> + std::marker::Send + 't11)>>}]`
= note: required because it appears within the type `for<'r, 's, 't0, 't1> {std::future::ResumeTy, &'r mut core::RaftCore<D, R, N, S>, raft::AppendEntriesRequest<D>, tracing::span::Span, [static generator@async-raft/src/core/append_entries.rs:14:133: 168:6 msg:raft::AppendEntriesRequest<D>, self:&'s mut core::RaftCore<D, R, N, S> for<'t2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15> {std::future::ResumeTy, bool, &'t2 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, (), &'t4 mut bool, impl core::future::future::Future, raft::AppendEntriesRequest<D>, std::vec::Vec<raft::Entry<D>>, &'t7 [raft::Entry<D>], &'t8 std::vec::Vec<raft::Entry<D>>, impl core::future::future::Future, core::RaftCore<D, R, N, S>, &'t11 S, std::sync::Arc<S>, u64, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't12)>>, &'t13 raft::Entry<D>, raft::Entry<D>, std::option::Option<u64>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't14)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<raft::MembershipConfig, anyhow::Error>> + std::marker::Send + 't15)>>}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}`
= note: required because it appears within the type `[static generator@async-raft/src/core/append_entries.rs:10:5: 13:7 self:&mut core::RaftCore<D, R, N, S>, msg:raft::AppendEntriesRequest<D> for<'r, 's, 't0, 't1> {std::future::ResumeTy, &'r mut core::RaftCore<D, R, N, S>, raft::AppendEntriesRequest<D>, tracing::span::Span, [static generator@async-raft/src/core/append_entries.rs:14:133: 168:6 msg:raft::AppendEntriesRequest<D>, self:&'s mut core::RaftCore<D, R, N, S> for<'t2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15> {std::future::ResumeTy, bool, &'t2 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, (), &'t4 mut bool, impl core::future::future::Future, raft::AppendEntriesRequest<D>, std::vec::Vec<raft::Entry<D>>, &'t7 [raft::Entry<D>], &'t8 std::vec::Vec<raft::Entry<D>>, impl core::future::future::Future, core::RaftCore<D, R, N, S>, &'t11 S, std::sync::Arc<S>, u64, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't12)>>, &'t13 raft::Entry<D>, raft::Entry<D>, std::option::Option<u64>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't14)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<raft::MembershipConfig, anyhow::Error>> + std::marker::Send + 't15)>>}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]`
= note: required because it appears within the type `std::future::from_generator::GenFuture<[static generator@async-raft/src/core/append_entries.rs:10:5: 13:7 self:&mut core::RaftCore<D, R, N, S>, msg:raft::AppendEntriesRequest<D> for<'r, 's, 't0, 't1> {std::future::ResumeTy, &'r mut core::RaftCore<D, R, N, S>, raft::AppendEntriesRequest<D>, tracing::span::Span, [static generator@async-raft/src/core/append_entries.rs:14:133: 168:6 msg:raft::AppendEntriesRequest<D>, self:&'s mut core::RaftCore<D, R, N, S> for<'t2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15> {std::future::ResumeTy, bool, &'t2 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, (), &'t4 mut bool, impl core::future::future::Future, raft::AppendEntriesRequest<D>, std::vec::Vec<raft::Entry<D>>, &'t7 [raft::Entry<D>], &'t8 std::vec::Vec<raft::Entry<D>>, impl core::future::future::Future, core::RaftCore<D, R, N, S>, &'t11 S, std::sync::Arc<S>, u64, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't12)>>, &'t13 raft::Entry<D>, raft::Entry<D>, std::option::Option<u64>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't14)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<raft::MembershipConfig, anyhow::Error>> + std::marker::Send + 't15)>>}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]>`
= note: required because it appears within the type `impl core::future::future::Future`
= note: required because it appears within the type `impl core::future::future::Future`
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46> {std::future::ResumeTy, std::vec::Vec<u64>, &'r mut core::LeaderState<'s, D, R, N, S>, core::LeaderState<'t0, D, R, N, S>, impl core::future::future::Future, (), u8, (tokio::stream::next::Next<'t4, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t5, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t6, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t7, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t8, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>), [closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t10 mut u8, futures:&'t11 mut (tokio::stream::next::Next<'t12, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t13, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t14, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t15, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t16, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)], tokio::future::poll_fn::PollFn<[closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t18 mut u8, futures:&'t19 mut (tokio::stream::next::Next<'t20, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t21, tokio::sync::mpsc::bounded::Receiver<ic generator@async-raft/src/core/append_entries.rs:10:5: 13:7 self:&mut core::RaftCore<D, R, N, S>, msg:raft::AppendEntriesRequest<D> for<'r, 's, 't0, 't1> {std::future::ResumeTy, &'r mut core::RaftCore<D, R, N, S>, raft::AppendEntriesRequest<D>, tracing::span::Span, [static generator@async-raft/src/core/append_entries.rs:14:133: 168:6 msg:raft::AppendEntriesRequest<D>, self:&'s mut core::RaftCore<D, R, N, S> for<'t2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15> {std::future::ResumeTy, bool, &'t2 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, (), &'t4 mut bool, impl core::future::future::Future, raft::AppendEntriesRequest<D>, std::vec::Vec<raft::Entry<D>>, &'t7 [raft::Entry<D>], &'t8 std::vec::Vec<raft::Entry<D>>, impl core::future::future::Future, core::RaftCore<D, R, N, S>, &'t11 S, std::sync::Arc<S>, u64, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::vec::Vec<raft::Entry<D>>, anyhow::Error>> + std::marker::Send + 't12)>>, &'t13 raft::Entry<D>, raft::Entry<D>, std::option::Option<u64>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<(), anyhow::Error>> + std::marker::Send + 't14)>>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<raft::MembershipConfig, anyhow::Error>> + std::marker::Send + 't15)>>}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]>`
= note: required because it appears within the type `impl core::future::future::Future`
= note: required because it appears within the type `impl core::future::future::Future`
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46> {std::future::ResumeTy, std::vec::Vec<u64>, &'r mut core::LeaderState<'s, D, R, N, S>, core::LeaderState<'t0, D, R, N, S>, impl core::future::future::Future, (), u8, (tokio::stream::next::Next<'t4, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t5, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t6, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t7, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t8, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>), [closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t10 mut u8, futures:&'t11 mut (tokio::stream::next::Next<'t12, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t13, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t14, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t15, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t16, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)], tokio::future::poll_fn::PollFn<[closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t18 mut u8, futures:&'t19 mut (tokio::stream::next::Next<'t20, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t21, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t22, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t23, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t24, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)]>, core::LeaderState<'a, D, R, N, S>::run::{{closure}}#0::{{closure}}#0::util::Out<std::option::Option<raft::RaftMsg<D, R>>, std::option::Option<core::SnapshotUpdate>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>, raft::RaftMsg<D, R>, raft::AppendEntriesRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::AppendEntriesResponse, error::RaftError>>, &'t25 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, raft::VoteRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::VoteResponse, error::RaftError>>, impl core::future::future::Future, raft::InstallSnapshotRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::InstallSnapshotResponse, error::RaftError>>, impl core::future::future::Future, tokio::sync::oneshot::Sender<std::result::Result<(), error::ClientReadError>>, impl core::future::future::Future, raft::ClientWriteRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::ClientWriteResponse<R>, error::ClientWriteError<D>>>, impl core::future::future::Future, std::collections::HashSet<u64>, tokio::sync::oneshot::Sender<std::result::Result<(), error::ChangeConfigError>>, impl core::future::future::Future, std::result::Result<u64, error::RaftError>, impl core::future::future::Future, u64, impl core::future::future::Future, replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>, impl core::future::future::Future}`
= note: required because it appears within the type `[static generator@async-raft/src/core/mod.rs:555:56: 640:6 self:core::LeaderState<'_, D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46> {std::future::ResumeTy, std::vec::Vec<u64>, &'r mut core::LeaderState<'s, D, R, N, S>, core::LeaderState<'t0, D, R, N, S>, impl core::future::future::Future, (), u8, (tokio::stream::next::Next<'t4, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t5, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t6, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t7, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t8, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>), [closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t10 mut u8, futures:&'t11 mut (tokio::stream::next::Next<'t12, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t13, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t14, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t15, futures_util::stream::futures_ordered::Futurecore::SnapshotUpdate>>, tokio::stream::next::Next<'t22, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t23, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t24, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)]>, core::LeaderState<'a, D, R, N, S>::run::{{closure}}#0::{{closure}}#0::util::Out<std::option::Option<raft::RaftMsg<D, R>>, std::option::Option<core::SnapshotUpdate>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>, raft::RaftMsg<D, R>, raft::AppendEntriesRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::AppendEntriesResponse, error::RaftError>>, &'t25 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, raft::VoteRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::VoteResponse, error::RaftError>>, impl core::future::future::Future, raft::InstallSnapshotRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::InstallSnapshotResponse, error::RaftError>>, impl core::future::future::Future, tokio::sync::oneshot::Sender<std::result::Result<(), error::ClientReadError>>, impl core::future::future::Future, raft::ClientWriteRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::ClientWriteResponse<R>, error::ClientWriteError<D>>>, impl core::future::future::Future, std::collections::HashSet<u64>, tokio::sync::oneshot::Sender<std::result::Result<(), error::ChangeConfigError>>, impl core::future::future::Future, std::result::Result<u64, error::RaftError>, impl core::future::future::Future, u64, impl core::future::future::Future, replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>, impl core::future::future::Future}`
= note: required because it appears within the type `[static generator@async-raft/src/core/mod.rs:555:56: 640:6 self:core::LeaderState<'_, D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46> {std::future::ResumeTy, std::vec::Vec<u64>, &'r mut core::LeaderState<'s, D, R, N, S>, core::LeaderState<'t0, D, R, N, S>, impl core::future::future::Future, (), u8, (tokio::stream::next::Next<'t4, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t5, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t6, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t7, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t8, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>), [closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t10 mut u8, futures:&'t11 mut (tokio::stream::next::Next<'t12, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t13, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t14, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t15, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t16, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)], tokio::future::poll_fn::PollFn<[closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t18 mut u8, futures:&'t19 mut (tokio::stream::next::Next<'t20, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t21, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t22, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t23, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t24, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)]>, core::LeaderState<'a, D, R, N, S>::run::{{closure}}#0::{{closure}}#0::util::Out<std::option::Option<raft::RaftMsg<D, R>>, std::option::Option<core::SnapshotUpdate>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>, raft::RaftMsg<D, R>, raft::AppendEntriesRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::AppendEntriesResponse, error::RaftError>>, &'t25 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, raft::VoteRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::VoteResponse, error::RaftError>>, impl core::future::future::Future, raft::InstallSnapshotRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::InstallSnapshotResponse, error::RaftError>>, impl core::future::future::Future, tokio::sync::oneshot::Sender<std::result::Result<(), error::ClientReadError>>, impl core::future::future::Future, raft::ClientWriteRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::ClientWriteResponse<R>, error::ClientWriteError<D>>>, impl core::future::future::Future, std::collections::HashSet<u64>, tokio::sync::oneshot::Sender<std::result::Result<(), error::ChangeConfigError>>, impl core::future::future::Future, std::result::Result<u64, error::RaftError>, impl core::future::future::Future, u64, impl core::future::future::Future, replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>, impl core::future::future::Future}]`
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4> {std::future::ResumeTy, core::LeaderState<'r, D, R, N, S>, tracing::span::Span, [static generator@async-raft/src/core/mod.rs:555:56: 640:6 self:core::LeaderState<'t0, D, R, N, S> for<'t5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47, 't48, 't49, 't50, 't51, 't52, 't53> {std::future::ResumeTy, std::vec::Vec<u64>, &'t5 mut core::LeaderState<'t6, D, R, N, S>, core::LeaderState<'t7, D, R, N, S>, impl core::future::future::Future, (), u8, (tokio::stream::next::Next<'t11, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t12, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t13, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t14, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stresOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t16, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)], tokio::future::poll_fn::PollFn<[closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t18 mut u8, futures:&'t19 mut (tokio::stream::next::Next<'t20, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t21, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t22, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t23, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t24, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)]>, core::LeaderState<'a, D, R, N, S>::run::{{closure}}#0::{{closure}}#0::util::Out<std::option::Option<raft::RaftMsg<D, R>>, std::option::Option<core::SnapshotUpdate>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>, raft::RaftMsg<D, R>, raft::AppendEntriesRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::AppendEntriesResponse, error::RaftError>>, &'t25 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, raft::VoteRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::VoteResponse, error::RaftError>>, impl core::future::future::Future, raft::InstallSnapshotRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::InstallSnapshotResponse, error::RaftError>>, impl core::future::future::Future, tokio::sync::oneshot::Sender<std::result::Result<(), error::ClientReadError>>, impl core::future::future::Future, raft::ClientWriteRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::ClientWriteResponse<R>, error::ClientWriteError<D>>>, impl core::future::future::Future, std::collections::HashSet<u64>, tokio::sync::oneshot::Sender<std::result::Result<(), error::ChangeConfigError>>, impl core::future::future::Future, std::result::Result<u64, error::RaftError>, impl core::future::future::Future, u64, impl core::future::future::Future, replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>, impl core::future::future::Future}]`
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4> {std::future::ResumeTy, core::LeaderState<'r, D, R, N, S>, tracing::span::Span, [static generator@async-raft/src/core/mod.rs:555:56: 640:6 self:core::LeaderState<'t0, D, R, N, S> for<'t5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47, 't48, 't49, 't50, 't51, 't52, 't53> {std::future::ResumeTy, std::vec::Vec<u64>, &'t5 mut core::LeaderState<'t6, D, R, N, S>, core::LeaderState<'t7, D, R, N, S>, impl core::future::future::Future, (), u8, (tokio::stream::next::Next<'t11, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t12, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t13, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t14, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t15, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>), [closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t17 mut u8, futures:&'t18 mut (tokio::stream::next::Next<'t19, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t20, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t21, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t22, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t23, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)], tokio::future::poll_fn::PollFn<[closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t25 mut u8, futures:&'t26 mut (tokio::stream::next::Next<'t27, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t28, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t29, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t30, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t31, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)]>, core::LeaderState<'a, D, R, N, S>::run::{{closure}}#0::{{closure}}#0::util::Out<std::option::Option<raft::RaftMsg<D, R>>, std::option::Option<core::SnapshotUpdate>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>, raft::RaftMsg<D, R>, raft::AppendEntriesRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::AppendEntriesResponse, error::RaftError>>, &'t32 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, raft::VoteRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::VoteResponse, error::RaftError>>, impl core::future::future::Future, raft::InstallSnapshotRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::InstallSnapshotResponse, error::RaftError>>, impl core::future::future::Future, tokio::sync::oneshot::Sender<std::result::Result<(), error::ClientReadError>>, impl core::future::future::Future, raft::ClientWriteRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::ClientWriteResponse<R>, error::ClientWriteError<D>>>, impl core::future::future::Future, std::collections::HashSet<u64>, tokio::sync::oneshot::Sender<std::result::Result<(), error::ChangeConfigError>>, impl core::future::future::Future, std::result::Result<u64, error::RaftError>, impl core::future::future::Future, u64, impl core::future::future::Future, replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>, impl core::future::future::Future}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}`
= note: required because it appears within the type `[static generator@async-raft/src/core/mod.rs:554:5: 554:100 __arg0:core::LeaderState<'_, D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4> {std::future::ResumeTy, core::LeaderState<'r, D, R, N, S>, tracing::span::Span, [static generator@async-raft/src/core/mod.rs:555:56: 640:6 self:core::LeaderState<'t0, D, R, N, S> for<'t5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, am::next::Next<'t15, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>), [closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t17 mut u8, futures:&'t18 mut (tokio::stream::next::Next<'t19, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t20, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t21, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t22, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t23, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)], tokio::future::poll_fn::PollFn<[closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t25 mut u8, futures:&'t26 mut (tokio::stream::next::Next<'t27, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t28, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t29, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t30, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t31, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)]>, core::LeaderState<'a, D, R, N, S>::run::{{closure}}#0::{{closure}}#0::util::Out<std::option::Option<raft::RaftMsg<D, R>>, std::option::Option<core::SnapshotUpdate>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>, raft::RaftMsg<D, R>, raft::AppendEntriesRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::AppendEntriesResponse, error::RaftError>>, &'t32 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, raft::VoteRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::VoteResponse, error::RaftError>>, impl core::future::future::Future, raft::InstallSnapshotRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::InstallSnapshotResponse, error::RaftError>>, impl core::future::future::Future, tokio::sync::oneshot::Sender<std::result::Result<(), error::ClientReadError>>, impl core::future::future::Future, raft::ClientWriteRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::ClientWriteResponse<R>, error::ClientWriteError<D>>>, impl core::future::future::Future, std::collections::HashSet<u64>, tokio::sync::oneshot::Sender<std::result::Result<(), error::ChangeConfigError>>, impl core::future::future::Future, std::result::Result<u64, error::RaftError>, impl core::future::future::Future, u64, impl core::future::future::Future, replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>, impl core::future::future::Future}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}`
= note: required because it appears within the type `[static generator@async-raft/src/core/mod.rs:554:5: 554:100 __arg0:core::LeaderState<'_, D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4> {std::future::ResumeTy, core::LeaderState<'r, D, R, N, S>, tracing::span::Span, [static generator@async-raft/src/core/mod.rs:555:56: 640:6 self:core::LeaderState<'t0, D, R, N, S> for<'t5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47, 't48, 't49, 't50, 't51, 't52, 't53> {std::future::ResumeTy, std::vec::Vec<u64>, &'t5 mut core::LeaderState<'t6, D, R, N, S>, core::LeaderState<'t7, D, R, N, S>, impl core::future::future::Future, (), u8, (tokio::stream::next::Next<'t11, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t12, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t13, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t14, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t15, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>), [closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t17 mut u8, futures:&'t18 mut (tokio::stream::next::Next<'t19, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t20, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t21, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t22, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t23, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)], tokio::future::poll_fn::PollFn<[closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t25 mut u8, futures:&'t26 mut (tokio::stream::next::Next<'t27, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t28, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t29, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t30, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t31, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)]>, core::LeaderState<'a, D, R, N, S>::run::{{closure}}#0::{{closure}}#0::util::Out<std::option::Option<raft::RaftMsg<D, R>>, std::option::Option<core::SnapshotUpdate>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>, raft::RaftMsg<D, R>, raft::AppendEntriesRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::AppendEntriesResponse, error::RaftError>>, &'t32 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, raft::VoteRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::VoteResponse, error::RaftError>>, impl core::future::future::Future, raft::InstallSnapshotRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::InstallSnapshotResponse, error::RaftError>>, impl core::future::future::Future, tokio::sync::oneshot::Sender<std::result::Result<(), error::ClientReadError>>, impl core::future::future::Future, raft::ClientWriteRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::ClientWriteResponse<R>, error::ClientWrite't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47, 't48, 't49, 't50, 't51, 't52, 't53> {std::future::ResumeTy, std::vec::Vec<u64>, &'t5 mut core::LeaderState<'t6, D, R, N, S>, core::LeaderState<'t7, D, R, N, S>, impl core::future::future::Future, (), u8, (tokio::stream::next::Next<'t11, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t12, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t13, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t14, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t15, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>), [closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t17 mut u8, futures:&'t18 mut (tokio::stream::next::Next<'t19, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t20, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t21, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t22, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t23, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)], tokio::future::poll_fn::PollFn<[closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t25 mut u8, futures:&'t26 mut (tokio::stream::next::Next<'t27, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t28, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t29, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t30, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t31, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)]>, core::LeaderState<'a, D, R, N, S>::run::{{closure}}#0::{{closure}}#0::util::Out<std::option::Option<raft::RaftMsg<D, R>>, std::option::Option<core::SnapshotUpdate>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>, raft::RaftMsg<D, R>, raft::AppendEntriesRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::AppendEntriesResponse, error::RaftError>>, &'t32 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, raft::VoteRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::VoteResponse, error::RaftError>>, impl core::future::future::Future, raft::InstallSnapshotRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::InstallSnapshotResponse, error::RaftError>>, impl core::future::future::Future, tokio::sync::oneshot::Sender<std::result::Result<(), error::ClientReadError>>, impl core::future::future::Future, raft::ClientWriteRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::ClientWriteResponse<R>, error::ClientWriteError<D>>>, impl core::future::future::Future, std::collections::HashSet<u64>, tokio::sync::oneshot::Sender<std::result::Result<(), error::ChangeConfigError>>, impl core::future::future::Future, std::result::Result<u64, error::RaftError>, impl core::future::future::Future, u64, impl core::future::future::Future, replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>, impl core::future::future::Future}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]`
= note: required because it appears within the type `std::future::from_generator::GenFuture<[static generator@async-raft/src/core/mod.rs:554:5: 554:100 __arg0:core::LeaderState<'_, D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4> {std::future::ResumeTy, core::LeaderState<'r, D, R, N, S>, tracing::span::Span, [static generator@async-raft/src/core/mod.rs:555:56: 640:6 self:core::LeaderState<'t0, D, R, N, S> for<'t5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47, 't48, 't49, 't50, 't51, 't52, 't53> {std::future::ResumeTy, std::vec::Vec<u64>, &'t5 mut core::LeaderState<'t6, D, R, N, S>, core::LeaderState<'t7, D, R, N, S>, impl core::future::future::Future, (), u8, (tokio::stream::next::Next<'t11, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t12, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t13, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t14, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t15, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>), [closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t17 mut u8, futures:&'t18 mut (tokio::stream::next::Next<'t19, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t20, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t21, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t22, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t23, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)], tokio::future::poll_fn::PollFn<[closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t25 mut u8, futures:&'t26 mut (tokio::stream::next::Next<'t27, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t28, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t29, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t30, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t31, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)]>, core::LeaderState<'a, D, R, N, S>::run::{{closure}}#0::{{closure}}#0::util::Out<std::option::Option<raft::RaftMsg<D, R>>, std::option::Option<core::SnapshotUpdate>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, sError<D>>>, impl core::future::future::Future, std::collections::HashSet<u64>, tokio::sync::oneshot::Sender<std::result::Result<(), error::ChangeConfigError>>, impl core::future::future::Future, std::result::Result<u64, error::RaftError>, impl core::future::future::Future, u64, impl core::future::future::Future, replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>, impl core::future::future::Future}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]`
= note: required because it appears within the type `std::future::from_generator::GenFuture<[static generator@async-raft/src/core/mod.rs:554:5: 554:100 __arg0:core::LeaderState<'_, D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4> {std::future::ResumeTy, core::LeaderState<'r, D, R, N, S>, tracing::span::Span, [static generator@async-raft/src/core/mod.rs:555:56: 640:6 self:core::LeaderState<'t0, D, R, N, S> for<'t5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14, 't15, 't16, 't17, 't18, 't19, 't20, 't21, 't22, 't23, 't24, 't25, 't26, 't27, 't28, 't29, 't30, 't31, 't32, 't33, 't34, 't35, 't36, 't37, 't38, 't39, 't40, 't41, 't42, 't43, 't44, 't45, 't46, 't47, 't48, 't49, 't50, 't51, 't52, 't53> {std::future::ResumeTy, std::vec::Vec<u64>, &'t5 mut core::LeaderState<'t6, D, R, N, S>, core::LeaderState<'t7, D, R, N, S>, impl core::future::future::Future, (), u8, (tokio::stream::next::Next<'t11, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t12, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t13, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t14, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t15, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>), [closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t17 mut u8, futures:&'t18 mut (tokio::stream::next::Next<'t19, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t20, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t21, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t22, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t23, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)], tokio::future::poll_fn::PollFn<[closure@/home/mpostma/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.22/src/macros/select.rs:351:46: 425:14 disabled:&'t25 mut u8, futures:&'t26 mut (tokio::stream::next::Next<'t27, tokio::sync::mpsc::unbounded::UnboundedReceiver<raft::RaftMsg<D, R>>>, tokio::stream::next::Next<'t28, tokio::sync::mpsc::bounded::Receiver<core::SnapshotUpdate>>, tokio::stream::next::Next<'t29, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t30, futures_util::stream::futures_ordered::FuturesOrdered<tokio::sync::oneshot::Receiver<std::result::Result<u64, error::RaftError>>>>, tokio::stream::next::Next<'t31, tokio::sync::mpsc::unbounded::UnboundedReceiver<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>)]>, core::LeaderState<'a, D, R, N, S>::run::{{closure}}#0::{{closure}}#0::util::Out<std::option::Option<raft::RaftMsg<D, R>>, std::option::Option<core::SnapshotUpdate>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>, raft::RaftMsg<D, R>, raft::AppendEntriesRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::AppendEntriesResponse, error::RaftError>>, &'t32 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, raft::VoteRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::VoteResponse, error::RaftError>>, impl core::future::future::Future, raft::InstallSnapshotRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::InstallSnapshotResponse, error::RaftError>>, impl core::future::future::Future, tokio::sync::oneshot::Sender<std::result::Result<(), error::ClientReadError>>, impl core::future::future::Future, raft::ClientWriteRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::ClientWriteResponse<R>, error::ClientWriteError<D>>>, impl core::future::future::Future, std::collections::HashSet<u64>, tokio::sync::oneshot::Sender<std::result::Result<(), error::ChangeConfigError>>, impl core::future::future::Future, std::result::Result<u64, error::RaftError>, impl core::future::future::Future, u64, impl core::future::future::Future, replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>, impl core::future::future::Future}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]>`
= note: required because it appears within the type `impl core::future::future::Future`
= note: required because it appears within the type `impl core::future::future::Future`
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14> {std::future::ResumeTy, core::RaftCore<D, R, N, S>, &'r S, std::sync::Arc<S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<storage::InitialState, anyhow::Error>> + std::marker::Send + 's)>>, (), storage::InitialState, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::option::Option<storage::CurrentSnapshotData<<S as storage::RaftStorage<D, R>>::Snapshot>>, anyhow::Error>> + std::marker::Send + 't0)>>, bool, core::State, &'t1 core::State, &'t2 mut core::RaftCore<D, R, N, S>, core::LeaderState<'t3, D, R, N, S>, impl core::future::future::Future, core::CandidateState<'t6, D, R, N, S>, impl core::future::future::Future, core::FollowerState<'t9, D, R, N, S>, impl core::future::future::Future, core::NonVoterState<'t12, D, R, N, S>, impl core::future::future::Future}`
= note: required because it appears within the type `[static generator@async-raft/src/core/mod.rs:141:47: 194:6 self:core::RaftCore<D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14> {std::future::ResumeTy, core::RaftCore<D, R, N, S>, &'r S, std::sync::Arc<S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<storage::InitialState, anyhow::Error>> + std::marker::Send + 's)>>, (), storage::InitialState, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::option::Option<storage::CurrentSnapshotData<<S as storage::RaftStorage<D, R>>::Snapshot>>, anyhow::Error>> + std::marker::Send + 't0)>>, bool, core::State, &'t1 core::State, &'t2 mut core::RaftCore<D, R, N, S>, core::LeaderState<'t3, D, R, N, S>, impl core::future::future::Future, core::CandidateState<'t6, D, R, N, S>, impl core::future::future::Future, core::FollowerState<'t9, D, R, N, S>, impl core::future::future::Future, core::NonVoterState<'t12, D, R, N, S>, impl core::future::future::Future}]`
= note: required because it appears within the type `{std::future::ResumeTy, core::RaftCore<D, R, N, S>, tracing::span::Span, [static generator@async-raft/src/core/mod.rs:141:47: 194:6 self:core::RaftCore<D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5td::option::Option<std::result::Result<std::result::Result<u64, error::RaftError>, tokio::sync::oneshot::error::RecvError>>, std::option::Option<replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>>>, raft::RaftMsg<D, R>, raft::AppendEntriesRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::AppendEntriesResponse, error::RaftError>>, &'t32 mut core::RaftCore<D, R, N, S>, impl core::future::future::Future, raft::VoteRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::VoteResponse, error::RaftError>>, impl core::future::future::Future, raft::InstallSnapshotRequest, tokio::sync::oneshot::Sender<std::result::Result<raft::InstallSnapshotResponse, error::RaftError>>, impl core::future::future::Future, tokio::sync::oneshot::Sender<std::result::Result<(), error::ClientReadError>>, impl core::future::future::Future, raft::ClientWriteRequest<D>, tokio::sync::oneshot::Sender<std::result::Result<raft::ClientWriteResponse<R>, error::ClientWriteError<D>>>, impl core::future::future::Future, std::collections::HashSet<u64>, tokio::sync::oneshot::Sender<std::result::Result<(), error::ChangeConfigError>>, impl core::future::future::Future, std::result::Result<u64, error::RaftError>, impl core::future::future::Future, u64, impl core::future::future::Future, replication::ReplicaEvent<<S as storage::RaftStorage<D, R>>::Snapshot>, impl core::future::future::Future}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]>`
= note: required because it appears within the type `impl core::future::future::Future`
= note: required because it appears within the type `impl core::future::future::Future`
= note: required because it appears within the type `for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14> {std::future::ResumeTy, core::RaftCore<D, R, N, S>, &'r S, std::sync::Arc<S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<storage::InitialState, anyhow::Error>> + std::marker::Send + 's)>>, (), storage::InitialState, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::option::Option<storage::CurrentSnapshotData<<S as storage::RaftStorage<D, R>>::Snapshot>>, anyhow::Error>> + std::marker::Send + 't0)>>, bool, core::State, &'t1 core::State, &'t2 mut core::RaftCore<D, R, N, S>, core::LeaderState<'t3, D, R, N, S>, impl core::future::future::Future, core::CandidateState<'t6, D, R, N, S>, impl core::future::future::Future, core::FollowerState<'t9, D, R, N, S>, impl core::future::future::Future, core::NonVoterState<'t12, D, R, N, S>, impl core::future::future::Future}`
= note: required because it appears within the type `[static generator@async-raft/src/core/mod.rs:141:47: 194:6 self:core::RaftCore<D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14> {std::future::ResumeTy, core::RaftCore<D, R, N, S>, &'r S, std::sync::Arc<S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<storage::InitialState, anyhow::Error>> + std::marker::Send + 's)>>, (), storage::InitialState, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::option::Option<storage::CurrentSnapshotData<<S as storage::RaftStorage<D, R>>::Snapshot>>, anyhow::Error>> + std::marker::Send + 't0)>>, bool, core::State, &'t1 core::State, &'t2 mut core::RaftCore<D, R, N, S>, core::LeaderState<'t3, D, R, N, S>, impl core::future::future::Future, core::CandidateState<'t6, D, R, N, S>, impl core::future::future::Future, core::FollowerState<'t9, D, R, N, S>, impl core::future::future::Future, core::NonVoterState<'t12, D, R, N, S>, impl core::future::future::Future}]`
= note: required because it appears within the type `{std::future::ResumeTy, core::RaftCore<D, R, N, S>, tracing::span::Span, [static generator@async-raft/src/core/mod.rs:141:47: 194:6 self:core::RaftCore<D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14> {std::future::ResumeTy, core::RaftCore<D, R, N, S>, &'r S, std::sync::Arc<S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<storage::InitialState, anyhow::Error>> + std::marker::Send + 's)>>, (), storage::InitialState, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::option::Option<storage::CurrentSnapshotData<<S as storage::RaftStorage<D, R>>::Snapshot>>, anyhow::Error>> + std::marker::Send + 't0)>>, bool, core::State, &'t1 core::State, &'t2 mut core::RaftCore<D, R, N, S>, core::LeaderState<'t3, D, R, N, S>, impl core::future::future::Future, core::CandidateState<'t6, D, R, N, S>, impl core::future::future::Future, core::FollowerState<'t9, D, R, N, S>, impl core::future::future::Future, core::NonVoterState<'t12, D, R, N, S>, impl core::future::future::Future}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}`
= note: required because it appears within the type `[static generator@async-raft/src/core/mod.rs:140:5: 140:109 __arg0:core::RaftCore<D, R, N, S> {std::future::ResumeTy, core::RaftCore<D, R, N, S>, tracing::span::Span, [static generator@async-raft/src/core/mod.rs:141:47: 194:6 self:core::RaftCore<D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14> {std::future::ResumeTy, core::RaftCore<D, R, N, S>, &'r S, std::sync::Arc<S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<storage::InitialState, anyhow::Error>> + std::marker::Send + 's)>>, (), storage::InitialState, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::option::Option<storage::CurrentSnapshotData<<S as storage::RaftStorage<D, R>>::Snapshot>>, anyhow::Error>> + std::marker::Send + 't0)>>, bool, core::State, &'t1 core::State, &'t2 mut core::RaftCore<D, R, N, S>, core::LeaderState<'t3, D, R, N, S>, impl core::future::future::Future, core::CandidateState<'t6, D, R, N, S>, impl core::future::future::Future, core::FollowerState<'t9, D, R, N, S>, impl core::future::future::Future, core::NonVoterState<'t12, D, R, N, S>, impl core::future::future::Future}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]`
= note: required because it appears within the type `std::future::from_generator::GenFuture<[static generator@async-raft/src/core/mod.rs:140:5: 140:109 __arg0:core::RaftCore<D, R, N, S> {std::future::ResumeTy, core::RaftCore<D, R, N, S>, tracing::span::Span, [static generator@async-raft/src/core/mod.rs:141:47: 194:6 self:core::RaftCore<D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14> {std::future::ResumeTy, core::RaftCore<D, R, N, S>, &'r S, std::sync::Arc<S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<storage::InitialState, anyhow::Error>> + std::marker::Send + 's)>>, (), storage::InitialState, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::option::Option<storage::CurrentSnapshotData<<S as storage::RaftStorage<D, R>>::Snapshot>>, anyhow::Error>> + std::marker::Send + 't0)>>, bool, core::State, &'t1 core::State, &'t2 mut core::RaftCore<D, R, N, S>, core::LeaderState<'t3, D, R, N, S>, impl core::future::future::Future, core::CandidateState<'t6, D, R, N, S>, impl core::future::future::Future, core::FollowerState<'t9, D, R, N, S>, impl core::future::future::Future, core::NonVoterState<'t12, D, R, N, S>, impl core::future::future::Future}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]>`
= note: required because it appears within the type `impl core::future::future::Future`
= note: required because it appears within the type `impl core::future::future::Future`
help: consider further restricting the associated type
|
109 | ) ->, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14> {std::future::ResumeTy, core::RaftCore<D, R, N, S>, &'r S, std::sync::Arc<S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<storage::InitialState, anyhow::Error>> + std::marker::Send + 's)>>, (), storage::InitialState, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::option::Option<storage::CurrentSnapshotData<<S as storage::RaftStorage<D, R>>::Snapshot>>, anyhow::Error>> + std::marker::Send + 't0)>>, bool, core::State, &'t1 core::State, &'t2 mut core::RaftCore<D, R, N, S>, core::LeaderState<'t3, D, R, N, S>, impl core::future::future::Future, core::CandidateState<'t6, D, R, N, S>, impl core::future::future::Future, core::FollowerState<'t9, D, R, N, S>, impl core::future::future::Future, core::NonVoterState<'t12, D, R, N, S>, impl core::future::future::Future}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}`
= note: required because it appears within the type `[static generator@async-raft/src/core/mod.rs:140:5: 140:109 __arg0:core::RaftCore<D, R, N, S> {std::future::ResumeTy, core::RaftCore<D, R, N, S>, tracing::span::Span, [static generator@async-raft/src/core/mod.rs:141:47: 194:6 self:core::RaftCore<D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14> {std::future::ResumeTy, core::RaftCore<D, R, N, S>, &'r S, std::sync::Arc<S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<storage::InitialState, anyhow::Error>> + std::marker::Send + 's)>>, (), storage::InitialState, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::option::Option<storage::CurrentSnapshotData<<S as storage::RaftStorage<D, R>>::Snapshot>>, anyhow::Error>> + std::marker::Send + 't0)>>, bool, core::State, &'t1 core::State, &'t2 mut core::RaftCore<D, R, N, S>, core::LeaderState<'t3, D, R, N, S>, impl core::future::future::Future, core::CandidateState<'t6, D, R, N, S>, impl core::future::future::Future, core::FollowerState<'t9, D, R, N, S>, impl core::future::future::Future, core::NonVoterState<'t12, D, R, N, S>, impl core::future::future::Future}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]`
= note: required because it appears within the type `std::future::from_generator::GenFuture<[static generator@async-raft/src/core/mod.rs:140:5: 140:109 __arg0:core::RaftCore<D, R, N, S> {std::future::ResumeTy, core::RaftCore<D, R, N, S>, tracing::span::Span, [static generator@async-raft/src/core/mod.rs:141:47: 194:6 self:core::RaftCore<D, R, N, S> for<'r, 's, 't0, 't1, 't2, 't3, 't4, 't5, 't6, 't7, 't8, 't9, 't10, 't11, 't12, 't13, 't14> {std::future::ResumeTy, core::RaftCore<D, R, N, S>, &'r S, std::sync::Arc<S>, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<storage::InitialState, anyhow::Error>> + std::marker::Send + 's)>>, (), storage::InitialState, std::pin::Pin<std::boxed::Box<(dyn core::future::future::Future<Output = std::result::Result<std::option::Option<storage::CurrentSnapshotData<<S as storage::RaftStorage<D, R>>::Snapshot>>, anyhow::Error>> + std::marker::Send + 't0)>>, bool, core::State, &'t1 core::State, &'t2 mut core::RaftCore<D, R, N, S>, core::LeaderState<'t3, D, R, N, S>, impl core::future::future::Future, core::CandidateState<'t6, D, R, N, S>, impl core::future::future::Future, core::FollowerState<'t9, D, R, N, S>, impl core::future::future::Future, core::NonVoterState<'t12, D, R, N, S>, impl core::future::future::Future}], impl core::future::future::Future, tracing_futures::Instrumented<impl core::future::future::Future>, ()}]>`
= note: required because it appears within the type `impl core::future::future::Future`
= note: required because it appears within the type `impl core::future::future::Future`
help: consider further restricting the associated type
|
109 | ) -> JoinHandle<RaftResult<()>> where <S as storage::RaftStorage<D, R>>::Snapshot: std::marker::Sync {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
JoinHandle<RaftResult<()>> where <S as storage::RaftStorage<D, R>>::Snapshot: std::marker::Sync {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: aborting due to previous error
For more information about this error, try `rustc --explain E0277`.
error: aborting due to previous error
For more information about this error, try `rustc --explain E0277`.
error: could not compile `async-raft`.
To learn more, run the command again with --verbose.
error: could not compile `async-raft`.
To learn more, run the command again with --verbose.
I was trying to create getter and setter for a particular field in a struct, and doing so generated a type error. Before adding the methods, the code compiled just fine, but adding them produce a type error. I'm joining the diff of the code that produced the error along with the error message. Unless I am missing something the two version ought to be strictly equivalent. This is the minimal code sample that produce the error.
Code changes
Meta
rustc --version --verbose:Error output