43 lines
711 B
Go
43 lines
711 B
Go
package store
|
|
|
|
type MessageOrigin int
|
|
|
|
var messageStore *MessageStore
|
|
|
|
const (
|
|
MessageOriginOwncast MessageOrigin = iota
|
|
MessageOriginTwitch
|
|
MessageOriginTest
|
|
)
|
|
|
|
type MessageStore struct {
|
|
messages []MessageInterface
|
|
}
|
|
|
|
func (s *MessageStore) Add(msg MessageInterface) {
|
|
s.messages = append(s.messages, msg)
|
|
}
|
|
|
|
func (s *MessageStore) All() []MessageInterface {
|
|
return s.messages
|
|
}
|
|
|
|
func (s *MessageStore) Clear() {
|
|
s.messages = []MessageInterface{}
|
|
}
|
|
|
|
func GetMessageStore() *MessageStore {
|
|
if messageStore == nil {
|
|
messageStore = new(MessageStore)
|
|
}
|
|
|
|
return messageStore
|
|
}
|
|
|
|
type MessageInterface interface {
|
|
ID() string
|
|
Visible() bool
|
|
Origin() MessageOrigin
|
|
Author() string
|
|
Content() string
|
|
}
|