Simplified Result

This commit is contained in:
2024-09-24 12:56:10 -06:00
parent 9cab6d266d
commit f8bc7582a5
7 changed files with 142 additions and 207 deletions

View File

@ -8,8 +8,6 @@ func Seq{{.}}[In, Out{{range .Count}}, T{{.}}{{end}} any](
) Parser[In, Out] {
return func(s State[In]) (Result[In, Out], error) {
var anyConsumed bool
var failed bool
var msg Message
var next = s
{{range .Count}}
r{{.}}, err := p{{.}}(next)
@ -17,11 +15,10 @@ func Seq{{.}}[In, Out{{range .Count}}, T{{.}}{{end}} any](
return Result[In, Out]{}, err
}
anyConsumed = anyConsumed || r{{.}}.Consumed()
failed, _, msg = r{{.}}.Failed()
if failed {
return Fail[In, Out](anyConsumed, msg), nil
if r{{.}}.Failed() {
return Fail[In, Out](anyConsumed, r{{.}}.Message()), nil
}
_, _, val{{.}}, next, _ := r{{.}}.Succeeded()
_, val{{.}}, next := r{{.}}.Succeeded()
{{end}}
final := f({{range .Count}}{{if ne . 1}}, {{end}}val{{.}}{{end}})
return Succeed(anyConsumed, final, next, MessageOK(s.Pos())), nil