From 8c0b8ad931045c70845f662238230edb81f8cd94 Mon Sep 17 00:00:00 2001 From: Alexander Neonxp Kiryukhin Date: Wed, 31 Dec 2025 14:15:42 +0300 Subject: =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20=D0=BA=D0=BE?= =?UTF-8?q?=D1=80=D1=80=D0=B5=D0=BA=D1=82=D0=BD=D1=83=D1=8E=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D1=83=20=D1=81=20=D1=82=D0=B5=D1=80=D0=BC?= =?UTF-8?q?=D0=B8=D0=BD=D0=B0=D0=BB=D0=BE=D0=BC=20=D0=B8=20=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D1=80=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/chat/logs.go | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 internal/chat/logs.go (limited to 'internal/chat/logs.go') diff --git a/internal/chat/logs.go b/internal/chat/logs.go new file mode 100644 index 0000000..09d60fe --- /dev/null +++ b/internal/chat/logs.go @@ -0,0 +1,44 @@ +package chat + +import "time" + +type Logs struct { + entries [20]LogEntry + start int +} + +func (l *Logs) Append(le LogEntry) { + l.entries[l.start] = le + l.start++ + if l.start == len(l.entries) { + l.start = 0 + } +} + +func (l *Logs) Get() []LogEntry { + result := make([]LogEntry, 0, len(l.entries)) + for i := l.start; i < len(l.entries); i++ { + result = append(result, l.entries[i]) + } + for i := 0; i < l.start; i++ { + result = append(result, l.entries[i]) + } + + return result +} + +type LogEntry struct { + Username string + Time time.Time + Message string + Type LogEntryType +} + +type LogEntryType int + +const ( + TypeNone LogEntryType = iota + TypeJoined + TypeLeft + TypeMessage +) -- cgit v1.2.3