summaryrefslogtreecommitdiff
path: root/worker
diff options
context:
space:
mode:
Diffstat (limited to 'worker')
-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
+}