///|
/// Outcome of one step of the streaming DEFLATE state machine.
///
/// The engine is runtime-agnostic: it moves bytes between an input view and an
/// output buffer and *suspends* by returning one of these, so any driver — a
/// synchronous loop or an async adapter — can resume it.
pub(all) enum Status {
/// End of the DEFLATE stream was reached; the operation is complete.
Done
/// Input was exhausted mid-stream; supply more bytes and call again.
NeedMoreInput
/// The output buffer filled up; drain it and call again.
NeedMoreOutput
} derive(Eq, Debug)
///|
/// Requested action for one streaming compression step.
///
/// The action applies after the complete input view has been consumed. If a
/// step reports partial consumption, re-present the remaining suffix with the
/// same action.
pub(all) enum DeflateAction {
/// Accept input without emitting a control block.
Continue
/// Make all input accepted so far available to the decoder while keeping the
/// DEFLATE stream open.
SyncFlush
/// Finish the DEFLATE stream after all input in this view has been accepted.
Finish
} derive(Eq, Debug)