gte/pkg/mstore/mstore.go

45 lines
857 B
Go
Raw Normal View History

2021-01-26 07:16:53 +01:00
package mstore
2021-01-30 11:20:12 +01:00
import (
"errors"
)
2021-01-28 14:43:00 +01:00
var (
ErrFolderDoesNotExist = errors.New("folder does not exist")
ErrNoFolderSelected = errors.New("no folder selected")
ErrInvalidUid = errors.New("invalid uid")
ErrMessageDoesNotExist = errors.New("message does not exist")
ErrInvalidMessage = errors.New("message is invalid")
)
2021-01-26 07:16:53 +01:00
type Message struct {
2021-01-28 14:43:00 +01:00
Uid uint32
2021-01-29 12:29:23 +01:00
Folder string
2021-01-26 07:16:53 +01:00
Subject string
2021-01-27 10:07:31 +01:00
Body string
2021-01-26 07:16:53 +01:00
}
2021-01-28 14:43:00 +01:00
func (m *Message) Valid() bool {
2021-01-29 12:29:23 +01:00
return m.Uid != 0 && m.Subject != "" && m.Folder != ""
2021-01-28 14:43:00 +01:00
}
2021-08-21 11:03:30 +02:00
func (m *Message) Equal(n *Message) bool {
if m.Folder != n.Folder {
return false
}
if m.Subject != n.Subject {
return false
}
if m.Body != n.Body {
return false
}
return true
}
2021-01-26 07:16:53 +01:00
type MStorer interface {
2021-01-29 12:29:23 +01:00
Messages(folder string) ([]*Message, error)
Add(folder, subject, body string) error
Remove(msg *Message) error
2021-01-26 07:16:53 +01:00
}