I just ran into the wonderful error message
the trait is not dyn compatible because method
publish_videoisasync
and boy, what a rabbit hole. I found out about async_trait which resolves this by turning async methods into fn method() -> Pin<Box<dyn Future + Send + 'async_trait>>, but I thought that’s what the async fn was syntax sugar for??? Then I ran into this member-only medium post claiming
Rust Async Traits: What Finally Works Now
Async functions in traits shipped. Here’s what that means for your service interfaces.
But I clicked through every rust release since 1.75.0 where impl AsyncTrait was shipped and couldn’t find a mention of async. Now I’m just confused (and still using async_trait). Hence the question above…


dyncompatibility of the trait itself is another matter. In this case, an async method makes a trait not dyn-compatible because of the implicit-> impl Futureopaque return type, as documented here.But OP didn’t mention whether
dynis actually needed or not. For me,dynis almost always a crutch (exceptions exist).