version

package
v1.4.5-rc.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 19, 2021 License: BSD-3-Clause Imports: 6 Imported by: 163

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultVersion1_0_0 = NewDefaultVersion(1, 0, 0)
)

Functions

This section is empty.

Types

type Application added in v1.4.5

type Application interface {
	Version
	App() string
	Compatible(Application) error
	Before(Application) bool
}

Application defines what is needed to describe a versioned Application.

func NewApplication added in v1.4.5

func NewApplication(
	app string,
	appSeparator string,
	versionSeparator string,
	major int,
	minor int,
	patch int,
) Application

NewApplication returns a new version

func NewDefaultApplication added in v1.4.5

func NewDefaultApplication(
	app string,
	major int,
	minor int,
	patch int,
) Application

NewDefaultApplication returns a new version with default separators

type ApplicationParser added in v1.4.5

type ApplicationParser interface {
	Parse(string) (Application, error)
}

ApplicationParser defines the interface of an ApplicationVersion parser

func NewApplicationParser added in v1.4.5

func NewApplicationParser(appSeparator string, versionSeparator string) ApplicationParser

NewApplicationParser returns a new parser

func NewDefaultApplicationParser added in v1.4.5

func NewDefaultApplicationParser() ApplicationParser

NewDefaultApplicationParser returns a new parser with the default separators

type Compatibility added in v1.3.2

type Compatibility interface {
	// Returns the local version
	Version() Application

	// Returns nil if the provided version is able to connect with the local
	// version. This means that the node will keep connections open with the
	// peer.
	Connectable(Application) error

	// Returns nil if the provided version is compatible with the local version.
	// This means that the version is connectable and that consensus messages
	// can be made to them.
	Compatible(Application) error

	// Returns nil if the provided version shouldn't be masked. This means that
	// the version is connectable but not compatible. The version is so old that
	// it should just be masked.
	Unmaskable(Application) error

	// Returns nil if the provided version will not be masked by this version.
	WontMask(Application) error

	// Returns when additional masking will occur.
	MaskTime() time.Time
}

Compatibility a utility for checking the compatibility of peer versions

func NewCompatibility added in v1.3.2

func NewCompatibility(
	version Application,
	minCompatable Application,
	minCompatableTime time.Time,
	prevMinCompatable Application,
	minUnmaskable Application,
	minUnmaskableTime time.Time,
	prevMinUnmaskable Application,
) Compatibility

NewCompatibility returns a compatibility checker with the provided options

type Parser

type Parser interface {
	Parse(string) (Version, error)
}

Parser defines the interface of a Version parser

func NewDefaultParser

func NewDefaultParser() Parser

func NewParser

func NewParser(prefix, separator string) Parser

type Version

type Version interface {
	fmt.Stringer

	Major() int
	Minor() int
	Patch() int
	// Compare returns a positive number if v > o, 0 if v == o, or a negative number if v < 0.
	Compare(o Version) int
}

func NewDefaultVersion

func NewDefaultVersion(major, minor, patch int) Version

func NewVersion

func NewVersion(major, minor, patch int, prefix, versionSeparator string) Version

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL