Go back to using pop3.Message rather than IDs for most pop3.Mailbox methods.
[mailpopbox.git] / pop3.go
diff --git a/pop3.go b/pop3.go
index ad4d1a4739fcd563e02702acf4648cf508e80bef..6d8dfd26949e28cac89cfb6d1bce89ae91db7f88 100644 (file)
--- a/pop3.go
+++ b/pop3.go
@@ -123,20 +123,20 @@ func (mb *mailbox) ListMessages() ([]pop3.Message, error) {
        return msgs, nil
 }
 
-func (mb *mailbox) Retrieve(idx int) (io.ReadCloser, error) {
-       if idx > len(mb.messages) {
-               return nil, errors.New("no such message")
+func (mb *mailbox) GetMessage(id int) pop3.Message {
+       if id > len(mb.messages) {
+               return nil
        }
-       filename := mb.messages[idx-1].filename
+       return &mb.messages[id-1]
+}
+
+func (mb *mailbox) Retrieve(msg pop3.Message) (io.ReadCloser, error) {
+       filename := msg.(*message).filename
        return os.Open(filename)
 }
 
-func (mb *mailbox) Delete(idx int) error {
-       message := &mb.messages[idx-1]
-       if message.deleted {
-               return errors.New("already deleted")
-       }
-       message.deleted = true
+func (mb *mailbox) Delete(msg pop3.Message) error {
+       msg.(*message).deleted = true
        return nil
 }