Function std::drain_into
Dequeues until q is empty (a Chan: until it is closed and drained) and pushes each element onto out, in order. Returns how many moved. Meant for a growable out (Vec): an element out refuses is dropped and draining stops there.