hi, i'm trying to implement some functionality where there's a channel that accepts requests that are contained in a holder with a response and a oneshot to use to pass information back to the caller. i'm using tokio for the oneshot and channel, but that's probably not relevant to the problem. all the requests/responses implement the same trait. i'd like the oneshot to be aware of the request/response type so that the caller can handle different implementors of the trait appropriately. i think i can use a giant enum for this, but there are lots of implementors so that'd be annoying and as well as less convenient ofr any new message types. i have a playground link the probably explains it better than a thousand words: https://play.rust-lang.org/?version=stable&mode=release&edition=2018&gist=47e4d7f6199f68cde0717a805fb60eba
could i implement
somehow to make this work? is this design just wrong? should i just use the enum?