summaryrefslogtreecommitdiff
path: root/gemini/geminiTransaction.mli
diff options
context:
space:
mode:
authorRyan Kavanagh <rak@rak.ac>2020-06-02 12:09:42 -0400
committerRyan Kavanagh <rak@rak.ac>2020-06-07 11:39:58 -0400
commit301c28f2157d5822b60499c93e7ee77a92b8cfe8 (patch)
treeddee1b64412b7c50cf52017ffab896a3f9f639bc /gemini/geminiTransaction.mli
parentMime type parsing (diff)
Rename request to geminiTransaction
Diffstat (limited to 'gemini/geminiTransaction.mli')
-rw-r--r--gemini/geminiTransaction.mli41
1 files changed, 41 insertions, 0 deletions
diff --git a/gemini/geminiTransaction.mli b/gemini/geminiTransaction.mli
new file mode 100644
index 0000000..45049f1
--- /dev/null
+++ b/gemini/geminiTransaction.mli
@@ -0,0 +1,41 @@
+module type GEMINI_TRANSACTION =
+sig
+ type request
+
+ module M : MimeType.MIME_TYPE
+
+ type status =
+ | INPUT
+ | SUCCESS
+ | SUCCESS_EOCSS
+ | REDIR_TEMP
+ | REDIR_PERM
+ | TEMP_FAIL
+ | SERVER_UNAVAILABLE
+ | CGI_ERROR
+ | PROXY_ERROR
+ | SLOW_DOWN
+ | PERM_FAIL
+ | NOT_FOUND
+ | GONE
+ | PROXY_REQ_REFUSED
+ | BAD_REQ
+ | CLIENT_CERT_REQUIRED
+ | TRANSIENT_CERT_REQUESTED
+ | AUTHORISED_CERT_REQUIRED
+ | CERT_NOT_ACCEPTED
+ | FUTURE_CERT_REJECTED
+ | EXPIRED_CERT_REJECTED
+
+ type mime_type = M.t
+
+ type response = status * mime_type * string
+
+ val string_to_request : string -> request
+
+ val int_to_status : int -> status option
+
+ val transaction : request -> response option Lwt.t
+end
+
+module GeminiTransaction (M : MimeType.MIME_TYPE) : GEMINI_TRANSACTION with module M = M