def next.loop
bend-kit-llm@0.13.0.1 · llm.bend:596
import bend-kit-llm@0.13.0.1/llm.bend as Llm
import Base
import bend-kit-llm@0.13.0.1/sse.bend as Sse
596
597def next.loop(f: Nat, x: Stream & Ev) -> IO(Stream & Result<&1, &1, Err, Maybe<&2, String>>):
598 match f:
599 case 0n:
600 (s, e) = x
601 IO.pure(Stream & Result<&1, &1, Err, Maybe<&2, String>>, (s, Fail{ErrReply{"too many events without text"}}))
602 case 1n+g:
603 (s, e) = x
604 match e:
605 case EText{t}:
606 IO.pure(Stream & Result<&1, &1, Err, Maybe<&2, String>>, (s, Done{Some{t}}))
607 case EEnd{}:
608 IO.pure(Stream & Result<&1, &1, Err, Maybe<&2, String>>, (s, Done{None{}}))
609 case EFail{err}:
610 IO.pure(Stream & Result<&1, &1, Err, Maybe<&2, String>>, (s, Fail{err}))
611 case ESkip{}:
612 do IO<Stream & Result<&1, &1, Err, Maybe<&2, String>>>:
613 y : Stream & Result<&1, &1, Err, Maybe<&1, Sse.Message>> <- event(s)
614 next.loop(g, next.of(y))