summaryrefslogblamecommitdiff
path: root/gemini/geminiTransaction.mli
blob: b31d9e0de19c33c05005d93722e13b63f8ae113d (plain) (tree)
1
2
3
4

                                

              























                               
                      




                                             
                                          
 
                                   
 
                                                              


                                                                                        
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
    | UNDEFINED of int

  type mime_type = M.t

  type response = status * mime_type * string

  val make_request : url:string -> request

  val int_to_status : int -> status

  val transaction : request -> (response, string) result Lwt.t
end

module GeminiTransaction (M : MimeType.MIME_TYPE) : GEMINI_TRANSACTION with module M = M