ring.go 300 B

1234567891011121314151617181920
  1. package discovery
  2. type Ring struct {
  3. Data []string
  4. Length int
  5. }
  6. func (r *Ring) Add(s string) {
  7. if len(r.Data) > 0 {
  8. // Avoid duplicates of the last item
  9. if r.Data[len(r.Data)-1] == s {
  10. return
  11. }
  12. }
  13. if len(r.Data)+1 > r.Length {
  14. r.Data = r.Data[1:]
  15. }
  16. r.Data = append(r.Data, s)
  17. }