package dune-rpc
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Communicate with dune using rpc
Install
dune-project
Dependency
Authors
Maintainers
Sources
dune-3.22.2.tbz
sha256=c2ccf8bc6b17afa47c450297357496303aa7c8680e329b79d98c68e35013a118
sha512=26d3df56a509c6e8937a9333944303bdd8800a41e1b869c3adfb76d1e1fe615b6ec41491d596bd5982e338dcf70b97c18f963f37bfbf2bd581cbd356f3d5f4e5
doc/src/dune-rpc.private/versioned_intf.ml.html
Source file versioned_intf.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78open Types module Staged = struct type ('req, 'resp) request = { encode_req : 'req -> Call.t ; decode_resp : Csexp.t -> ('resp, Response.Error.t) result } type 'payload notification = { encode : 'payload -> Call.t } end module type S = sig type 'a fiber module Handler : sig type 'state t val handle_request : 'state t -> 'state -> Request.t -> Response.t fiber val handle_notification : 'state t -> 'state -> Call.t -> (unit, Response.Error.t) result fiber val prepare_request : 'a t -> ('req, 'resp) Decl.Request.witness -> (('req, 'resp) Staged.request, Version_error.t) result val prepare_notification : 'a t -> 'payload Decl.Notification.witness -> ('payload Staged.notification, Version_error.t) result end module Builder : sig type 'state t val to_handler : 'state t -> session_version:('state -> Version.t) -> menu:Menu.t -> 'state Handler.t val create : unit -> 'state t val registered_procedures : 'a t -> (Method.Name.t * Method.Version.t list) list (** A *declaration* of a procedure is a claim that this side of the session is able to *initiate* that procedure. Correspondingly, *implementing* a procedure enables you to *receive* that procedure (and probably do something in response). Currently, attempting to both implement and declare the same procedure in the same builder will raise. While there is nothing fundamentally wrong with allowing this, it is simpler for the initial version negotiation to treat all method names uniformly, rather than specifying whether a given (set of) generation(s) is implemented or declared. Finally, attempting to declare or implement the same generation twice will also raise. *) val declare_notification : 'state t -> 'payload Decl.notification -> unit val declare_request : 'state t -> ('req, 'resp) Decl.request -> unit val implement_notification : 'state t -> 'payload Decl.notification -> ('state -> 'payload -> unit fiber) -> unit val implement_request : 'state t -> ('req, 'resp) Decl.request -> ('state -> 'req -> 'resp fiber) -> unit end end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>