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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
open Dune_rpc_private
module Id = Id
module Response = Response
module Version_error = Version_error
module Initialize = Initialize.Request
module Call = Call
module Loc = Loc
module Target = Target
module Diagnostic = Diagnostic
module Path = Path
module Progress = Progress
module Job = Job
module Message = Message
module Where = Where
module Registry = Registry
module Ansi_color = Ansi_color
module User_message = User_message
include Public
module Client = struct
module type S = sig
type t
type 'a fiber
type chan
module Handler : sig
type t
val create
: ?log:(Message.t -> unit fiber)
-> ?abort:(Message.t -> unit fiber)
-> unit
-> t
end
module Versioned : sig
type 'a notification
type ('a, 'b) request
val prepare_request
: t
-> ('a, 'b) Request.t
-> (('a, 'b) request, Version_error.t) result fiber
val prepare_notification
: t
-> 'a Notification.t
-> ('a notification, Version_error.t) result fiber
end
val request
: ?id:Id.t
-> t
-> ('a, 'b) Versioned.request
-> 'a
-> ('b, Response.Error.t) result fiber
val notification : t -> 'a Versioned.notification -> 'a -> unit fiber
val disconnected : t -> unit fiber
module Stream : sig
type 'a t
val cancel : _ t -> unit fiber
val next : 'a t -> 'a option fiber
end
val poll : ?id:Id.t -> t -> 'a Sub.t -> ('a Stream.t, Version_error.t) result fiber
module Batch : sig
type client := t
type t
val create : client -> t
val request
: ?id:Id.t
-> t
-> ('a, 'b) Versioned.request
-> 'a
-> ('b, Response.Error.t) result fiber
val notification : t -> 'a Versioned.notification -> 'a -> unit
val submit : t -> unit fiber
end
val connect
: ?handler:Handler.t
-> chan
-> Initialize.t
-> f:(t -> 'a fiber)
-> 'a fiber
end
module Make = Client.Make
end