package storage import ( "errors" ) var ( ErrNotFound = errors.New("not found") ) // type LocalID interface { // FindAll() (map[string]int, error) // FindOrNext(id string) (int, error) // Next() (int, error) // Store(id string, localID int) error // Delete(id string) error // } // type Sync interface { // FindAll() ([]item.Item, error) // Store(i item.Item) error // DeleteAll() error // LastUpdate() (time.Time, error) // } // type Event interface { // Store(event item.Event) error // Find(id string) (item.Event, error) // FindAll() ([]item.Event, error) // Delete(id string) error // } // func NextLocalID(used []int) int { // if len(used) == 0 { // return 1 // } // sort.Ints(used) // usedMax := 1 // for _, u := range used { // if u > usedMax { // usedMax = u // } // } // var limit int // for limit = 1; limit <= len(used) || limit < usedMax; limit *= 10 { // } // newId := used[len(used)-1] + 1 // if newId < limit { // return newId // } // usedMap := map[int]bool{} // for _, u := range used { // usedMap[u] = true // } // for i := 1; i < limit; i++ { // if _, ok := usedMap[i]; !ok { // return i // } // } // return limit // }