This is how rustfmt formats a long list of type parameter bounds featuring a long list of bracketed generic arguments:
type ProposeTransactionsFuture: Future<
Item = ProposeTransactionsResponse<Self::MessageId>,
Error = Error,
> + Send
+ 'static;
The first bound after the closing bracket is formatted inline and is visually obscured.
It would be better to break and align the top-level + separators:
type ProposeTransactionsFuture: Future<
Item = ProposeTransactionsResponse<Self::MessageId>,
Error = Error,
>
+ Send
+ 'static;
Edit: Or better yet, on suggestion by @topecongiro below:
type ProposeTransactionsFuture:
Future<
Item = ProposeTransactionsResponse<Self::MessageId>,
Error = Error,
>
+ Send
+ 'static;