def transfer.read

bend-kit-stream@0.3.1.0 · stream.bend:106

import bend-kit-stream@0.3.1.0/stream.bend as Stream
import Base

106def transfer.read(~S: Type, ~D: Type,
107  ~write: D -> U32 -> Array<U32> -> Bool -> IO(D & Result<&1, &1, U32 & String, Unit>),
108  pair: S & Result<&1, &1, U32 & String, U32 & Array<U32>>,
109  destination: D, count: U32, remaining: U32, tls: Bool) -> IO(Transfer<S, D>):
110  (source, result) = pair
111  match result:
112    case Fail{(code, message)}:
113      IO.pure(Transfer<S, D>, Stop{source, destination, Failed{count, Read{code, message}}})
114    case Done{(+len, words)}:
115      transfer.action(~S, ~D, ~write, read.action(len, remaining),
116        source, destination, count, len, words, tls)

Uses (15)

Used by (1)