aboutsummaryrefslogtreecommitdiff
path: root/internal/imap/mailboxes.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/imap/mailboxes.go')
-rw-r--r--internal/imap/mailboxes.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/internal/imap/mailboxes.go b/internal/imap/mailboxes.go
new file mode 100644
index 0000000..d0fdede
--- /dev/null
+++ b/internal/imap/mailboxes.go
@@ -0,0 +1,34 @@
+package imap
+
+import (
+ "sync"
+
+ "github.com/emersion/go-imap"
+)
+
+type mailboxes struct {
+ mb map[string]*imap.MailboxInfo
+ mu sync.RWMutex
+}
+
+func (mbs *mailboxes) contains(elem Folder) bool {
+ mbs.mu.RLock()
+ defer mbs.mu.RUnlock()
+
+ _, ok := mbs.mb[elem.str]
+ return ok
+}
+
+func (mbs *mailboxes) add(elem *imap.MailboxInfo) {
+ mbs.mu.Lock()
+ defer mbs.mu.Unlock()
+
+ mbs.mb[elem.Name] = elem
+}
+
+func NewMailboxes() *mailboxes {
+ return &mailboxes{
+ mb: map[string]*imap.MailboxInfo{},
+ mu: sync.RWMutex{},
+ }
+} \ No newline at end of file