mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-10-08 20:07:51 +00:00
* Rename dax.Shard to dax.VersionedShard * Rename dax.Partition to dax.VersionedPartition * Rename dax.FieldVersion to dax.VersionedField * Rename go files to a standard
30 lines
960 B
Go
30 lines
960 B
Go
package dax
|
|
|
|
import "fmt"
|
|
|
|
// VersionedField is used in a similar way to VersionedShard and
|
|
// VersionedPartition in that they all contain a snapshot version.
|
|
type VersionedField struct {
|
|
Name FieldName `json:"name"`
|
|
Version int `json:"version"`
|
|
}
|
|
|
|
// String returns the VersionedField (i.e. its Name and Version) as a string.
|
|
func (f VersionedField) String() string {
|
|
return fmt.Sprintf("%s.%d", f.Name, f.Version)
|
|
}
|
|
|
|
// NewVersionedField returns a VersionedField with the provided name and version.
|
|
func NewVersionedField(name FieldName, version int) VersionedField {
|
|
return VersionedField{
|
|
Name: name,
|
|
Version: version,
|
|
}
|
|
}
|
|
|
|
// VersionedFields is a sortable slice of VersionedField.
|
|
type VersionedFields []VersionedField
|
|
|
|
func (f VersionedFields) Len() int { return len(f) }
|
|
func (f VersionedFields) Less(i, j int) bool { return f[i].Name < f[j].Name }
|
|
func (f VersionedFields) Swap(i, j int) { f[i], f[j] = f[j], f[i] }
|