summaryrefslogtreecommitdiff
path: root/internal/datas/rbuffer.go
diff options
context:
space:
mode:
authorPaul Buetow <pbuetow@mimecast.com>2022-02-04 21:37:29 +0000
committerPaul Buetow <pbuetow@mimecast.com>2022-02-04 21:37:29 +0000
commit1db3b5dc1219e34e0e1c612e6646327701c40274 (patch)
treecab22128af9e54131facd0062a474459383a1c90 /internal/datas/rbuffer.go
parent6625d019271d3d7931587167845d77834d187d57 (diff)
parentcc6f19f69d0fb34af96e17147b2030c352d46845 (diff)
merge 4.0.0-RC
Diffstat (limited to 'internal/datas/rbuffer.go')
-rw-r--r--internal/datas/rbuffer.go49
1 files changed, 0 insertions, 49 deletions
diff --git a/internal/datas/rbuffer.go b/internal/datas/rbuffer.go
deleted file mode 100644
index df8f622..0000000
--- a/internal/datas/rbuffer.go
+++ /dev/null
@@ -1,49 +0,0 @@
-package datas
-
-import "fmt"
-
-// RBuffer is a simple circular string ring buffer data structure.
-type RBuffer struct {
- Capacity int
- size int
- readPos int
- writePos int
- data []string
-}
-
-// NewRBuffer creates a new string ring buffer.
-func NewRBuffer(capacity int) (*RBuffer, error) {
- if capacity < 1 {
- return nil, fmt.Errorf("RBuffer capacity must not be less than 1")
- }
-
- r := RBuffer{
- Capacity: capacity,
- size: capacity + 1,
- data: make([]string, capacity+1),
- }
-
- return &r, nil
-}
-
-// Add a value.
-func (r *RBuffer) Add(value string) {
- r.data[r.writePos] = value
- r.writePos = (r.writePos + 1) % r.size
-
- if r.writePos == r.readPos {
- r.readPos = (r.readPos + 1) % r.size
- }
-}
-
-// Get a value.
-func (r *RBuffer) Get() (string, bool) {
- if r.readPos == r.writePos {
- // RBuffer is empty.
- return "", false
- }
-
- value := r.data[r.readPos]
- r.readPos = (r.readPos + 1) % r.size
- return value, true
-}