package ether

import "github.com/pingcap/wormhole/pkg/whpb"

// Resource is worker and job's abstract
type Resource interface {
	GetLabels() map[string]*whpb.Label
	GetId() uint64
	GetAnnotations() map[string]string
	GetStatusScore() int
	GetContracts() []uint64
}

// Resources is a resource set
type Resources []Resource

func (r Resources) Len() int           { return len(r) }
func (r Resources) Swap(i, j int)      { r[i], r[j] = r[j], r[i] }
func (r Resources) Less(i, j int) bool { return r[i].GetStatusScore() > r[j].GetStatusScore() }
