send goes in as &'static [u8] and comes back out of Completion/StartError as &'static [u8]. A caller that owns its request buffer has to hand over its &'static mut [u8] to get that shared borrow, and it never gets the mutable one back, so it can serialize a request exactly once and then has nowhere to write the next one.
Carrying &'static mut [u8] through start and Buffers fixes it. Happy to do it here or in a follow-up, your call.
send goes in as &'static [u8] and comes back out of Completion/StartError as &'static [u8]. A caller that owns its request buffer has to hand over its &'static mut [u8] to get that shared borrow, and it never gets the mutable one back, so it can serialize a request exactly once and then has nowhere to write the next one.
Carrying &'static mut [u8] through start and Buffers fixes it. Happy to do it here or in a follow-up, your call.