Module semver stdlib

semver
Version:
0.3.3
License:
MIT
Dependencies from vmod:
0
Imports:
0
Imported by:
1
Repository:
OS-specific
Show selected OS-specific symbols.
Backend-specific
Show selected Backend-specific symbols.

Dependencies defined in v.mod

This section is empty.

Imports

This section is empty.

Imported by

Overview

semver is a library for processing versions, that use the semver format.

Examples:

import semver

fn main() {
    ver1 := semver.from('1.2.4') or {
        println('Invalid version')
        return
    }
    ver2 := semver.from('2.3.4') or {
        println('Invalid version')
        return
    }
    println(ver1.gt(ver2))
    println(ver2.gt(ver1))
    println(ver1.satisfies('>=1.1.0 <2.0.0'))
    println(ver2.satisfies('>=1.1.0 <2.0.0'))
    println(ver2.satisfies('>=1.1.0 <2.0.0 || >2.2.0'))
}
false
true
true
false
true

For more details see semver.v file.

Aliases

This section is empty.

Constants

This section is empty.

Sum types

This section is empty.

Functions

#fn build

fn build(major int, minor int, patch int) Version

build returns a Version structure with given major, minor and patch versions.

#fn coerce

fn coerce(input string) !Version

#fn from

fn from(input string) !Version

  • Constructor.

from returns a Version structure parsed from input string.

#fn is_valid

fn is_valid(input string) bool

is_valid returns true if the input string can be converted to a (semantic) Version struct.

Structs

#struct Version

pub struct Version {
pub:
	major      int
	minor      int
	patch      int
	prerelease string
	metadata   string
}

  • Structures.

Version represents a semantic version in semver format.

#fn (Version) increment

fn (ver Version) increment(typ Increment) Version

  • Transformation.

increment returns a Version structure with incremented values.

#fn (Version) satisfies

fn (ver Version) satisfies(input string) bool

  • Comparison.

satisfies returns true if the input expression can be validated to true when run against this Version.

Example:

assert semver.build(1,0,0).satisfies('<=2.0.0') == true

Example:

assert semver.build(1,0,0).satisfies('>=2.0.0') == false

#fn (Version) eq

fn (v1 Version) eq(v2 Version) bool

eq returns true if v1 is equal to v2.

#fn (Version) gt

fn (v1 Version) gt(v2 Version) bool

gt returns true if v1 is greater than v2.

#fn (Version) lt

fn (v1 Version) lt(v2 Version) bool

lt returns true if v1 is less than v2.

#fn (Version) ge

fn (v1 Version) ge(v2 Version) bool

ge returns true if v1 is greater than or equal to v2.

#fn (Version) le

fn (v1 Version) le(v2 Version) bool

le returns true if v1 is less than or equal to v2.

#fn (Version) str

fn (ver Version) str() string

str returns the string representation of the Version.

Interfaces

This section is empty.

Enums

#enum Increment

pub enum Increment {
	major
	minor
	patch
}

Increment represents the different types of version increments.