From 1dddfbbff7f9dcd82c9969fce43b9da09cf40b0d Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Fri, 11 Apr 2025 22:45:11 -0700 Subject: Add a .String() method --- deque.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'deque.go') 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() +} -- cgit v1.3.1