package dune-rpc

  1. Overview
  2. Docs
Communicate with dune using rpc

Install

dune-project
 Dependency

Authors

Maintainers

Sources

dune-3.22.2.tbz
sha256=c2ccf8bc6b17afa47c450297357496303aa7c8680e329b79d98c68e35013a118
sha512=26d3df56a509c6e8937a9333944303bdd8800a41e1b869c3adfb76d1e1fe615b6ec41491d596bd5982e338dcf70b97c18f963f37bfbf2bd581cbd356f3d5f4e5

doc/dune-rpc.private/Dune_rpc_private/Versioned/Make/Builder/index.html

Module Make.BuilderSource

Sourcetype 'state t
Sourceval to_handler : 'state t -> session_version:('state -> int * int) -> menu:Menu.t -> 'state Handler.t
Sourceval create : unit -> 'state t
Sourceval registered_procedures : 'a t -> (Dune_rpc_private__.Types.Method.Name.t * int list) list
Sourceval declare_notification : 'state t -> 'payload Dune_rpc_private__.Types.Decl.Notification.t -> unit

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.

Sourceval declare_request : 'state t -> ('req, 'resp) Dune_rpc_private__.Types.Decl.Request.t -> unit
Sourceval implement_notification : 'state t -> 'payload Dune_rpc_private__.Types.Decl.Notification.t -> ('state -> 'payload -> unit Fiber.t) -> unit
Sourceval implement_request : 'state t -> ('req, 'resp) Dune_rpc_private__.Types.Decl.Request.t -> ('state -> 'req -> 'resp Fiber.t) -> unit