def take.front
mylsm-lsm-store@0.6.0.1 · src/coordinator/RequestQueue.bend:157
import mylsm-lsm-store@0.6.0.1/src/coordinator/RequestQueue.bend as RequestQueue
import Base
157def take.front(
158 front: List<&1, Pending>,
159 back: List<&1, Pending>,
160 count: Nat,
161 bytes: Nat
162) -> TakeResult:
163 match front:
164 case Nil{}: Empty{Queue{Nil{}, back, count, bytes}}
165 case Con{item, tail}:
166 match item:
167 case Pending{connection_id, accepted_sequence, deadline_ms,
168 +encoded_bytes, response_peak, request}:
169 Taken{
170 Queue{tail, back, Nat.sub(count, 1n),
171 Nat.sub(bytes, encoded_bytes)},
172 Pending{connection_id, accepted_sequence, deadline_ms,
173 encoded_bytes, response_peak, request}}