Pushing elements of type
This trait moves data around using references rather than ownership,
which provides the opportunity for zero-copy operation. In the call
push(element) the implementor can swap some other value to
element, effectively returning the value to the caller.
Conventionally, a sequence of calls to
push() should conclude with
a call of
push(&mut None) or
done() to signal to implementors that
another call to
push() may not be coming.
element with the opportunity to take ownership.
element and drops any resulting resources.
None, conventionally signalling a flush.