def stream.take

bend-kit-http@0.38.4.0 · http.bend:5017

import bend-kit-http@0.38.4.0/http.bend as Http
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes

5017# Copy the request only for a reused socket, for a stale-socket retry.
5018def stream.take(taken: Pool & Maybe<&1, Conn>, +ms: U32, +head: Bool, +idem: Bool, +key: String, route: Route,
5019    wire: Bytes.Bytes) -> IO(Pool & Result<&1, &1, Err, Stream>):
5020  (p, m) = taken
5021  match m:
5022    case None{}:
5023      do IO<Pool & Result<&1, &1, Err, Stream>>:
5024        got : Result<&1, &1, Err, Stream> <- stream.fresh(ms, head, Some{key}, route, wire)
5025        return (p, got)
5026    case Some{c}:
5027      stream.idle(p, ms, head, idem, key, route, Bytes.slice(wire, 0, 4294967295), c)

Uses (19)

Used by (1)