-
Notifications
You must be signed in to change notification settings - Fork 0
/
semver.wai
54 lines (48 loc) · 1.25 KB
/
semver.wai
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
resource build-metadata {
as-str: func() -> string
is-empty: func() -> bool
}
build-metadata-empty: func() -> build-metadata
build-metadata-new: func(text: string) -> expected<build-metadata, error>
record comparator {
op: op,
major: u64,
minor: option<u64>,
patch: option<u64>,
pre: prerelease,
}
comparator-parse: func(text: string) -> expected<comparator, error>
comparator-matches: func(self: comparator, version: version) -> bool
resource error {}
resource prerelease {
as-str: func() -> string
is-empty: func() -> bool
}
prerelease-empty: func() -> prerelease
prerelease-new: func(text: string) -> expected<prerelease, error>
record version {
major: u64,
minor: u64,
patch: u64,
pre: prerelease,
build: build-metadata,
}
version-new: func(major: u64, minor: u64, patch: u64) -> version
version-parse: func(text: string) -> expected<version, error>
version-cmp-precedence: func(a: version, b: version) -> s8
record version-req {
comparators: list<comparator>,
}
version-req-star: func() -> version-req
version-req-parse: func(text: string) -> expected<version-req, error>
version-req-matches: func(self: version-req, version: version) -> bool
enum op {
exact,
greater,
greater-eq,
less,
less-eq,
tilde,
caret,
wildcard,
}