def Iso8601.dur.valid
import bend-time-lib@0.4.0.1/iso8601.bend as Iso8601import Base
import bend-time-lib@0.4.0.1/duration.bend as Dur
286def Iso8601.dur.valid(+st: Iso8601.DurS) -> Result<&2, &2, Iso8601.Error, Dur.Duration>:
287 match st:
288 case DurS{_, _, _, _, _, +saw_d, +saw_t, +saw_h, +saw_m, +saw_s}:
289 Iso8601.dur.valid3(
290 st,
291 Iso8601.or4(saw_d, saw_h, saw_m, saw_s),
292 Bool.or(Bool.not(saw_t), Iso8601.or3(saw_h, saw_m, saw_s))
293 )