Plan.semver: def of ezx@1.11.0.0 Import: import ezx@1.11.0.0/src/pub/plan.bend as Plan Lines 175-181 of ezx@1.11.0.0/src/pub/plan.bend: https://jend.leeeet.dev/read.txt?path=ezx@1.11.0.0/src/pub/plan.bend&start_line=175&end_line=181 import Base import ezx@1.11.0.0/src/pkg/pkg.bend as K # whether a version is MAJOR.MINOR.PATCH: digits and dots only, and three # numbers, none with a leading zero (`K.ver.num`, the rule bend's NAMED # holds each of its four numbers to) def semver(+text: String) -> Bool: +ps = String.split(text, '.') Bool.and(semver.chars(text), Bool.and(Nat.is_eq(List.length(&2, String, ps), 3n), K.ver.nums(ps))) Uses (9): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.and https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Char https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List.length https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.is_eq https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String.split https://jend.leeeet.dev/definition.txt?path=ezx@1.11.0.0/src/pkg/pkg.bend&name=ver.nums https://jend.leeeet.dev/definition.txt?path=ezx@1.11.0.0/src/pub/plan.bend&name=semver.chars