From 77e4b066cb8d506b4bc944ab4eb2d6e4679e2202 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Sat, 15 Jun 2024 13:58:30 +0300 Subject: enable multithreading with goroutines (#20) --- pkg/writer/writer.go | 50 +++++++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 21 deletions(-) (limited to 'pkg/writer/writer.go') diff --git a/pkg/writer/writer.go b/pkg/writer/writer.go index f3af2fc..abfbf3d 100644 --- a/pkg/writer/writer.go +++ b/pkg/writer/writer.go @@ -5,43 +5,51 @@ import ( "strings" ) -var output strings.Builder +type Writer struct { + output strings.Builder + temp strings.Builder +} -var temp strings.Builder +func NewWriter() *Writer { + return &Writer{ + output: strings.Builder{}, + temp: strings.Builder{}, + } +} -func Append(str string, a ...any) { - _, err := output.WriteString(fmt.Sprintf(str, a...)) +func (w *Writer) Append(str string, a ...any) { + _, err := w.output.WriteString(fmt.Sprintf(str, a...)) if err != nil { - output.WriteString(err.Error()) + w.output.WriteString(err.Error()) } } -func AppendLine(str string, a ...any) { - Append(str, a...) - output.WriteString("\n") +func (w *Writer) AppendLine(str string, a ...any) { + w.Append(str, a...) + w.output.WriteString("\n") } -func GetWriter() strings.Builder { - return output +func (w *Writer) GetOutputString() string { + return w.output.String() } -func TempAppend(str string, a ...any) { - _, err := temp.WriteString(fmt.Sprintf(str, a...)) +func (w *Writer) TempAppend(str string, a ...any) { + _, err := w.temp.WriteString(fmt.Sprintf(str, a...)) if err != nil { - temp.WriteString(err.Error()) + w.temp.WriteString(err.Error()) } } -func TempAppendLine(str string, a ...any) { - TempAppend(str, a...) - temp.WriteString("\n") +func (w *Writer) TempAppendLine(str string, a ...any) { + w.TempAppend(str, a...) + w.temp.WriteString("\n") } -func TempGetString() string { - return temp.String() +func (w *Writer) TempGetString() string { + return w.temp.String() } -func AppendOutputFromTemp() { - output.WriteString(temp.String()) - temp.Reset() +func (w *Writer) AppendOutputFromTemp() { + w.output.WriteString(w.temp.String()) + w.temp.Reset() } -- cgit v1.2.3