summary refs log tree commit diff stats
path: root/worker/messages.go
diff options
context:
space:
mode:
Diffstat (limited to 'worker/messages.go')
-rw-r--r--worker/messages.go91
1 files changed, 91 insertions, 0 deletions
diff --git a/worker/messages.go b/worker/messages.go
new file mode 100644
index 0000000..90fcfa0
--- /dev/null
+++ b/worker/messages.go
@@ -0,0 +1,91 @@
+package worker
+
+import (
+	"crypto/x509"
+
+	"git.sr.ht/~sircmpwn/aerc2/config"
+)
+
+type WorkerMessage interface {
+	InResponseTo() WorkerMessage
+}
+
+type Message struct {
+	inResponseTo WorkerMessage
+}
+
+func RespondTo(msg WorkerMessage) Message {
+	return Message{
+		inResponseTo: msg,
+	}
+}
+
+func (m Message) InResponseTo() WorkerMessage {
+	return m.inResponseTo
+}
+
+// Meta-messages
+
+type Done struct {
+	Message
+}
+
+type Error struct {
+	Message
+	Error error
+}
+
+type Unsupported struct {
+	Message
+}
+
+// Actions
+
+type ApproveCertificate struct {
+	Message
+	Approved bool
+}
+
+type Configure struct {
+	Message
+	Config *config.AccountConfig
+}
+
+type Connect struct {
+	Message
+}
+
+type Disconnect struct {
+	Message
+}
+
+type ListDirectories struct {
+	Message
+}
+
+type OpenDirectory struct {
+	Message
+	Directory string
+}
+
+// Messages
+
+type CertificateApprovalRequest struct {
+	Message
+	CertPool *x509.CertPool
+}
+
+type Directory struct {
+	Message
+	Attributes []string
+	Name       string
+}
+
+type DirectoryInfo struct {
+	Message
+	Flags    []string
+	Name     string
+	ReadOnly bool
+
+	Exists, Recent, Unseen int
+}