Module Rpc.Simple

type ('query, 'response) t
val create : name:string -> ('query'response) t
val name : (__) t -> string
val add_version : ('query'response) t -> version:int -> bin_query:'old_query Bin_prot.Type_class.t -> bin_response:'old_response Bin_prot.Type_class.t -> ('old_query -> 'query) -> ('response -> 'old_response) -> ('query'response) t Core_kernel.Or_error.t
val add_version_with_failure : ('query'response Core_kernel.Or_error.t) t -> version:int -> bin_query:'old_query Bin_prot.Type_class.t -> bin_response:('old_response, string) Core_kernel.Result.t Bin_prot.Type_class.t -> ('old_query -> 'query Core_kernel.Or_error.t) -> ('response -> 'old_response Core_kernel.Or_error.t) -> ('query'response Core_kernel.Or_error.t) t Core_kernel.Or_error.t
val add_rpc_version : ('query'response) t -> ('old_query'old_response) Rpc.Rpc.t -> ('old_query -> 'query) -> ('response -> 'old_response) -> ('query'response) t Core_kernel.Or_error.t
val add_rpc_version_with_failure : ('query'response Core_kernel.Or_error.t) t -> ('old_query('old_response, string) Core_kernel.Result.t) Rpc.Rpc.t -> ('old_query -> 'query Core_kernel.Or_error.t) -> ('response -> 'old_response Core_kernel.Or_error.t) -> ('query'response Core_kernel.Or_error.t) t Core_kernel.Or_error.t
val implement : ('query'response) t -> ('state -> 'query -> 'response Async_kernel.Deferred.t) -> 'state Rpc.Implementation.t list