type parsed … // IsValid reports whether v is a valid semantic version string. func IsValid(v string) bool { … } // Canonical returns the canonical formatting of the semantic version v. // It fills in any missing .MINOR or .PATCH and discards build metadata. // Two semantic versions compare equal only if their canonical formattings // are identical strings. // The canonical invalid semantic version is the empty string. func Canonical(v string) string { … } // Major returns the major version prefix of the semantic version v. // For example, Major("v2.1.0") == "v2". // If v is an invalid semantic version string, Major returns the empty string. func Major(v string) string { … } // MajorMinor returns the major.minor version prefix of the semantic version v. // For example, MajorMinor("v2.1.0") == "v2.1". // If v is an invalid semantic version string, MajorMinor returns the empty string. func MajorMinor(v string) string { … } // Prerelease returns the prerelease suffix of the semantic version v. // For example, Prerelease("v2.1.0-pre+meta") == "-pre". // If v is an invalid semantic version string, Prerelease returns the empty string. func Prerelease(v string) string { … } // Build returns the build suffix of the semantic version v. // For example, Build("v2.1.0+meta") == "+meta". // If v is an invalid semantic version string, Build returns the empty string. func Build(v string) string { … } // Compare returns an integer comparing two versions according to // semantic version precedence. // The result will be 0 if v == w, -1 if v < w, or +1 if v > w. // // An invalid semantic version string is considered less than a valid one. // All invalid semantic version strings compare equal to each other. func Compare(v, w string) int { … } // Max canonicalizes its arguments and then returns the version string // that compares greater. // // Deprecated: use [Compare] instead. In most cases, returning a canonicalized // version is not expected or desired. func Max(v, w string) string { … } type ByVersion … func (vs ByVersion) Len() int { … } func (vs ByVersion) Swap(i, j int) { … } func (vs ByVersion) Less(i, j int) bool { … } // Sort sorts a list of semantic version strings using [ByVersion]. func Sort(list []string) { … } func parse(v string) (p parsed, ok bool) { … } func parseInt(v string) (t, rest string, ok bool) { … } func parsePrerelease(v string) (t, rest string, ok bool) { … } func parseBuild(v string) (t, rest string, ok bool) { … } func isIdentChar(c byte) bool { … } func isBadNum(v string) bool { … } func isNum(v string) bool { … } func compareInt(x, y string) int { … } func comparePrerelease(x, y string) int { … } func nextIdent(x string) (dx, rest string) { … }