File: responses.go

package info (click to toggle)
golang-github-emersion-go-imap 1.2.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 840 kB
  • sloc: makefile: 2
file content (35 lines) | stat: -rw-r--r-- 849 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// IMAP responses defined in RFC 3501.
package responses

import (
	"errors"

	"github.com/emersion/go-imap"
)

// ErrUnhandled is used when a response hasn't been handled.
var ErrUnhandled = errors.New("imap: unhandled response")

var errNotEnoughFields = errors.New("imap: not enough fields in response")

// Handler handles responses.
type Handler interface {
	// Handle processes a response. If the response cannot be processed,
	// ErrUnhandledResp must be returned.
	Handle(resp imap.Resp) error
}

// HandlerFunc is a function that handles responses.
type HandlerFunc func(resp imap.Resp) error

// Handle implements Handler.
func (f HandlerFunc) Handle(resp imap.Resp) error {
	return f(resp)
}

// Replier is a Handler that needs to send raw data (for instance
// AUTHENTICATE).
type Replier interface {
	Handler
	Replies() <-chan []byte
}