aboutsummaryrefslogtreecommitdiffstats
path: root/deque.go
diff options
context:
space:
mode:
Diffstat (limited to 'deque.go')
-rw-r--r--deque.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/deque.go b/deque.go
index e267eba..4eec0e6 100644
--- a/deque.go
+++ b/deque.go
@@ -11,6 +11,7 @@ import (
"fmt"
"iter"
"slices"
+ "strings"
)
// Deque is a double-ended queue. The zero value is ready for use.
@@ -190,3 +191,17 @@ func (q *Deque[T]) PopAll() iter.Seq[T] {
}
}
}
+
+// String displays the deque as a string, using fmt.Sprint to show each element.
+func (q *Deque[T]) String() string {
+ buf := new(strings.Builder)
+ buf.WriteString("[")
+ for i := range len(q.buf) {
+ if i > 0 {
+ buf.WriteString(" ")
+ }
+ fmt.Fprint(buf, q.buf[:cap(q.buf)][q.toPhysicalIdx(i)])
+ }
+ buf.WriteString("]")
+ return buf.String()
+}