-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
blanket 0.4 works with async traits (yay!). Unfortunately, async traits in Rust are still rather limited in functionality so it is often necessary to use the async-trait crate. Unfortunately, blanket does not work with traits that use async-trait. Consider the following code:
trait Foo {
fn foo();
}
#[blanket::blanket(derive(Box, Mut))]
trait Bar {
async fn bar();
}
#[blanket::blanket(derive(Box, Mut))]
#[async_trait::async_trait]
trait Xyzzy {
async fn xyzzy();
}
fn main() {
println!("Hello, world!");
}
In the Cargo.toml, I have:
[dependencies]
blanket = "0.4"
async-trait = "0.1"
When compiling the above, I get:
$ cargo build
Compiling async-blanket v0.1.0 (/tmp/async-blanket)
error[E0195]: lifetime parameters or bounds on method `foo` do not match the trait declaration
--> src/main.rs:13:17
|
13 | async fn xyzzy();
| ---^-
| | |
| | lifetimes do not match method in trait
| lifetimes in impl do not match this method in trait
For more information about this error, try `rustc --explain E0195`.
error: could not compile `async-blanket` (bin "async-blanket") due to 2 previous errors
$ rustc --version
rustc 1.76.0 (07dca489a 2024-02-04)
Metadata
Metadata
Assignees
Labels
No labels