diff options
author | Ben Fiedler <git@services.bfiedler.ch> | 2020-04-24 22:31:39 +0200 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2020-05-01 11:10:08 -0400 |
commit | 05fa79eb8efa02e39962c08231ec0e40cafe0020 (patch) | |
tree | 90cc60bbc6ec1829021abbb219ba9e49d7b653a2 /lib/msgstore.go | |
parent | b650bb30a2d3ebd527c66dc7f7b229ca238fe297 (diff) | |
download | aerc-05fa79eb8efa02e39962c08231ec0e40cafe0020.tar.gz |
store.FetchFull: Change callback type to expose entire message
This is a prerequisite for allowing the FetchFull message to return both
the message content and the message headers.
Diffstat (limited to 'lib/msgstore.go')
-rw-r--r-- | lib/msgstore.go | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/msgstore.go b/lib/msgstore.go index 481fcb93..b3a86b38 100644 --- a/lib/msgstore.go +++ b/lib/msgstore.go @@ -20,7 +20,7 @@ type MessageStore struct { uids []uint32 selected int - bodyCallbacks map[uint32][]func(io.Reader) + bodyCallbacks map[uint32][]func(*types.FullMessage) headerCallbacks map[uint32][]func(*types.MessageInfo) //marking @@ -64,7 +64,7 @@ func NewMessageStore(worker *types.Worker, selected: 0, marked: make(map[uint32]struct{}), - bodyCallbacks: make(map[uint32][]func(io.Reader)), + bodyCallbacks: make(map[uint32][]func(*types.FullMessage)), headerCallbacks: make(map[uint32][]func(*types.MessageInfo)), defaultSortCriteria: defaultSortCriteria, @@ -105,7 +105,7 @@ func (store *MessageStore) FetchHeaders(uids []uint32, } } -func (store *MessageStore) FetchFull(uids []uint32, cb func(io.Reader)) { +func (store *MessageStore) FetchFull(uids []uint32, cb func(*types.FullMessage)) { // TODO: this could be optimized by pre-allocating toFetch and trimming it // at the end. In practice we expect to get most messages back in one frame. var toFetch []uint32 @@ -117,7 +117,7 @@ func (store *MessageStore) FetchFull(uids []uint32, cb func(io.Reader)) { if list, ok := store.bodyCallbacks[uid]; ok { store.bodyCallbacks[uid] = append(list, cb) } else { - store.bodyCallbacks[uid] = []func(io.Reader){cb} + store.bodyCallbacks[uid] = []func(*types.FullMessage){cb} } } } @@ -233,7 +233,7 @@ func (store *MessageStore) Update(msg types.WorkerMessage) { delete(store.pendingBodies, msg.Content.Uid) if cbs, ok := store.bodyCallbacks[msg.Content.Uid]; ok { for _, cb := range cbs { - cb(msg.Content.Reader) + cb(msg) } delete(store.bodyCallbacks, msg.Content.Uid) } |