aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/world/service/mail.lux
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/library/lux/world/service/mail.lux19
1 files changed, 19 insertions, 0 deletions
diff --git a/stdlib/source/library/lux/world/service/mail.lux b/stdlib/source/library/lux/world/service/mail.lux
new file mode 100644
index 000000000..2b2cc9dd1
--- /dev/null
+++ b/stdlib/source/library/lux/world/service/mail.lux
@@ -0,0 +1,19 @@
+(.module:
+ [library
+ [lux #*
+ [control
+ [try (#+ Try)]
+ [concurrency
+ [frp (#+ Channel)]]
+ [security
+ ["!" capability (#+ capability:)]]]]])
+
+(capability: #export (Can-Send ! address message)
+ (can-send [address message] (! (Try Any))))
+
+(capability: #export (Can-Subscribe ! address message)
+ (can-subscribe [address] (! (Try (Channel message)))))
+
+(type: #export (Service ! address message)
+ {#can-send (Can-Send ! address message)
+ #can-subscribe (Can-Subscribe ! address message)})