mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-05 13:13:40 +00:00
33 lines
617 B
Rust
33 lines
617 B
Rust
|
type Result<T, E = Error> = ::std::result::Result<T, E>;
|
||
|
struct Error;
|
||
|
|
||
|
trait ForEach {
|
||
|
type Input;
|
||
|
fn for_each<F, U>(self, f: F)
|
||
|
where
|
||
|
F: FnOnce(Self::Input) -> U;
|
||
|
}
|
||
|
|
||
|
impl<T> ForEach for A<T> {
|
||
|
type Input = T;
|
||
|
fn for_each<F, U>(self, f: F)
|
||
|
where
|
||
|
F: FnOnce(Self::Input) -> U,
|
||
|
{
|
||
|
todo!()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
struct A<T>(T);
|
||
|
|
||
|
fn main() {
|
||
|
let a = A(Result::Ok(Result::Ok(()))); //~ ERROR type annotations needed
|
||
|
a.for_each(|a: Result<_>| {
|
||
|
let f = || match a {
|
||
|
Ok(Ok(a)) => {}
|
||
|
Ok(Err(a)) => {}
|
||
|
Err(a) => {}
|
||
|
};
|
||
|
});
|
||
|
}
|