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.0.tbz
sha256=cb816b2e672ca6c6ea680133f01287bd95a58ca611cb476acff67b8adbacf722
sha512=c99102070a9c90b29ca4cac68bd2444c086dd0ac5b63515d561087509beff719c4c534ee844f25ce391d1c08080f9e78b7dd32ed14057c6b9cc7886f60337f3b
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)"
>