There seems to be a regression with latest nightly.
$> cargo test
[...]
Compiling mocktopus v0.7.11
error[E0059]: type parameter to bare `FnOnce` trait must be a tuple
--> /home/tobhap/.cargo/registry/src/github.com-1ecc6299db9ec823/mocktopus-0.7.11/src/mocking.rs:100:25
|
100 | impl<T, O, F: FnOnce<T, Output = O>> Mockable<T, O> for F {
| ^^^^^^^^^^ the trait `Tuple` is not implemented for `T`
|
note: required by a bound in `FnOnce`
help: consider restricting type parameter `T`
|
100 | impl<T: std::marker::Tuple, O, F: FnOnce<T, Output = O>> Mockable<T, O> for F {
| ++++++++++++++++++++
error[E0059]: type parameter to bare `FnMut` trait must be a tuple
--> /home/tobhap/.cargo/registry/src/github.com-1ecc6299db9ec823/mocktopus-0.7.11/src/mocking.rs:192:12
|
192 | M: FnMut<I, Output = MockResult<I, O>> + 'a,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Tuple` is not implemented for `I`
|
note: required by a bound in `FnMut`
help: consider further restricting type parameter `I`
|
192 | M: FnMut<I, Output = MockResult<I, O>> + 'a, I: std::marker::Tuple
| ~~~~~~~~~~~~~~~~~~~~~~~
error[E0059]: type parameter to bare `FnMut` trait must be a tuple
--> /home/tobhap/.cargo/registry/src/github.com-1ecc6299db9ec823/mocktopus-0.7.11/src/mocking.rs:204:12
|
204 | M: FnMut<I, Output = MockResult<I, O>>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Tuple` is not implemented for `I`
|
note: required by a bound in `FnMut`
help: consider further restricting type parameter `I`
|
204 | M: FnMut<I, Output = MockResult<I, O>>, I: std::marker::Tuple
| ~~~~~~~~~~~~~~~~~~~~~~~
error[E0059]: type parameter to bare `FnMut` trait must be a tuple
--> /home/tobhap/.cargo/registry/src/github.com-1ecc6299db9ec823/mocktopus-0.7.11/src/mocking.rs:45:27
|
45 | unsafe fn mock_raw<M: FnMut<T, Output = MockResult<T, O>>>(&self, mock: M);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Tuple` is not implemented for `T`
|
note: required by a bound in `FnMut`
help: consider restricting type parameter `T`
|
11 | pub trait Mockable<T: std::marker::Tuple, O> {
| ++++++++++++++++++++
error[E0059]: type parameter to bare `FnMut` trait must be a tuple
--> /home/tobhap/.cargo/registry/src/github.com-1ecc6299db9ec823/mocktopus-0.7.11/src/mocking.rs:65:21
|
65 | fn mock_safe<M: FnMut<T, Output = MockResult<T, O>> + 'static>(&self, mock: M);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Tuple` is not implemented for `T`
|
note: required by a bound in `FnMut`
help: consider restricting type parameter `T`
|
11 | pub trait Mockable<T: std::marker::Tuple, O> {
| ++++++++++++++++++++
For more information about this error, try `rustc --explain E0059`.
error: could not compile `mocktopus` due to 5 previous errors
warning: build failed, waiting for other jobs to finish...
$> rustc --version
rustc 1.67.0-nightly (7eef946fc 2022-11-06)
There seems to be a regression with latest nightly.