mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
37 lines
961 B
Go
37 lines
961 B
Go
package store
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// NodeExtern is the external representation of the
|
|
// internal node with additional fields
|
|
// PrevValue is the previous value of the node
|
|
// TTL is time to live in second
|
|
type NodeExtern struct {
|
|
Key string `json:"key, omitempty"`
|
|
PrevValue string `json:"-"`
|
|
Value string `json:"value,omitempty"`
|
|
Dir bool `json:"dir,omitempty"`
|
|
Expiration *time.Time `json:"expiration,omitempty"`
|
|
TTL int64 `json:"ttl,omitempty"`
|
|
Nodes NodeExterns `json:"nodes,omitempty"`
|
|
ModifiedIndex uint64 `json:"modifiedIndex,omitempty"`
|
|
CreatedIndex uint64 `json:"createdIndex,omitempty"`
|
|
}
|
|
|
|
type NodeExterns []NodeExtern
|
|
|
|
// interfaces for sorting
|
|
func (ns NodeExterns) Len() int {
|
|
return len(ns)
|
|
}
|
|
|
|
func (ns NodeExterns) Less(i, j int) bool {
|
|
return ns[i].Key < ns[j].Key
|
|
}
|
|
|
|
func (ns NodeExterns) Swap(i, j int) {
|
|
ns[i], ns[j] = ns[j], ns[i]
|
|
}
|