versioning

package
v0.0.0-...-a04e4eb Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2023 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnsupportedCanonicalVersion   = errors.New("unsupported canonical version")
	ErrUnsupportedVersionRequirement = errors.New("unsupported version requirement")
	ErrVersionNotFound               = errors.New("version not found")
	ErrInvalidNumberOfVersionsBack   = errors.New("invalid number of versions back")
)

Functions

This section is empty.

Types

type AbsoluteVersionRequirement

type AbsoluteVersionRequirement struct {
	Type VersionRequirementType
	// CanonicalValue is valid when Type == VersionRequirementTypeCanonical.
	CanonicalValue CanonicalVersion
	// StageOrLabelValue is valid when Type == VersionRequirementTypeStageOrLabel.
	StageOrLabelValue string
}

func (AbsoluteVersionRequirement) GetCanonicalValue

func (r AbsoluteVersionRequirement) GetCanonicalValue() CanonicalVersion

func (AbsoluteVersionRequirement) GetNumberOfShift

func (r AbsoluteVersionRequirement) GetNumberOfShift() int64

func (AbsoluteVersionRequirement) GetStageOrLabelValue

func (r AbsoluteVersionRequirement) GetStageOrLabelValue() string

func (AbsoluteVersionRequirement) GetType

func (AbsoluteVersionRequirement) WithoutShift

type CanonicalVersion

type CanonicalVersion struct {
	Type CanonicalVersionType
	// NumberValue is valid when Type == CanonicalVersionTypeNumber.
	NumberValue int64
	// UUIDValue is valid when Type == CanonicalVersionTypeUUID.
	UUIDValue uuid.UUID
}

func (CanonicalVersion) AsRequirement

func (v CanonicalVersion) AsRequirement() AbsoluteVersionRequirement

func (CanonicalVersion) String

func (v CanonicalVersion) String() string

type CanonicalVersionType

type CanonicalVersionType int
const (
	CanonicalVersionTypeUnknown CanonicalVersionType = iota
	// CanonicalVersionTypeNumber is used for Parameter Store records.
	CanonicalVersionTypeNumber
	// CanonicalVersionTypeUUID is used for Secrets Manager records.
	CanonicalVersionTypeUUID
)

func (CanonicalVersionType) String

func (i CanonicalVersionType) String() string

type RelativeVersionRequirement

type RelativeVersionRequirement struct {
	AbsoluteVersionRequirement
	// NumberOfShift represents the number of versions back, as it were, git-style HEAD~<shift> format.
	NumberOfShift int64
}

func (RelativeVersionRequirement) GetNumberOfShift

func (r RelativeVersionRequirement) GetNumberOfShift() int64

type Version

type Version struct {
	CanonicalVersion
	StagesOrLabels []string
}

func (Version) String

func (v Version) String() string

type VersionParser

type VersionParser interface {
	Parse(version string) (VersionRequirement, error)
}

VersionParser parses version representation in string.

type VersionParserFunc

type VersionParserFunc func(version string) (VersionRequirement, error)

func (VersionParserFunc) Parse

func (fn VersionParserFunc) Parse(version string) (VersionRequirement, error)

type VersionRequirement

type VersionRequirement interface {
	GetType() VersionRequirementType
	// GetCanonicalValue is valid when GetType() returns VersionRequirementTypeCanonical.
	GetCanonicalValue() CanonicalVersion
	// GetStageOrLabelValue is valid when GetType() returns VersionRequirementTypeStageOrLabel.
	GetStageOrLabelValue() string
	// GetNumberOfShift represents the number of versions back, as it were, git-style HEAD~<shift> format.
	GetNumberOfShift() int64
	// WithoutShift drops information about version shifting.
	WithoutShift() AbsoluteVersionRequirement
}

VersionRequirement represents the target version to be retrieved.

type VersionRequirementType

type VersionRequirementType int
const (
	VersionRequirementTypeUnknown VersionRequirementType = iota
	VersionRequirementTypeCanonical
	VersionRequirementTypeStageOrLabel
)

func (VersionRequirementType) String

func (i VersionRequirementType) String() string

Jump to

Keyboard shortcuts

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