diff options
Diffstat (limited to '')
-rw-r--r-- | internal/imap/mailboxes.go | 34 |
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 |