Ought `StreamTarget::close` return an opaque wrapper?
MR !1476 (merged) adds this API to StreamTarget
pub(crate) fn close(&self, msg: relaymsg::End) -> Result<oneshot::Receiver<Result<()>>> {
Do you think it would make sense for this to return an Result<impl Future> or some opaque type, instead of a Result<oneshot::Receiver>? As it stands, it feels like the use of a oneshot::Reciever here will tie our API to a particular implementation detail.
cc @gabi-250