lib.bend checks
raw source on the hub · import 0x697f24d2ad7ac8b3f8c00016670be6af/lib.bend as Lib
Semver v1 — Base-only semantic versions.
The accepted textual subset is exactly decimal-major "." decimal-minor "." decimal-patch, with no whitespace, prefix, prerelease, or build metadata. Decimal components use Base U32.read, so values must fit U32. Leading zeroes are accepted in v1; show/to_string always emit canonical decimal digits. Prerelease/build ordering is intentionally deferred.
1 import
import Base
Types
type Semver source · line 10 · raw
Data
Semver@major:U32 -> @minor:U32 -> @patch:U32 -> Semver
Definitions
def Semver.make source · line 14 · raw
@major:U32 -> @minor:U32 -> @patch:U32 -> Semver
Construct a semantic version from its three numeric components.
def Semver.parse.patch source · line 18 · raw
@major:U32 -> @minor:U32 -> @+patch_text:String -> @m:Maybe<&2, U32> -> Maybe<&2, Semver>
Parse one complete v1 version. The whole input must be consumed.
def Semver.parse.minor source · line 30 · raw
@major:U32 -> @+minor_text:String -> @+patch_text:String -> @m:Maybe<&2, U32> -> Maybe<&2, Semver>
def Semver.parse.major source · line 42 · raw
@major_text:String -> @+minor_text:String -> @patch_text:String -> @m:Maybe<&2, U32> -> Maybe<&2, Semver>
def Semver.parse.parts source · line 54 · raw
@ps:List<&2, String> -> Maybe<&2, Semver>
def Semver.parse source · line 76 · raw
@s:String -> Maybe<&2, Semver>
def Semver.to_string source · line 80 · raw
@v:Semver -> String
Canonical decimal rendering of a version.
def Semver.show source · line 89 · raw
@v:Semver -> String
show is the conventional alias for to_string.
def Semver.cmp.patch source · line 93 · raw
@minor_cmp:Cmp -> @patch_cmp:Cmp -> Cmp
Semantic-version precedence: major, then minor, then patch.
def Semver.cmp.minor source · line 102 · raw
@major_cmp:Cmp -> @minor_cmp:Cmp -> @patch_cmp:Cmp -> Cmp
def Semver.cmp.major source · line 115 · raw
@major_cmp:Cmp -> @minor_cmp:Cmp -> @patch_cmp:Cmp -> Cmp
def Semver.cmp source · line 128 · raw
@a:Semver -> @b:Semver -> Cmp
def Semver.order source · line 136 · raw
@a:Semver -> @b:Semver -> Cmp
Ordering aliases for callers that prefer order/precedence terminology.
def Semver.precedes source · line 139 · raw
@a:Semver -> @b:Semver -> Bool