Skip to main content

Mountain/Vine/Generated/
vine.rs

1// This file is @generated by prost-build.
2/// Represents an empty message, typically used for RPCs that don't need to return data.
3#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
4pub struct Empty {}
5/// LAND-PATCH B7-S6 P2: streaming channel envelope.
6///
7/// One frame on the bidirectional `OpenChannelFromCocoon` /
8/// `OpenChannelFromMountain` streams. The sender chooses which
9/// `payload` arm to populate based on what the frame represents:
10///
11/// * Notification: fire-and-forget; no response expected.
12/// * Request:      paired with a Response carrying the same
13///   correlation_id; receiver reads the request,
14///   dispatches, sends the response back over the
15///   same stream.
16/// * Response:     replies to a previously received Request.
17///   Carries the request's correlation_id verbatim.
18/// * Cancel:       request the receiver to abort an in-flight
19///   request (best-effort; receiver chooses whether
20///   to honour).
21///
22/// Each side maintains a `HashMap<u64, oneshot::Sender>` of pending
23/// requests keyed by correlation_id; the multiplexer routes
24/// incoming Response frames into the matching sender.
25///
26/// Notifications fan out to a `tokio::sync::broadcast` channel so
27/// any number of subscribers (Effect-TS fibers, dev-log, telemetry,
28/// etc.) can observe the same flow concurrently.
29#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
30pub struct Envelope {
31    #[prost(oneof = "envelope::Payload", tags = "1, 2, 3, 4")]
32    pub payload: ::core::option::Option<envelope::Payload>,
33}
34/// Nested message and enum types in `Envelope`.
35pub mod envelope {
36    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
37    pub enum Payload {
38        #[prost(message, tag = "1")]
39        Notification(super::GenericNotification),
40        #[prost(message, tag = "2")]
41        Request(super::GenericRequest),
42        #[prost(message, tag = "3")]
43        Response(super::GenericResponse),
44        #[prost(message, tag = "4")]
45        Cancel(super::CancelOperationRequest),
46    }
47}
48/// A generic request message containing a method name and serialized parameters.
49#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
50pub struct GenericRequest {
51    #[prost(uint64, tag = "1")]
52    pub request_identifier: u64,
53    #[prost(string, tag = "2")]
54    pub method: ::prost::alloc::string::String,
55    /// Parameters are expected to be a JSON-serialized byte array.
56    #[prost(bytes = "vec", tag = "3")]
57    pub parameter: ::prost::alloc::vec::Vec<u8>,
58}
59/// A generic response message containing the result or an error.
60#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
61pub struct GenericResponse {
62    #[prost(uint64, tag = "1")]
63    pub request_identifier: u64,
64    /// The successful result, JSON-serialized.
65    #[prost(bytes = "vec", tag = "2")]
66    pub result: ::prost::alloc::vec::Vec<u8>,
67    #[prost(message, optional, tag = "3")]
68    pub error: ::core::option::Option<RpcError>,
69}
70/// A generic notification message, which is fire-and-forget and does not have an ID.
71#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
72pub struct GenericNotification {
73    #[prost(string, tag = "1")]
74    pub method: ::prost::alloc::string::String,
75    /// Parameters are expected to be a JSON-serialized byte array.
76    #[prost(bytes = "vec", tag = "2")]
77    pub parameter: ::prost::alloc::vec::Vec<u8>,
78}
79/// A structured error payload, compliant with JSON-RPC error objects.
80#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
81pub struct RpcError {
82    #[prost(int32, tag = "1")]
83    pub code: i32,
84    #[prost(string, tag = "2")]
85    pub message: ::prost::alloc::string::String,
86    /// Optional, additional error data, JSON-serialized.
87    #[prost(bytes = "vec", tag = "3")]
88    pub data: ::prost::alloc::vec::Vec<u8>,
89}
90/// A message to cancel a specific, ongoing operation.
91#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
92pub struct CancelOperationRequest {
93    #[prost(uint64, tag = "1")]
94    pub request_identifier_to_cancel: u64,
95}
96/// A generic data payload, currently unused but available for future extensions.
97#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
98pub struct RpcDataPayload {
99    #[prost(bytes = "vec", tag = "1")]
100    pub data: ::prost::alloc::vec::Vec<u8>,
101}
102/// A position in a text document, expressed as zero-based line and character offset.
103#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
104pub struct Position {
105    #[prost(uint32, tag = "1")]
106    pub line: u32,
107    #[prost(uint32, tag = "2")]
108    pub character: u32,
109}
110/// A range in a text document, expressed as start and end positions.
111#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
112pub struct Range {
113    #[prost(message, optional, tag = "1")]
114    pub start: ::core::option::Option<Position>,
115    #[prost(message, optional, tag = "2")]
116    pub end: ::core::option::Option<Position>,
117}
118/// A Uniform Resource Identifier (URI).
119#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
120pub struct Uri {
121    #[prost(string, tag = "1")]
122    pub value: ::prost::alloc::string::String,
123}
124/// A command argument, which can be one of several types.
125#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
126pub struct Argument {
127    #[prost(oneof = "argument::Value", tags = "1, 2, 3, 4")]
128    pub value: ::core::option::Option<argument::Value>,
129}
130/// Nested message and enum types in `Argument`.
131pub mod argument {
132    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
133    pub enum Value {
134        #[prost(string, tag = "1")]
135        StringValue(::prost::alloc::string::String),
136        #[prost(int32, tag = "2")]
137        IntValue(i32),
138        #[prost(bool, tag = "3")]
139        BoolValue(bool),
140        #[prost(bytes, tag = "4")]
141        BytesValue(::prost::alloc::vec::Vec<u8>),
142    }
143}
144/// A workspace folder.
145#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
146pub struct WorkspaceFolder {
147    #[prost(message, optional, tag = "1")]
148    pub uri: ::core::option::Option<Uri>,
149    #[prost(string, tag = "2")]
150    pub name: ::prost::alloc::string::String,
151}
152/// Request to initialize the extension host.
153#[derive(Clone, PartialEq, ::prost::Message)]
154pub struct InitExtensionHostRequest {
155    #[prost(message, repeated, tag = "1")]
156    pub workspace_folders: ::prost::alloc::vec::Vec<WorkspaceFolder>,
157    #[prost(map = "string, string", tag = "2")]
158    pub configuration: ::std::collections::HashMap<
159        ::prost::alloc::string::String,
160        ::prost::alloc::string::String,
161    >,
162    #[prost(string, tag = "3")]
163    pub workspace_id: ::prost::alloc::string::String,
164}
165/// Request to register a command.
166#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
167pub struct RegisterCommandRequest {
168    #[prost(string, tag = "1")]
169    pub command_id: ::prost::alloc::string::String,
170    #[prost(string, tag = "2")]
171    pub extension_id: ::prost::alloc::string::String,
172    #[prost(string, tag = "3")]
173    pub title: ::prost::alloc::string::String,
174}
175/// Request to execute a command.
176#[derive(Clone, PartialEq, ::prost::Message)]
177pub struct ExecuteCommandRequest {
178    #[prost(string, tag = "1")]
179    pub command_id: ::prost::alloc::string::String,
180    #[prost(message, repeated, tag = "2")]
181    pub arguments: ::prost::alloc::vec::Vec<Argument>,
182}
183/// Response from command execution.
184#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
185pub struct ExecuteCommandResponse {
186    #[prost(oneof = "execute_command_response::Result", tags = "1, 2")]
187    pub result: ::core::option::Option<execute_command_response::Result>,
188}
189/// Nested message and enum types in `ExecuteCommandResponse`.
190pub mod execute_command_response {
191    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
192    pub enum Result {
193        #[prost(bytes, tag = "1")]
194        Value(::prost::alloc::vec::Vec<u8>),
195        #[prost(message, tag = "2")]
196        Error(super::RpcError),
197    }
198}
199/// Request to unregister a command.
200#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
201pub struct UnregisterCommandRequest {
202    #[prost(string, tag = "1")]
203    pub command_id: ::prost::alloc::string::String,
204}
205/// Request to register a provider.
206#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
207pub struct RegisterProviderRequest {
208    #[prost(string, tag = "1")]
209    pub language_selector: ::prost::alloc::string::String,
210    #[prost(uint32, tag = "2")]
211    pub handle: u32,
212    #[prost(string, tag = "3")]
213    pub extension_id: ::prost::alloc::string::String,
214}
215/// Request for hover information.
216#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
217pub struct ProvideHoverRequest {
218    #[prost(message, optional, tag = "1")]
219    pub uri: ::core::option::Option<Uri>,
220    #[prost(message, optional, tag = "2")]
221    pub position: ::core::option::Option<Position>,
222    #[prost(uint32, tag = "3")]
223    pub provider_handle: u32,
224}
225/// Response with hover information.
226#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
227pub struct ProvideHoverResponse {
228    #[prost(string, tag = "1")]
229    pub markdown: ::prost::alloc::string::String,
230    #[prost(message, optional, tag = "2")]
231    pub range: ::core::option::Option<Range>,
232}
233/// Request for completion items.
234#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
235pub struct ProvideCompletionItemsRequest {
236    #[prost(message, optional, tag = "1")]
237    pub uri: ::core::option::Option<Uri>,
238    #[prost(message, optional, tag = "2")]
239    pub position: ::core::option::Option<Position>,
240    #[prost(uint32, tag = "3")]
241    pub provider_handle: u32,
242    #[prost(string, tag = "4")]
243    pub trigger_character: ::prost::alloc::string::String,
244}
245/// Response with completion items.
246#[derive(Clone, PartialEq, ::prost::Message)]
247pub struct ProvideCompletionItemsResponse {
248    #[prost(message, repeated, tag = "1")]
249    pub items: ::prost::alloc::vec::Vec<CompletionItem>,
250}
251#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
252pub struct CompletionItem {
253    #[prost(string, tag = "1")]
254    pub label: ::prost::alloc::string::String,
255    #[prost(string, tag = "2")]
256    pub kind: ::prost::alloc::string::String,
257    #[prost(string, tag = "3")]
258    pub detail: ::prost::alloc::string::String,
259    #[prost(bytes = "vec", tag = "4")]
260    pub documentation: ::prost::alloc::vec::Vec<u8>,
261    #[prost(string, tag = "5")]
262    pub insert_text: ::prost::alloc::string::String,
263}
264/// Request for definition location.
265#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
266pub struct ProvideDefinitionRequest {
267    #[prost(message, optional, tag = "1")]
268    pub uri: ::core::option::Option<Uri>,
269    #[prost(message, optional, tag = "2")]
270    pub position: ::core::option::Option<Position>,
271    #[prost(uint32, tag = "3")]
272    pub provider_handle: u32,
273}
274/// Response with definition location.
275#[derive(Clone, PartialEq, ::prost::Message)]
276pub struct ProvideDefinitionResponse {
277    #[prost(message, repeated, tag = "1")]
278    pub locations: ::prost::alloc::vec::Vec<Location>,
279}
280#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
281pub struct Location {
282    #[prost(message, optional, tag = "1")]
283    pub uri: ::core::option::Option<Uri>,
284    #[prost(message, optional, tag = "2")]
285    pub range: ::core::option::Option<Range>,
286}
287/// Request for references.
288#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
289pub struct ProvideReferencesRequest {
290    #[prost(message, optional, tag = "1")]
291    pub uri: ::core::option::Option<Uri>,
292    #[prost(message, optional, tag = "2")]
293    pub position: ::core::option::Option<Position>,
294    #[prost(uint32, tag = "3")]
295    pub provider_handle: u32,
296}
297/// Response with references.
298#[derive(Clone, PartialEq, ::prost::Message)]
299pub struct ProvideReferencesResponse {
300    #[prost(message, repeated, tag = "1")]
301    pub locations: ::prost::alloc::vec::Vec<Location>,
302}
303/// Request for code actions.
304#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
305pub struct ProvideCodeActionsRequest {
306    #[prost(message, optional, tag = "1")]
307    pub uri: ::core::option::Option<Uri>,
308    #[prost(message, optional, tag = "2")]
309    pub range: ::core::option::Option<Range>,
310    #[prost(uint32, tag = "3")]
311    pub provider_handle: u32,
312}
313/// Response with code actions.
314#[derive(Clone, PartialEq, ::prost::Message)]
315pub struct ProvideCodeActionsResponse {
316    #[prost(message, repeated, tag = "1")]
317    pub actions: ::prost::alloc::vec::Vec<CodeAction>,
318}
319#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
320pub struct CodeAction {
321    #[prost(string, tag = "1")]
322    pub title: ::prost::alloc::string::String,
323    #[prost(string, tag = "2")]
324    pub kind: ::prost::alloc::string::String,
325    #[prost(bool, tag = "3")]
326    pub is_preferred: bool,
327}
328/// Request to show a text document.
329#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
330pub struct ShowTextDocumentRequest {
331    #[prost(message, optional, tag = "1")]
332    pub uri: ::core::option::Option<Uri>,
333    #[prost(enumeration = "ViewColumn", tag = "2")]
334    pub view_column: i32,
335    #[prost(bool, tag = "3")]
336    pub preserve_focus: bool,
337}
338/// Response for showing a text document.
339#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
340pub struct ShowTextDocumentResponse {
341    #[prost(bool, tag = "1")]
342    pub success: bool,
343}
344/// Request to show a message.
345#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
346pub struct ShowMessageRequest {
347    #[prost(string, tag = "1")]
348    pub message: ::prost::alloc::string::String,
349}
350/// Response for showing a message.
351#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
352pub struct ShowMessageResponse {
353    #[prost(bool, tag = "1")]
354    pub success: bool,
355}
356/// Request to create a status bar item.
357#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
358pub struct CreateStatusBarItemRequest {
359    #[prost(string, tag = "1")]
360    pub id: ::prost::alloc::string::String,
361    #[prost(string, tag = "2")]
362    pub text: ::prost::alloc::string::String,
363    #[prost(string, tag = "3")]
364    pub tooltip: ::prost::alloc::string::String,
365}
366/// Response for creating a status bar item.
367#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
368pub struct CreateStatusBarItemResponse {
369    #[prost(string, tag = "1")]
370    pub item_id: ::prost::alloc::string::String,
371}
372/// Request to set status bar text.
373#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
374pub struct SetStatusBarTextRequest {
375    #[prost(string, tag = "1")]
376    pub item_id: ::prost::alloc::string::String,
377    #[prost(string, tag = "2")]
378    pub text: ::prost::alloc::string::String,
379}
380/// Request to create a webview panel.
381#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
382pub struct CreateWebviewPanelRequest {
383    #[prost(string, tag = "1")]
384    pub view_type: ::prost::alloc::string::String,
385    #[prost(string, tag = "2")]
386    pub title: ::prost::alloc::string::String,
387    #[prost(string, tag = "3")]
388    pub icon_path: ::prost::alloc::string::String,
389    #[prost(enumeration = "ViewColumn", tag = "4")]
390    pub view_column: i32,
391    #[prost(bool, tag = "5")]
392    pub preserve_focus: bool,
393    #[prost(bool, tag = "6")]
394    pub enable_find_widget: bool,
395    #[prost(bool, tag = "7")]
396    pub retain_context_when_hidden: bool,
397    #[prost(string, repeated, tag = "8")]
398    pub local_resource_roots: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
399}
400/// Response for creating a webview panel.
401#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
402pub struct CreateWebviewPanelResponse {
403    #[prost(uint32, tag = "1")]
404    pub handle: u32,
405}
406/// Request to set webview HTML.
407#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
408pub struct SetWebviewHtmlRequest {
409    #[prost(uint32, tag = "1")]
410    pub handle: u32,
411    #[prost(string, tag = "2")]
412    pub html: ::prost::alloc::string::String,
413}
414/// Request for webview message.
415#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
416pub struct OnDidReceiveMessageRequest {
417    #[prost(uint32, tag = "1")]
418    pub handle: u32,
419    #[prost(oneof = "on_did_receive_message_request::Message", tags = "2, 3")]
420    pub message: ::core::option::Option<on_did_receive_message_request::Message>,
421}
422/// Nested message and enum types in `OnDidReceiveMessageRequest`.
423pub mod on_did_receive_message_request {
424    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
425    pub enum Message {
426        #[prost(string, tag = "2")]
427        StringMessage(::prost::alloc::string::String),
428        #[prost(bytes, tag = "3")]
429        BytesMessage(::prost::alloc::vec::Vec<u8>),
430    }
431}
432/// Request to read a file.
433#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
434pub struct ReadFileRequest {
435    #[prost(message, optional, tag = "1")]
436    pub uri: ::core::option::Option<Uri>,
437}
438/// Response with file contents.
439#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
440pub struct ReadFileResponse {
441    #[prost(bytes = "vec", tag = "1")]
442    pub content: ::prost::alloc::vec::Vec<u8>,
443    #[prost(string, tag = "2")]
444    pub encoding: ::prost::alloc::string::String,
445}
446/// Request to write a file.
447#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
448pub struct WriteFileRequest {
449    #[prost(message, optional, tag = "1")]
450    pub uri: ::core::option::Option<Uri>,
451    #[prost(bytes = "vec", tag = "2")]
452    pub content: ::prost::alloc::vec::Vec<u8>,
453    #[prost(string, tag = "3")]
454    pub encoding: ::prost::alloc::string::String,
455}
456/// Request for file metadata.
457#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
458pub struct StatRequest {
459    #[prost(message, optional, tag = "1")]
460    pub uri: ::core::option::Option<Uri>,
461}
462/// Response with file metadata.
463#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
464pub struct StatResponse {
465    #[prost(bool, tag = "1")]
466    pub is_file: bool,
467    #[prost(bool, tag = "2")]
468    pub is_directory: bool,
469    #[prost(uint64, tag = "3")]
470    pub size: u64,
471    #[prost(uint64, tag = "4")]
472    pub mtime: u64,
473}
474/// Request to read directory contents.
475#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
476pub struct ReaddirRequest {
477    #[prost(message, optional, tag = "1")]
478    pub uri: ::core::option::Option<Uri>,
479}
480/// Response with directory contents.
481#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
482pub struct ReaddirResponse {
483    #[prost(string, repeated, tag = "1")]
484    pub entries: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
485}
486/// Request to watch a file.
487#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
488pub struct WatchFileRequest {
489    #[prost(message, optional, tag = "1")]
490    pub uri: ::core::option::Option<Uri>,
491}
492/// Request to find files.
493#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
494pub struct FindFilesRequest {
495    #[prost(string, tag = "1")]
496    pub pattern: ::prost::alloc::string::String,
497    #[prost(bool, tag = "2")]
498    pub include: bool,
499}
500/// Response with found files.
501#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
502pub struct FindFilesResponse {
503    #[prost(string, repeated, tag = "1")]
504    pub uris: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
505}
506/// Request to find text in files.
507#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
508pub struct FindTextInFilesRequest {
509    #[prost(string, tag = "1")]
510    pub pattern: ::prost::alloc::string::String,
511    #[prost(string, repeated, tag = "2")]
512    pub include: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
513    #[prost(string, repeated, tag = "3")]
514    pub exclude: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
515}
516/// Response with text matches.
517#[derive(Clone, PartialEq, ::prost::Message)]
518pub struct FindTextInFilesResponse {
519    #[prost(message, repeated, tag = "1")]
520    pub matches: ::prost::alloc::vec::Vec<TextMatch>,
521}
522#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
523pub struct TextMatch {
524    #[prost(message, optional, tag = "1")]
525    pub uri: ::core::option::Option<Uri>,
526    #[prost(message, optional, tag = "2")]
527    pub range: ::core::option::Option<Range>,
528    #[prost(string, tag = "3")]
529    pub preview: ::prost::alloc::string::String,
530}
531/// Request to open a document.
532#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
533pub struct OpenDocumentRequest {
534    #[prost(message, optional, tag = "1")]
535    pub uri: ::core::option::Option<Uri>,
536    #[prost(enumeration = "ViewColumn", tag = "2")]
537    pub view_column: i32,
538}
539/// Response for opening a document.
540#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
541pub struct OpenDocumentResponse {
542    #[prost(bool, tag = "1")]
543    pub success: bool,
544}
545/// Request to save all documents.
546#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
547pub struct SaveAllRequest {
548    #[prost(bool, tag = "1")]
549    pub include_untitled: bool,
550}
551/// Response for saving all documents.
552#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
553pub struct SaveAllResponse {
554    #[prost(bool, tag = "1")]
555    pub success: bool,
556}
557/// Request to apply an edit.
558#[derive(Clone, PartialEq, ::prost::Message)]
559pub struct ApplyEditRequest {
560    #[prost(message, optional, tag = "1")]
561    pub uri: ::core::option::Option<Uri>,
562    #[prost(message, repeated, tag = "2")]
563    pub edits: ::prost::alloc::vec::Vec<TextEdit>,
564}
565#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
566pub struct TextEdit {
567    #[prost(message, optional, tag = "1")]
568    pub range: ::core::option::Option<Range>,
569    #[prost(string, tag = "2")]
570    pub new_text: ::prost::alloc::string::String,
571}
572/// Response for applying an edit.
573#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
574pub struct ApplyEditResponse {
575    #[prost(bool, tag = "1")]
576    pub success: bool,
577}
578/// Request to update configuration.
579#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
580pub struct UpdateConfigurationRequest {
581    #[prost(string, repeated, tag = "1")]
582    pub changed_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
583}
584/// Request to update workspace folders.
585#[derive(Clone, PartialEq, ::prost::Message)]
586pub struct UpdateWorkspaceFoldersRequest {
587    #[prost(message, repeated, tag = "1")]
588    pub additions: ::prost::alloc::vec::Vec<WorkspaceFolder>,
589    #[prost(message, repeated, tag = "2")]
590    pub removals: ::prost::alloc::vec::Vec<WorkspaceFolder>,
591}
592/// Request to open a terminal.
593#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
594pub struct OpenTerminalRequest {
595    #[prost(string, tag = "1")]
596    pub name: ::prost::alloc::string::String,
597    #[prost(string, tag = "2")]
598    pub shell_path: ::prost::alloc::string::String,
599    #[prost(string, repeated, tag = "3")]
600    pub shell_args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
601    #[prost(string, tag = "4")]
602    pub cwd: ::prost::alloc::string::String,
603}
604/// Request for terminal input.
605#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
606pub struct TerminalInputRequest {
607    #[prost(uint32, tag = "1")]
608    pub terminal_id: u32,
609    #[prost(bytes = "vec", tag = "2")]
610    pub data: ::prost::alloc::vec::Vec<u8>,
611}
612/// Request to close a terminal.
613#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
614pub struct CloseTerminalRequest {
615    #[prost(uint32, tag = "1")]
616    pub terminal_id: u32,
617}
618/// Notification that a terminal was opened.
619#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
620pub struct TerminalOpenedNotification {
621    #[prost(uint32, tag = "1")]
622    pub terminal_id: u32,
623    #[prost(string, tag = "2")]
624    pub name: ::prost::alloc::string::String,
625}
626/// Notification that a terminal was closed.
627#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
628pub struct TerminalClosedNotification {
629    #[prost(uint32, tag = "1")]
630    pub terminal_id: u32,
631}
632/// Notification of terminal process ID.
633#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
634pub struct TerminalProcessIdNotification {
635    #[prost(uint32, tag = "1")]
636    pub terminal_id: u32,
637    #[prost(uint32, tag = "2")]
638    pub process_id: u32,
639}
640/// Notification of terminal output.
641#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
642pub struct TerminalDataNotification {
643    #[prost(uint32, tag = "1")]
644    pub terminal_id: u32,
645    #[prost(bytes = "vec", tag = "2")]
646    pub data: ::prost::alloc::vec::Vec<u8>,
647}
648/// Request to register a tree view provider.
649#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
650pub struct RegisterTreeViewProviderRequest {
651    #[prost(string, tag = "1")]
652    pub view_id: ::prost::alloc::string::String,
653    #[prost(string, tag = "2")]
654    pub extension_id: ::prost::alloc::string::String,
655}
656/// Request for tree children.
657#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
658pub struct GetTreeChildrenRequest {
659    #[prost(string, tag = "1")]
660    pub view_id: ::prost::alloc::string::String,
661    #[prost(string, tag = "2")]
662    pub tree_item_handle: ::prost::alloc::string::String,
663}
664/// Response with tree children.
665#[derive(Clone, PartialEq, ::prost::Message)]
666pub struct GetTreeChildrenResponse {
667    #[prost(message, repeated, tag = "1")]
668    pub items: ::prost::alloc::vec::Vec<TreeItem>,
669}
670#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
671pub struct TreeItem {
672    #[prost(string, tag = "1")]
673    pub handle: ::prost::alloc::string::String,
674    #[prost(string, tag = "2")]
675    pub label: ::prost::alloc::string::String,
676    #[prost(bool, tag = "3")]
677    pub is_collapsed: bool,
678    #[prost(string, tag = "4")]
679    pub icon: ::prost::alloc::string::String,
680}
681/// Request to register an SCM provider.
682#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
683pub struct RegisterScmProviderRequest {
684    #[prost(string, tag = "1")]
685    pub scm_id: ::prost::alloc::string::String,
686    #[prost(string, tag = "2")]
687    pub extension_id: ::prost::alloc::string::String,
688}
689/// Request to update SCM group.
690#[derive(Clone, PartialEq, ::prost::Message)]
691pub struct UpdateScmGroupRequest {
692    #[prost(string, tag = "1")]
693    pub provider_id: ::prost::alloc::string::String,
694    #[prost(string, tag = "2")]
695    pub group_id: ::prost::alloc::string::String,
696    #[prost(message, repeated, tag = "3")]
697    pub resource_states: ::prost::alloc::vec::Vec<SourceControlResourceState>,
698}
699#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
700pub struct SourceControlResourceState {
701    #[prost(message, optional, tag = "1")]
702    pub uri: ::core::option::Option<Uri>,
703    #[prost(string, tag = "2")]
704    pub state: ::prost::alloc::string::String,
705    #[prost(string, tag = "3")]
706    pub decorations: ::prost::alloc::string::String,
707}
708/// Request to execute a git command.
709#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
710pub struct GitExecRequest {
711    #[prost(string, tag = "1")]
712    pub repository_path: ::prost::alloc::string::String,
713    #[prost(string, repeated, tag = "2")]
714    pub args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
715}
716/// Response from git execution.
717#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
718pub struct GitExecResponse {
719    #[prost(string, repeated, tag = "1")]
720    pub output: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
721    #[prost(int32, tag = "2")]
722    pub exit_code: i32,
723}
724/// Request to register a debug adapter.
725#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
726pub struct RegisterDebugAdapterRequest {
727    #[prost(string, tag = "1")]
728    pub debug_type: ::prost::alloc::string::String,
729    #[prost(string, tag = "2")]
730    pub extension_id: ::prost::alloc::string::String,
731}
732#[derive(Clone, PartialEq, ::prost::Message)]
733pub struct DebugConfiguration {
734    #[prost(string, tag = "1")]
735    pub r#type: ::prost::alloc::string::String,
736    #[prost(string, tag = "2")]
737    pub name: ::prost::alloc::string::String,
738    #[prost(string, tag = "3")]
739    pub request: ::prost::alloc::string::String,
740    #[prost(map = "string, string", tag = "4")]
741    pub options: ::std::collections::HashMap<
742        ::prost::alloc::string::String,
743        ::prost::alloc::string::String,
744    >,
745}
746/// Request to start debugging.
747#[derive(Clone, PartialEq, ::prost::Message)]
748pub struct StartDebuggingRequest {
749    #[prost(string, tag = "1")]
750    pub debug_type: ::prost::alloc::string::String,
751    #[prost(message, optional, tag = "2")]
752    pub configuration: ::core::option::Option<DebugConfiguration>,
753}
754/// Response for starting debugging.
755#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
756pub struct StartDebuggingResponse {
757    #[prost(bool, tag = "1")]
758    pub success: bool,
759}
760/// Request to participate in save.
761#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
762pub struct ParticipateInSaveRequest {
763    #[prost(message, optional, tag = "1")]
764    pub uri: ::core::option::Option<Uri>,
765    #[prost(enumeration = "TextDocumentSaveReason", tag = "2")]
766    pub reason: i32,
767}
768#[derive(Clone, PartialEq, ::prost::Message)]
769pub struct TextEditForSave {
770    #[prost(message, optional, tag = "1")]
771    pub uri: ::core::option::Option<Uri>,
772    #[prost(message, repeated, tag = "2")]
773    pub edits: ::prost::alloc::vec::Vec<TextEdit>,
774}
775/// Response for participating in save.
776#[derive(Clone, PartialEq, ::prost::Message)]
777pub struct ParticipateInSaveResponse {
778    #[prost(message, repeated, tag = "1")]
779    pub edits: ::prost::alloc::vec::Vec<TextEditForSave>,
780}
781/// Request to get a secret.
782#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
783pub struct GetSecretRequest {
784    #[prost(string, tag = "1")]
785    pub key: ::prost::alloc::string::String,
786}
787/// Response with secret value.
788#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
789pub struct GetSecretResponse {
790    #[prost(string, tag = "1")]
791    pub value: ::prost::alloc::string::String,
792}
793/// Request to store a secret.
794#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
795pub struct StoreSecretRequest {
796    #[prost(string, tag = "1")]
797    pub key: ::prost::alloc::string::String,
798    #[prost(string, tag = "2")]
799    pub value: ::prost::alloc::string::String,
800}
801/// Request to delete a secret.
802#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
803pub struct DeleteSecretRequest {
804    #[prost(string, tag = "1")]
805    pub key: ::prost::alloc::string::String,
806}
807/// Document filter for language selector.
808#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
809pub struct DocumentFilter {
810    #[prost(string, tag = "1")]
811    pub language: ::prost::alloc::string::String,
812    #[prost(string, tag = "2")]
813    pub scheme: ::prost::alloc::string::String,
814    #[prost(string, tag = "3")]
815    pub pattern: ::prost::alloc::string::String,
816}
817/// Request for document highlights.
818#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
819pub struct ProvideDocumentHighlightsRequest {
820    #[prost(message, optional, tag = "1")]
821    pub uri: ::core::option::Option<Uri>,
822    #[prost(message, optional, tag = "2")]
823    pub position: ::core::option::Option<Position>,
824    #[prost(uint32, tag = "3")]
825    pub provider_handle: u32,
826}
827/// A document highlight.
828#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
829pub struct DocumentHighlight {
830    #[prost(message, optional, tag = "1")]
831    pub range: ::core::option::Option<Range>,
832    /// 0 = Text, 1 = Read, 2 = Write
833    #[prost(uint32, tag = "2")]
834    pub kind: u32,
835}
836/// Response with document highlights.
837#[derive(Clone, PartialEq, ::prost::Message)]
838pub struct ProvideDocumentHighlightsResponse {
839    #[prost(message, repeated, tag = "1")]
840    pub highlights: ::prost::alloc::vec::Vec<DocumentHighlight>,
841}
842/// Request for document symbols.
843#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
844pub struct ProvideDocumentSymbolsRequest {
845    #[prost(message, optional, tag = "1")]
846    pub uri: ::core::option::Option<Uri>,
847    #[prost(uint32, tag = "2")]
848    pub provider_handle: u32,
849}
850/// A document symbol.
851#[derive(Clone, PartialEq, ::prost::Message)]
852pub struct DocumentSymbol {
853    #[prost(string, tag = "1")]
854    pub name: ::prost::alloc::string::String,
855    #[prost(string, tag = "2")]
856    pub detail: ::prost::alloc::string::String,
857    /// SymbolKind enum value
858    #[prost(uint32, tag = "3")]
859    pub kind: u32,
860    #[prost(message, optional, tag = "4")]
861    pub range: ::core::option::Option<Range>,
862    #[prost(message, optional, tag = "5")]
863    pub selection_range: ::core::option::Option<Range>,
864    #[prost(message, repeated, tag = "6")]
865    pub children: ::prost::alloc::vec::Vec<DocumentSymbol>,
866}
867/// Response with document symbols.
868#[derive(Clone, PartialEq, ::prost::Message)]
869pub struct ProvideDocumentSymbolsResponse {
870    #[prost(message, repeated, tag = "1")]
871    pub symbols: ::prost::alloc::vec::Vec<DocumentSymbol>,
872}
873/// Request for workspace symbols.
874#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
875pub struct ProvideWorkspaceSymbolsRequest {
876    #[prost(string, tag = "1")]
877    pub query: ::prost::alloc::string::String,
878    #[prost(uint32, tag = "2")]
879    pub provider_handle: u32,
880}
881/// A workspace symbol.
882#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
883pub struct WorkspaceSymbol {
884    #[prost(string, tag = "1")]
885    pub name: ::prost::alloc::string::String,
886    /// SymbolKind enum value
887    #[prost(uint32, tag = "2")]
888    pub kind: u32,
889    #[prost(message, optional, tag = "3")]
890    pub location: ::core::option::Option<Location>,
891    #[prost(string, tag = "4")]
892    pub container_name: ::prost::alloc::string::String,
893}
894/// Response with workspace symbols.
895#[derive(Clone, PartialEq, ::prost::Message)]
896pub struct ProvideWorkspaceSymbolsResponse {
897    #[prost(message, repeated, tag = "1")]
898    pub symbols: ::prost::alloc::vec::Vec<WorkspaceSymbol>,
899}
900/// Request for rename edits.
901#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
902pub struct ProvideRenameEditsRequest {
903    #[prost(message, optional, tag = "1")]
904    pub uri: ::core::option::Option<Uri>,
905    #[prost(message, optional, tag = "2")]
906    pub position: ::core::option::Option<Position>,
907    #[prost(string, tag = "3")]
908    pub new_name: ::prost::alloc::string::String,
909    #[prost(uint32, tag = "4")]
910    pub provider_handle: u32,
911}
912/// A workspace edit containing edits across multiple files.
913#[derive(Clone, PartialEq, ::prost::Message)]
914pub struct WorkspaceEdit {
915    #[prost(message, repeated, tag = "1")]
916    pub edits: ::prost::alloc::vec::Vec<TextEditForSave>,
917}
918/// Response with rename edits.
919#[derive(Clone, PartialEq, ::prost::Message)]
920pub struct ProvideRenameEditsResponse {
921    #[prost(message, optional, tag = "1")]
922    pub workspace_edit: ::core::option::Option<WorkspaceEdit>,
923}
924/// Request for document formatting.
925#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
926pub struct ProvideDocumentFormattingRequest {
927    #[prost(message, optional, tag = "1")]
928    pub uri: ::core::option::Option<Uri>,
929    #[prost(uint32, tag = "2")]
930    pub tab_size: u32,
931    #[prost(bool, tag = "3")]
932    pub insert_spaces: bool,
933    #[prost(uint32, tag = "4")]
934    pub provider_handle: u32,
935}
936/// Response with formatting edits.
937#[derive(Clone, PartialEq, ::prost::Message)]
938pub struct ProvideDocumentFormattingResponse {
939    #[prost(message, repeated, tag = "1")]
940    pub edits: ::prost::alloc::vec::Vec<TextEdit>,
941}
942/// Request for range formatting.
943#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
944pub struct ProvideDocumentRangeFormattingRequest {
945    #[prost(message, optional, tag = "1")]
946    pub uri: ::core::option::Option<Uri>,
947    #[prost(message, optional, tag = "2")]
948    pub range: ::core::option::Option<Range>,
949    #[prost(uint32, tag = "3")]
950    pub tab_size: u32,
951    #[prost(bool, tag = "4")]
952    pub insert_spaces: bool,
953    #[prost(uint32, tag = "5")]
954    pub provider_handle: u32,
955}
956/// Response with range formatting edits.
957#[derive(Clone, PartialEq, ::prost::Message)]
958pub struct ProvideDocumentRangeFormattingResponse {
959    #[prost(message, repeated, tag = "1")]
960    pub edits: ::prost::alloc::vec::Vec<TextEdit>,
961}
962/// Request to register on-type formatting provider with trigger characters.
963#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
964pub struct RegisterOnTypeFormattingProviderRequest {
965    #[prost(string, tag = "1")]
966    pub language_selector: ::prost::alloc::string::String,
967    #[prost(uint32, tag = "2")]
968    pub handle: u32,
969    #[prost(string, tag = "3")]
970    pub extension_id: ::prost::alloc::string::String,
971    #[prost(string, repeated, tag = "4")]
972    pub trigger_characters: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
973}
974/// Request for on-type formatting.
975#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
976pub struct ProvideOnTypeFormattingRequest {
977    #[prost(message, optional, tag = "1")]
978    pub uri: ::core::option::Option<Uri>,
979    #[prost(message, optional, tag = "2")]
980    pub position: ::core::option::Option<Position>,
981    #[prost(string, tag = "3")]
982    pub character: ::prost::alloc::string::String,
983    #[prost(uint32, tag = "4")]
984    pub tab_size: u32,
985    #[prost(bool, tag = "5")]
986    pub insert_spaces: bool,
987    #[prost(uint32, tag = "6")]
988    pub provider_handle: u32,
989}
990/// Response with on-type formatting edits.
991#[derive(Clone, PartialEq, ::prost::Message)]
992pub struct ProvideOnTypeFormattingResponse {
993    #[prost(message, repeated, tag = "1")]
994    pub edits: ::prost::alloc::vec::Vec<TextEdit>,
995}
996/// Request to register signature help provider with metadata.
997#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
998pub struct RegisterSignatureHelpProviderRequest {
999    #[prost(string, tag = "1")]
1000    pub language_selector: ::prost::alloc::string::String,
1001    #[prost(uint32, tag = "2")]
1002    pub handle: u32,
1003    #[prost(string, tag = "3")]
1004    pub extension_id: ::prost::alloc::string::String,
1005    #[prost(string, repeated, tag = "4")]
1006    pub trigger_characters: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1007    #[prost(string, repeated, tag = "5")]
1008    pub retrigger_characters: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1009}
1010/// Request for signature help.
1011#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1012pub struct ProvideSignatureHelpRequest {
1013    #[prost(message, optional, tag = "1")]
1014    pub uri: ::core::option::Option<Uri>,
1015    #[prost(message, optional, tag = "2")]
1016    pub position: ::core::option::Option<Position>,
1017    #[prost(uint32, tag = "3")]
1018    pub provider_handle: u32,
1019}
1020/// A parameter information.
1021#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1022pub struct ParameterInformation {
1023    #[prost(string, tag = "1")]
1024    pub label: ::prost::alloc::string::String,
1025    #[prost(string, tag = "2")]
1026    pub documentation: ::prost::alloc::string::String,
1027}
1028/// A signature information.
1029#[derive(Clone, PartialEq, ::prost::Message)]
1030pub struct SignatureInformation {
1031    #[prost(string, tag = "1")]
1032    pub label: ::prost::alloc::string::String,
1033    #[prost(string, tag = "2")]
1034    pub documentation: ::prost::alloc::string::String,
1035    #[prost(message, repeated, tag = "3")]
1036    pub parameters: ::prost::alloc::vec::Vec<ParameterInformation>,
1037    #[prost(uint32, tag = "4")]
1038    pub active_parameter: u32,
1039}
1040/// Response with signature help.
1041#[derive(Clone, PartialEq, ::prost::Message)]
1042pub struct ProvideSignatureHelpResponse {
1043    #[prost(message, repeated, tag = "1")]
1044    pub signatures: ::prost::alloc::vec::Vec<SignatureInformation>,
1045    #[prost(uint32, tag = "2")]
1046    pub active_signature: u32,
1047    #[prost(uint32, tag = "3")]
1048    pub active_parameter: u32,
1049}
1050/// Request for code lenses.
1051#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1052pub struct ProvideCodeLensesRequest {
1053    #[prost(message, optional, tag = "1")]
1054    pub uri: ::core::option::Option<Uri>,
1055    #[prost(uint32, tag = "2")]
1056    pub provider_handle: u32,
1057}
1058/// A code lens.
1059#[derive(Clone, PartialEq, ::prost::Message)]
1060pub struct CodeLens {
1061    #[prost(message, optional, tag = "1")]
1062    pub range: ::core::option::Option<Range>,
1063    #[prost(string, tag = "2")]
1064    pub command_id: ::prost::alloc::string::String,
1065    #[prost(string, tag = "3")]
1066    pub command_title: ::prost::alloc::string::String,
1067    #[prost(message, repeated, tag = "4")]
1068    pub command_arguments: ::prost::alloc::vec::Vec<Argument>,
1069}
1070/// Response with code lenses.
1071#[derive(Clone, PartialEq, ::prost::Message)]
1072pub struct ProvideCodeLensesResponse {
1073    #[prost(message, repeated, tag = "1")]
1074    pub lenses: ::prost::alloc::vec::Vec<CodeLens>,
1075}
1076/// Request for folding ranges.
1077#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1078pub struct ProvideFoldingRangesRequest {
1079    #[prost(message, optional, tag = "1")]
1080    pub uri: ::core::option::Option<Uri>,
1081    #[prost(uint32, tag = "2")]
1082    pub provider_handle: u32,
1083}
1084/// A folding range.
1085#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1086pub struct FoldingRange {
1087    #[prost(uint32, tag = "1")]
1088    pub start_line: u32,
1089    #[prost(uint32, tag = "2")]
1090    pub end_line: u32,
1091    /// 0 = Comment, 1 = Imports, 2 = Region
1092    #[prost(uint32, tag = "3")]
1093    pub kind: u32,
1094}
1095/// Response with folding ranges.
1096#[derive(Clone, PartialEq, ::prost::Message)]
1097pub struct ProvideFoldingRangesResponse {
1098    #[prost(message, repeated, tag = "1")]
1099    pub ranges: ::prost::alloc::vec::Vec<FoldingRange>,
1100}
1101/// Request for selection ranges.
1102#[derive(Clone, PartialEq, ::prost::Message)]
1103pub struct ProvideSelectionRangesRequest {
1104    #[prost(message, optional, tag = "1")]
1105    pub uri: ::core::option::Option<Uri>,
1106    #[prost(message, repeated, tag = "2")]
1107    pub positions: ::prost::alloc::vec::Vec<Position>,
1108    #[prost(uint32, tag = "3")]
1109    pub provider_handle: u32,
1110}
1111/// A selection range (nested).
1112#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1113pub struct SelectionRange {
1114    #[prost(message, optional, tag = "1")]
1115    pub range: ::core::option::Option<Range>,
1116}
1117/// Response with selection ranges.
1118#[derive(Clone, PartialEq, ::prost::Message)]
1119pub struct ProvideSelectionRangesResponse {
1120    #[prost(message, repeated, tag = "1")]
1121    pub ranges: ::prost::alloc::vec::Vec<SelectionRange>,
1122}
1123/// Request to register semantic tokens provider with legend.
1124#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1125pub struct RegisterSemanticTokensProviderRequest {
1126    #[prost(string, tag = "1")]
1127    pub language_selector: ::prost::alloc::string::String,
1128    #[prost(uint32, tag = "2")]
1129    pub handle: u32,
1130    #[prost(string, tag = "3")]
1131    pub extension_id: ::prost::alloc::string::String,
1132    #[prost(string, repeated, tag = "4")]
1133    pub token_types: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1134    #[prost(string, repeated, tag = "5")]
1135    pub token_modifiers: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1136}
1137/// Request for semantic tokens.
1138#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1139pub struct ProvideSemanticTokensRequest {
1140    #[prost(message, optional, tag = "1")]
1141    pub uri: ::core::option::Option<Uri>,
1142    #[prost(uint32, tag = "2")]
1143    pub provider_handle: u32,
1144}
1145/// Response with semantic tokens (encoded as delta array per LSP spec).
1146#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1147pub struct ProvideSemanticTokensResponse {
1148    /// Flat array: \[deltaLine, deltaStartChar, length, tokenType, tokenModifiers, ...\]
1149    #[prost(uint32, repeated, tag = "1")]
1150    pub data: ::prost::alloc::vec::Vec<u32>,
1151    #[prost(uint32, tag = "2")]
1152    pub result_id: u32,
1153}
1154/// Request for inlay hints.
1155#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1156pub struct ProvideInlayHintsRequest {
1157    #[prost(message, optional, tag = "1")]
1158    pub uri: ::core::option::Option<Uri>,
1159    #[prost(message, optional, tag = "2")]
1160    pub range: ::core::option::Option<Range>,
1161    #[prost(uint32, tag = "3")]
1162    pub provider_handle: u32,
1163}
1164/// An inlay hint.
1165#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1166pub struct InlayHint {
1167    #[prost(message, optional, tag = "1")]
1168    pub position: ::core::option::Option<Position>,
1169    #[prost(string, tag = "2")]
1170    pub label: ::prost::alloc::string::String,
1171    /// 0 = Type, 1 = Parameter
1172    #[prost(uint32, tag = "3")]
1173    pub kind: u32,
1174    #[prost(string, tag = "4")]
1175    pub tooltip: ::prost::alloc::string::String,
1176    #[prost(bool, tag = "5")]
1177    pub padding_left: bool,
1178    #[prost(bool, tag = "6")]
1179    pub padding_right: bool,
1180}
1181/// Response with inlay hints.
1182#[derive(Clone, PartialEq, ::prost::Message)]
1183pub struct ProvideInlayHintsResponse {
1184    #[prost(message, repeated, tag = "1")]
1185    pub hints: ::prost::alloc::vec::Vec<InlayHint>,
1186}
1187/// A type hierarchy item (used for both supertypes and subtypes).
1188#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1189pub struct TypeHierarchyItem {
1190    #[prost(string, tag = "1")]
1191    pub name: ::prost::alloc::string::String,
1192    #[prost(uint32, tag = "2")]
1193    pub kind: u32,
1194    #[prost(message, optional, tag = "3")]
1195    pub uri: ::core::option::Option<Uri>,
1196    #[prost(message, optional, tag = "4")]
1197    pub range: ::core::option::Option<Range>,
1198    #[prost(message, optional, tag = "5")]
1199    pub selection_range: ::core::option::Option<Range>,
1200    #[prost(string, tag = "6")]
1201    pub detail: ::prost::alloc::string::String,
1202}
1203/// Request for type hierarchy.
1204#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1205pub struct ProvideTypeHierarchyRequest {
1206    #[prost(message, optional, tag = "1")]
1207    pub uri: ::core::option::Option<Uri>,
1208    #[prost(message, optional, tag = "2")]
1209    pub position: ::core::option::Option<Position>,
1210    #[prost(uint32, tag = "3")]
1211    pub provider_handle: u32,
1212    #[prost(message, optional, tag = "4")]
1213    pub item: ::core::option::Option<TypeHierarchyItem>,
1214}
1215/// Response with type hierarchy items.
1216#[derive(Clone, PartialEq, ::prost::Message)]
1217pub struct ProvideTypeHierarchyResponse {
1218    #[prost(message, repeated, tag = "1")]
1219    pub items: ::prost::alloc::vec::Vec<TypeHierarchyItem>,
1220}
1221/// A call hierarchy item (used for both incoming and outgoing calls).
1222#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1223pub struct CallHierarchyItem {
1224    #[prost(string, tag = "1")]
1225    pub name: ::prost::alloc::string::String,
1226    #[prost(uint32, tag = "2")]
1227    pub kind: u32,
1228    #[prost(message, optional, tag = "3")]
1229    pub uri: ::core::option::Option<Uri>,
1230    #[prost(message, optional, tag = "4")]
1231    pub range: ::core::option::Option<Range>,
1232    #[prost(message, optional, tag = "5")]
1233    pub selection_range: ::core::option::Option<Range>,
1234    #[prost(string, tag = "6")]
1235    pub detail: ::prost::alloc::string::String,
1236}
1237/// Request for call hierarchy.
1238#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1239pub struct ProvideCallHierarchyRequest {
1240    #[prost(message, optional, tag = "1")]
1241    pub uri: ::core::option::Option<Uri>,
1242    #[prost(message, optional, tag = "2")]
1243    pub position: ::core::option::Option<Position>,
1244    #[prost(uint32, tag = "3")]
1245    pub provider_handle: u32,
1246    #[prost(message, optional, tag = "4")]
1247    pub item: ::core::option::Option<CallHierarchyItem>,
1248}
1249/// A call hierarchy call.
1250#[derive(Clone, PartialEq, ::prost::Message)]
1251pub struct CallHierarchyCall {
1252    #[prost(message, optional, tag = "1")]
1253    pub from_or_to: ::core::option::Option<CallHierarchyItem>,
1254    #[prost(message, repeated, tag = "2")]
1255    pub from_ranges: ::prost::alloc::vec::Vec<Range>,
1256}
1257/// Response with call hierarchy.
1258#[derive(Clone, PartialEq, ::prost::Message)]
1259pub struct ProvideCallHierarchyResponse {
1260    #[prost(message, repeated, tag = "1")]
1261    pub calls: ::prost::alloc::vec::Vec<CallHierarchyCall>,
1262}
1263/// Request for linked editing ranges.
1264#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1265pub struct ProvideLinkedEditingRangesRequest {
1266    #[prost(message, optional, tag = "1")]
1267    pub uri: ::core::option::Option<Uri>,
1268    #[prost(message, optional, tag = "2")]
1269    pub position: ::core::option::Option<Position>,
1270    #[prost(uint32, tag = "3")]
1271    pub provider_handle: u32,
1272}
1273/// Response with linked editing ranges.
1274#[derive(Clone, PartialEq, ::prost::Message)]
1275pub struct ProvideLinkedEditingRangesResponse {
1276    #[prost(message, repeated, tag = "1")]
1277    pub ranges: ::prost::alloc::vec::Vec<Range>,
1278    #[prost(string, tag = "2")]
1279    pub word_pattern: ::prost::alloc::string::String,
1280}
1281/// A quick pick item.
1282#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1283pub struct QuickPickItem {
1284    #[prost(string, tag = "1")]
1285    pub label: ::prost::alloc::string::String,
1286    #[prost(string, tag = "2")]
1287    pub description: ::prost::alloc::string::String,
1288    #[prost(string, tag = "3")]
1289    pub detail: ::prost::alloc::string::String,
1290    #[prost(bool, tag = "4")]
1291    pub picked: bool,
1292    #[prost(bool, tag = "5")]
1293    pub always_show: bool,
1294}
1295/// Request to show a quick pick.
1296#[derive(Clone, PartialEq, ::prost::Message)]
1297pub struct ShowQuickPickRequest {
1298    #[prost(message, repeated, tag = "1")]
1299    pub items: ::prost::alloc::vec::Vec<QuickPickItem>,
1300    #[prost(string, tag = "2")]
1301    pub placeholder: ::prost::alloc::string::String,
1302    #[prost(bool, tag = "3")]
1303    pub can_pick_many: bool,
1304    #[prost(string, tag = "4")]
1305    pub title: ::prost::alloc::string::String,
1306}
1307/// Response with selected quick pick item(s).
1308#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1309pub struct ShowQuickPickResponse {
1310    #[prost(uint32, repeated, tag = "1")]
1311    pub selected_indices: ::prost::alloc::vec::Vec<u32>,
1312}
1313/// Request to show an input box.
1314#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1315pub struct ShowInputBoxRequest {
1316    #[prost(string, tag = "1")]
1317    pub prompt: ::prost::alloc::string::String,
1318    #[prost(string, tag = "2")]
1319    pub value: ::prost::alloc::string::String,
1320    #[prost(string, tag = "3")]
1321    pub placeholder: ::prost::alloc::string::String,
1322    #[prost(string, tag = "4")]
1323    pub title: ::prost::alloc::string::String,
1324    #[prost(bool, tag = "5")]
1325    pub password: bool,
1326}
1327/// Response with input box value.
1328#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1329pub struct ShowInputBoxResponse {
1330    #[prost(string, tag = "1")]
1331    pub value: ::prost::alloc::string::String,
1332    #[prost(bool, tag = "2")]
1333    pub cancelled: bool,
1334}
1335/// Request to show a progress indicator.
1336#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1337pub struct ShowProgressRequest {
1338    #[prost(uint32, tag = "1")]
1339    pub handle: u32,
1340    #[prost(enumeration = "ProgressLocation", tag = "2")]
1341    pub location: i32,
1342    #[prost(string, tag = "3")]
1343    pub title: ::prost::alloc::string::String,
1344    #[prost(bool, tag = "4")]
1345    pub cancellable: bool,
1346    #[prost(string, tag = "5")]
1347    pub extension_id: ::prost::alloc::string::String,
1348}
1349/// Response acknowledging progress start.
1350#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1351pub struct ShowProgressResponse {
1352    #[prost(uint32, tag = "1")]
1353    pub handle: u32,
1354}
1355/// Request to report progress.
1356#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1357pub struct ReportProgressRequest {
1358    #[prost(uint32, tag = "1")]
1359    pub handle: u32,
1360    #[prost(string, tag = "2")]
1361    pub message: ::prost::alloc::string::String,
1362    #[prost(uint32, tag = "3")]
1363    pub increment: u32,
1364}
1365/// Request to post a message to a webview.
1366#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1367pub struct PostWebviewMessageRequest {
1368    #[prost(uint32, tag = "1")]
1369    pub handle: u32,
1370    #[prost(oneof = "post_webview_message_request::Message", tags = "2, 3")]
1371    pub message: ::core::option::Option<post_webview_message_request::Message>,
1372}
1373/// Nested message and enum types in `PostWebviewMessageRequest`.
1374pub mod post_webview_message_request {
1375    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
1376    pub enum Message {
1377        #[prost(string, tag = "2")]
1378        StringMessage(::prost::alloc::string::String),
1379        #[prost(bytes, tag = "3")]
1380        BytesMessage(::prost::alloc::vec::Vec<u8>),
1381    }
1382}
1383/// Request to dispose a webview panel.
1384#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1385pub struct DisposeWebviewPanelRequest {
1386    #[prost(uint32, tag = "1")]
1387    pub handle: u32,
1388}
1389/// Request to open an external URI.
1390#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1391pub struct OpenExternalRequest {
1392    #[prost(string, tag = "1")]
1393    pub uri: ::prost::alloc::string::String,
1394}
1395/// Request to delete a file.
1396#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1397pub struct DeleteFileRequest {
1398    #[prost(message, optional, tag = "1")]
1399    pub uri: ::core::option::Option<Uri>,
1400    #[prost(bool, tag = "2")]
1401    pub recursive: bool,
1402    #[prost(bool, tag = "3")]
1403    pub use_trash: bool,
1404}
1405/// Request to rename a file.
1406#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1407pub struct RenameFileRequest {
1408    #[prost(message, optional, tag = "1")]
1409    pub source: ::core::option::Option<Uri>,
1410    #[prost(message, optional, tag = "2")]
1411    pub target: ::core::option::Option<Uri>,
1412    #[prost(bool, tag = "3")]
1413    pub overwrite: bool,
1414}
1415/// Request to copy a file.
1416#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1417pub struct CopyFileRequest {
1418    #[prost(message, optional, tag = "1")]
1419    pub source: ::core::option::Option<Uri>,
1420    #[prost(message, optional, tag = "2")]
1421    pub target: ::core::option::Option<Uri>,
1422    #[prost(bool, tag = "3")]
1423    pub overwrite: bool,
1424}
1425/// Request to create a directory.
1426#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1427pub struct CreateDirectoryRequest {
1428    #[prost(message, optional, tag = "1")]
1429    pub uri: ::core::option::Option<Uri>,
1430}
1431/// Request to create an output channel.
1432#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1433pub struct CreateOutputChannelRequest {
1434    #[prost(string, tag = "1")]
1435    pub name: ::prost::alloc::string::String,
1436    #[prost(string, tag = "2")]
1437    pub language_id: ::prost::alloc::string::String,
1438    #[prost(string, tag = "3")]
1439    pub extension_id: ::prost::alloc::string::String,
1440}
1441/// Response with channel ID.
1442#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1443pub struct CreateOutputChannelResponse {
1444    #[prost(string, tag = "1")]
1445    pub channel_id: ::prost::alloc::string::String,
1446}
1447/// Request to append to an output channel.
1448#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1449pub struct AppendOutputRequest {
1450    #[prost(string, tag = "1")]
1451    pub channel_id: ::prost::alloc::string::String,
1452    #[prost(string, tag = "2")]
1453    pub value: ::prost::alloc::string::String,
1454}
1455/// Request to clear an output channel.
1456#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1457pub struct ClearOutputRequest {
1458    #[prost(string, tag = "1")]
1459    pub channel_id: ::prost::alloc::string::String,
1460}
1461/// Request to show an output channel.
1462#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1463pub struct ShowOutputRequest {
1464    #[prost(string, tag = "1")]
1465    pub channel_id: ::prost::alloc::string::String,
1466    #[prost(bool, tag = "2")]
1467    pub preserve_focus: bool,
1468}
1469/// Request to dispose an output channel.
1470#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1471pub struct DisposeOutputRequest {
1472    #[prost(string, tag = "1")]
1473    pub channel_id: ::prost::alloc::string::String,
1474}
1475/// A task definition.
1476#[derive(Clone, PartialEq, ::prost::Message)]
1477pub struct TaskDefinition {
1478    #[prost(string, tag = "1")]
1479    pub r#type: ::prost::alloc::string::String,
1480    #[prost(map = "string, string", tag = "2")]
1481    pub attributes: ::std::collections::HashMap<
1482        ::prost::alloc::string::String,
1483        ::prost::alloc::string::String,
1484    >,
1485}
1486/// Request to register a task provider.
1487#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1488pub struct RegisterTaskProviderRequest {
1489    #[prost(string, tag = "1")]
1490    pub r#type: ::prost::alloc::string::String,
1491    #[prost(string, tag = "2")]
1492    pub extension_id: ::prost::alloc::string::String,
1493}
1494/// Request to execute a task.
1495#[derive(Clone, PartialEq, ::prost::Message)]
1496pub struct ExecuteTaskRequest {
1497    #[prost(message, optional, tag = "1")]
1498    pub definition: ::core::option::Option<TaskDefinition>,
1499    #[prost(string, tag = "2")]
1500    pub name: ::prost::alloc::string::String,
1501    #[prost(string, tag = "3")]
1502    pub source: ::prost::alloc::string::String,
1503}
1504/// Response with task execution.
1505#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1506pub struct ExecuteTaskResponse {
1507    #[prost(uint32, tag = "1")]
1508    pub task_id: u32,
1509    #[prost(bool, tag = "2")]
1510    pub success: bool,
1511}
1512/// Request to terminate a task.
1513#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1514pub struct TerminateTaskRequest {
1515    #[prost(uint32, tag = "1")]
1516    pub task_id: u32,
1517}
1518/// Request to get an authentication session.
1519#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1520pub struct GetAuthenticationSessionRequest {
1521    #[prost(string, tag = "1")]
1522    pub provider_id: ::prost::alloc::string::String,
1523    #[prost(string, repeated, tag = "2")]
1524    pub scopes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1525    #[prost(string, tag = "3")]
1526    pub extension_id: ::prost::alloc::string::String,
1527    #[prost(bool, tag = "4")]
1528    pub create_if_none: bool,
1529    #[prost(bool, tag = "5")]
1530    pub clear_session_preference: bool,
1531}
1532/// Response with authentication session.
1533#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1534pub struct GetAuthenticationSessionResponse {
1535    #[prost(string, tag = "1")]
1536    pub id: ::prost::alloc::string::String,
1537    #[prost(string, tag = "2")]
1538    pub access_token: ::prost::alloc::string::String,
1539    #[prost(string, tag = "3")]
1540    pub account_label: ::prost::alloc::string::String,
1541    #[prost(string, tag = "4")]
1542    pub account_id: ::prost::alloc::string::String,
1543    #[prost(string, repeated, tag = "5")]
1544    pub scopes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1545}
1546/// Request to register an authentication provider.
1547#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1548pub struct RegisterAuthenticationProviderRequest {
1549    #[prost(string, tag = "1")]
1550    pub id: ::prost::alloc::string::String,
1551    #[prost(string, tag = "2")]
1552    pub label: ::prost::alloc::string::String,
1553    #[prost(bool, tag = "3")]
1554    pub supports_multiple_accounts: bool,
1555    #[prost(string, tag = "4")]
1556    pub extension_id: ::prost::alloc::string::String,
1557}
1558/// Request to stop debugging.
1559#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1560pub struct StopDebuggingRequest {
1561    #[prost(string, tag = "1")]
1562    pub session_id: ::prost::alloc::string::String,
1563}
1564/// Request to get an extension.
1565#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1566pub struct GetExtensionRequest {
1567    #[prost(string, tag = "1")]
1568    pub extension_id: ::prost::alloc::string::String,
1569}
1570/// Extension information.
1571#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1572pub struct ExtensionInfo {
1573    #[prost(string, tag = "1")]
1574    pub id: ::prost::alloc::string::String,
1575    #[prost(string, tag = "2")]
1576    pub display_name: ::prost::alloc::string::String,
1577    #[prost(string, tag = "3")]
1578    pub version: ::prost::alloc::string::String,
1579    #[prost(bool, tag = "4")]
1580    pub is_active: bool,
1581    #[prost(string, tag = "5")]
1582    pub extension_path: ::prost::alloc::string::String,
1583}
1584/// Response with extension info.
1585#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1586pub struct GetExtensionResponse {
1587    #[prost(message, optional, tag = "1")]
1588    pub extension: ::core::option::Option<ExtensionInfo>,
1589}
1590/// Response with all extensions.
1591#[derive(Clone, PartialEq, ::prost::Message)]
1592pub struct GetAllExtensionsResponse {
1593    #[prost(message, repeated, tag = "1")]
1594    pub extensions: ::prost::alloc::vec::Vec<ExtensionInfo>,
1595}
1596/// Request to resize a terminal.
1597#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1598pub struct ResizeTerminalRequest {
1599    #[prost(uint32, tag = "1")]
1600    pub terminal_id: u32,
1601    #[prost(uint32, tag = "2")]
1602    pub cols: u32,
1603    #[prost(uint32, tag = "3")]
1604    pub rows: u32,
1605}
1606/// Request to get a configuration value.
1607#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1608pub struct GetConfigurationRequest {
1609    #[prost(string, tag = "1")]
1610    pub section: ::prost::alloc::string::String,
1611    #[prost(string, tag = "2")]
1612    pub key: ::prost::alloc::string::String,
1613}
1614/// Response with configuration value.
1615#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1616pub struct GetConfigurationResponse {
1617    #[prost(bytes = "vec", tag = "1")]
1618    pub value: ::prost::alloc::vec::Vec<u8>,
1619}
1620/// Context passed when requesting inline completions.
1621#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1622pub struct InlineCompletionContext {
1623    /// 0 = Invoke (user explicitly triggered), 1 = Automatic (cursor pause)
1624    #[prost(int32, tag = "1")]
1625    pub trigger_kind: i32,
1626    /// JSON-serialised SelectedCompletionInfo if a completion is already showing.
1627    #[prost(string, tag = "2")]
1628    pub selected_completion_info: ::prost::alloc::string::String,
1629}
1630/// Request for inline completion items (e.g. GitHub Copilot ghost text).
1631#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1632pub struct ProvideInlineCompletionRequest {
1633    #[prost(message, optional, tag = "1")]
1634    pub uri: ::core::option::Option<Uri>,
1635    #[prost(message, optional, tag = "2")]
1636    pub position: ::core::option::Option<Position>,
1637    #[prost(uint32, tag = "3")]
1638    pub provider_handle: u32,
1639    #[prost(message, optional, tag = "4")]
1640    pub context: ::core::option::Option<InlineCompletionContext>,
1641}
1642/// A single inline completion suggestion.
1643#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1644pub struct InlineCompletionItem {
1645    /// The text to insert. May be a plain string or a SnippetString.
1646    #[prost(string, tag = "1")]
1647    pub insert_text: ::prost::alloc::string::String,
1648    /// The range to replace (optional; defaults to cursor position if empty).
1649    #[prost(message, optional, tag = "2")]
1650    pub range: ::core::option::Option<Range>,
1651    /// Command to execute after accepting the completion (e.g. trigger suggest).
1652    #[prost(string, tag = "3")]
1653    pub command: ::prost::alloc::string::String,
1654    /// Whether InsertText is a snippet string.
1655    #[prost(bool, tag = "4")]
1656    pub is_snippet: bool,
1657}
1658/// Response carrying inline completion items.
1659#[derive(Clone, PartialEq, ::prost::Message)]
1660pub struct ProvideInlineCompletionResponse {
1661    #[prost(message, repeated, tag = "1")]
1662    pub items: ::prost::alloc::vec::Vec<InlineCompletionItem>,
1663}
1664/// A view column (editor location).
1665#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1666#[repr(i32)]
1667pub enum ViewColumn {
1668    Undefined = 0,
1669    Active = 1,
1670    One = 2,
1671    Two = 3,
1672    Three = 4,
1673    Four = 5,
1674    Five = 6,
1675    Six = 7,
1676    Seven = 8,
1677    Eight = 9,
1678    Nine = 10,
1679}
1680impl ViewColumn {
1681    /// String value of the enum field names used in the ProtoBuf definition.
1682    ///
1683    /// The values are not transformed in any way and thus are considered stable
1684    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1685    pub fn as_str_name(&self) -> &'static str {
1686        match self {
1687            Self::Undefined => "VIEW_COLUMN_UNDEFINED",
1688            Self::Active => "VIEW_COLUMN_ACTIVE",
1689            Self::One => "VIEW_COLUMN_ONE",
1690            Self::Two => "VIEW_COLUMN_TWO",
1691            Self::Three => "VIEW_COLUMN_THREE",
1692            Self::Four => "VIEW_COLUMN_FOUR",
1693            Self::Five => "VIEW_COLUMN_FIVE",
1694            Self::Six => "VIEW_COLUMN_SIX",
1695            Self::Seven => "VIEW_COLUMN_SEVEN",
1696            Self::Eight => "VIEW_COLUMN_EIGHT",
1697            Self::Nine => "VIEW_COLUMN_NINE",
1698        }
1699    }
1700    /// Creates an enum from field names used in the ProtoBuf definition.
1701    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1702        match value {
1703            "VIEW_COLUMN_UNDEFINED" => Some(Self::Undefined),
1704            "VIEW_COLUMN_ACTIVE" => Some(Self::Active),
1705            "VIEW_COLUMN_ONE" => Some(Self::One),
1706            "VIEW_COLUMN_TWO" => Some(Self::Two),
1707            "VIEW_COLUMN_THREE" => Some(Self::Three),
1708            "VIEW_COLUMN_FOUR" => Some(Self::Four),
1709            "VIEW_COLUMN_FIVE" => Some(Self::Five),
1710            "VIEW_COLUMN_SIX" => Some(Self::Six),
1711            "VIEW_COLUMN_SEVEN" => Some(Self::Seven),
1712            "VIEW_COLUMN_EIGHT" => Some(Self::Eight),
1713            "VIEW_COLUMN_NINE" => Some(Self::Nine),
1714            _ => None,
1715        }
1716    }
1717}
1718/// Text document save reason.
1719#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1720#[repr(i32)]
1721pub enum TextDocumentSaveReason {
1722    SaveReasonManual = 0,
1723    SaveReasonAfterDelay = 1,
1724    SaveReasonFocusOut = 2,
1725}
1726impl TextDocumentSaveReason {
1727    /// String value of the enum field names used in the ProtoBuf definition.
1728    ///
1729    /// The values are not transformed in any way and thus are considered stable
1730    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1731    pub fn as_str_name(&self) -> &'static str {
1732        match self {
1733            Self::SaveReasonManual => "SAVE_REASON_MANUAL",
1734            Self::SaveReasonAfterDelay => "SAVE_REASON_AFTER_DELAY",
1735            Self::SaveReasonFocusOut => "SAVE_REASON_FOCUS_OUT",
1736        }
1737    }
1738    /// Creates an enum from field names used in the ProtoBuf definition.
1739    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1740        match value {
1741            "SAVE_REASON_MANUAL" => Some(Self::SaveReasonManual),
1742            "SAVE_REASON_AFTER_DELAY" => Some(Self::SaveReasonAfterDelay),
1743            "SAVE_REASON_FOCUS_OUT" => Some(Self::SaveReasonFocusOut),
1744            _ => None,
1745        }
1746    }
1747}
1748/// Progress location.
1749#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1750#[repr(i32)]
1751pub enum ProgressLocation {
1752    Notification = 0,
1753    SourceControl = 1,
1754    Window = 2,
1755}
1756impl ProgressLocation {
1757    /// String value of the enum field names used in the ProtoBuf definition.
1758    ///
1759    /// The values are not transformed in any way and thus are considered stable
1760    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1761    pub fn as_str_name(&self) -> &'static str {
1762        match self {
1763            Self::Notification => "PROGRESS_LOCATION_NOTIFICATION",
1764            Self::SourceControl => "PROGRESS_LOCATION_SOURCE_CONTROL",
1765            Self::Window => "PROGRESS_LOCATION_WINDOW",
1766        }
1767    }
1768    /// Creates an enum from field names used in the ProtoBuf definition.
1769    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1770        match value {
1771            "PROGRESS_LOCATION_NOTIFICATION" => Some(Self::Notification),
1772            "PROGRESS_LOCATION_SOURCE_CONTROL" => Some(Self::SourceControl),
1773            "PROGRESS_LOCATION_WINDOW" => Some(Self::Window),
1774            _ => None,
1775        }
1776    }
1777}
1778/// Generated client implementations.
1779pub mod mountain_service_client {
1780    #![allow(
1781        unused_variables,
1782        dead_code,
1783        missing_docs,
1784        clippy::wildcard_imports,
1785        clippy::let_unit_value,
1786    )]
1787    use tonic::codegen::*;
1788    use tonic::codegen::http::Uri;
1789    /// Service running on the Mountain host, listening for requests from Cocoon.
1790    #[derive(Debug, Clone)]
1791    pub struct MountainServiceClient<T> {
1792        inner: tonic::client::Grpc<T>,
1793    }
1794    impl MountainServiceClient<tonic::transport::Channel> {
1795        /// Attempt to create a new client by connecting to a given endpoint.
1796        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1797        where
1798            D: TryInto<tonic::transport::Endpoint>,
1799            D::Error: Into<StdError>,
1800        {
1801            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1802            Ok(Self::new(conn))
1803        }
1804    }
1805    impl<T> MountainServiceClient<T>
1806    where
1807        T: tonic::client::GrpcService<tonic::body::Body>,
1808        T::Error: Into<StdError>,
1809        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1810        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1811    {
1812        pub fn new(inner: T) -> Self {
1813            let inner = tonic::client::Grpc::new(inner);
1814            Self { inner }
1815        }
1816        pub fn with_origin(inner: T, origin: Uri) -> Self {
1817            let inner = tonic::client::Grpc::with_origin(inner, origin);
1818            Self { inner }
1819        }
1820        pub fn with_interceptor<F>(
1821            inner: T,
1822            interceptor: F,
1823        ) -> MountainServiceClient<InterceptedService<T, F>>
1824        where
1825            F: tonic::service::Interceptor,
1826            T::ResponseBody: Default,
1827            T: tonic::codegen::Service<
1828                http::Request<tonic::body::Body>,
1829                Response = http::Response<
1830                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1831                >,
1832            >,
1833            <T as tonic::codegen::Service<
1834                http::Request<tonic::body::Body>,
1835            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1836        {
1837            MountainServiceClient::new(InterceptedService::new(inner, interceptor))
1838        }
1839        /// Compress requests with the given encoding.
1840        ///
1841        /// This requires the server to support it otherwise it might respond with an
1842        /// error.
1843        #[must_use]
1844        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1845            self.inner = self.inner.send_compressed(encoding);
1846            self
1847        }
1848        /// Enable decompressing responses.
1849        #[must_use]
1850        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1851            self.inner = self.inner.accept_compressed(encoding);
1852            self
1853        }
1854        /// Limits the maximum size of a decoded message.
1855        ///
1856        /// Default: `4MB`
1857        #[must_use]
1858        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1859            self.inner = self.inner.max_decoding_message_size(limit);
1860            self
1861        }
1862        /// Limits the maximum size of an encoded message.
1863        ///
1864        /// Default: `usize::MAX`
1865        #[must_use]
1866        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1867            self.inner = self.inner.max_encoding_message_size(limit);
1868            self
1869        }
1870        /// A generic request-response method for Cocoon to call a function on Mountain.
1871        pub async fn process_cocoon_request(
1872            &mut self,
1873            request: impl tonic::IntoRequest<super::GenericRequest>,
1874        ) -> std::result::Result<
1875            tonic::Response<super::GenericResponse>,
1876            tonic::Status,
1877        > {
1878            self.inner
1879                .ready()
1880                .await
1881                .map_err(|e| {
1882                    tonic::Status::unknown(
1883                        format!("Service was not ready: {}", e.into()),
1884                    )
1885                })?;
1886            let codec = tonic_prost::ProstCodec::default();
1887            let path = http::uri::PathAndQuery::from_static(
1888                "/Vine.MountainService/ProcessCocoonRequest",
1889            );
1890            let mut req = request.into_request();
1891            req.extensions_mut()
1892                .insert(GrpcMethod::new("Vine.MountainService", "ProcessCocoonRequest"));
1893            self.inner.unary(req, path, codec).await
1894        }
1895        /// A generic fire-and-forget method for Cocoon to send a notification to Mountain.
1896        pub async fn send_cocoon_notification(
1897            &mut self,
1898            request: impl tonic::IntoRequest<super::GenericNotification>,
1899        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1900            self.inner
1901                .ready()
1902                .await
1903                .map_err(|e| {
1904                    tonic::Status::unknown(
1905                        format!("Service was not ready: {}", e.into()),
1906                    )
1907                })?;
1908            let codec = tonic_prost::ProstCodec::default();
1909            let path = http::uri::PathAndQuery::from_static(
1910                "/Vine.MountainService/SendCocoonNotification",
1911            );
1912            let mut req = request.into_request();
1913            req.extensions_mut()
1914                .insert(
1915                    GrpcMethod::new("Vine.MountainService", "SendCocoonNotification"),
1916                );
1917            self.inner.unary(req, path, codec).await
1918        }
1919        /// A method for Cocoon to request that Mountain cancel a long-running operation.
1920        pub async fn cancel_operation(
1921            &mut self,
1922            request: impl tonic::IntoRequest<super::CancelOperationRequest>,
1923        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1924            self.inner
1925                .ready()
1926                .await
1927                .map_err(|e| {
1928                    tonic::Status::unknown(
1929                        format!("Service was not ready: {}", e.into()),
1930                    )
1931                })?;
1932            let codec = tonic_prost::ProstCodec::default();
1933            let path = http::uri::PathAndQuery::from_static(
1934                "/Vine.MountainService/CancelOperation",
1935            );
1936            let mut req = request.into_request();
1937            req.extensions_mut()
1938                .insert(GrpcMethod::new("Vine.MountainService", "CancelOperation"));
1939            self.inner.unary(req, path, codec).await
1940        }
1941        /// LAND-PATCH B7-S6 P2: bidirectional streaming channel.
1942        ///
1943        /// Multiplexes every notification, request, and response over a
1944        /// single h2 stream. Each side reads frames asynchronously and
1945        /// routes by `correlation_id` (request/response) or by
1946        /// `channel` (notification fan-out).
1947        ///
1948        /// Replaces the unary methods above for any caller that needs
1949        /// concurrent / parallel dispatch. The unary methods stay for
1950        /// backward compatibility and for callers that explicitly want
1951        /// a single round-trip.
1952        pub async fn open_channel_from_cocoon(
1953            &mut self,
1954            request: impl tonic::IntoStreamingRequest<Message = super::Envelope>,
1955        ) -> std::result::Result<
1956            tonic::Response<tonic::codec::Streaming<super::Envelope>>,
1957            tonic::Status,
1958        > {
1959            self.inner
1960                .ready()
1961                .await
1962                .map_err(|e| {
1963                    tonic::Status::unknown(
1964                        format!("Service was not ready: {}", e.into()),
1965                    )
1966                })?;
1967            let codec = tonic_prost::ProstCodec::default();
1968            let path = http::uri::PathAndQuery::from_static(
1969                "/Vine.MountainService/OpenChannelFromCocoon",
1970            );
1971            let mut req = request.into_streaming_request();
1972            req.extensions_mut()
1973                .insert(
1974                    GrpcMethod::new("Vine.MountainService", "OpenChannelFromCocoon"),
1975                );
1976            self.inner.streaming(req, path, codec).await
1977        }
1978    }
1979}
1980/// Generated server implementations.
1981pub mod mountain_service_server {
1982    #![allow(
1983        unused_variables,
1984        dead_code,
1985        missing_docs,
1986        clippy::wildcard_imports,
1987        clippy::let_unit_value,
1988    )]
1989    use tonic::codegen::*;
1990    /// Generated trait containing gRPC methods that should be implemented for use with MountainServiceServer.
1991    #[async_trait]
1992    pub trait MountainService: std::marker::Send + std::marker::Sync + 'static {
1993        /// A generic request-response method for Cocoon to call a function on Mountain.
1994        async fn process_cocoon_request(
1995            &self,
1996            request: tonic::Request<super::GenericRequest>,
1997        ) -> std::result::Result<tonic::Response<super::GenericResponse>, tonic::Status>;
1998        /// A generic fire-and-forget method for Cocoon to send a notification to Mountain.
1999        async fn send_cocoon_notification(
2000            &self,
2001            request: tonic::Request<super::GenericNotification>,
2002        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2003        /// A method for Cocoon to request that Mountain cancel a long-running operation.
2004        async fn cancel_operation(
2005            &self,
2006            request: tonic::Request<super::CancelOperationRequest>,
2007        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2008        /// Server streaming response type for the OpenChannelFromCocoon method.
2009        type OpenChannelFromCocoonStream: tonic::codegen::tokio_stream::Stream<
2010                Item = std::result::Result<super::Envelope, tonic::Status>,
2011            >
2012            + std::marker::Send
2013            + 'static;
2014        /// LAND-PATCH B7-S6 P2: bidirectional streaming channel.
2015        ///
2016        /// Multiplexes every notification, request, and response over a
2017        /// single h2 stream. Each side reads frames asynchronously and
2018        /// routes by `correlation_id` (request/response) or by
2019        /// `channel` (notification fan-out).
2020        ///
2021        /// Replaces the unary methods above for any caller that needs
2022        /// concurrent / parallel dispatch. The unary methods stay for
2023        /// backward compatibility and for callers that explicitly want
2024        /// a single round-trip.
2025        async fn open_channel_from_cocoon(
2026            &self,
2027            request: tonic::Request<tonic::Streaming<super::Envelope>>,
2028        ) -> std::result::Result<
2029            tonic::Response<Self::OpenChannelFromCocoonStream>,
2030            tonic::Status,
2031        >;
2032    }
2033    /// Service running on the Mountain host, listening for requests from Cocoon.
2034    #[derive(Debug)]
2035    pub struct MountainServiceServer<T> {
2036        inner: Arc<T>,
2037        accept_compression_encodings: EnabledCompressionEncodings,
2038        send_compression_encodings: EnabledCompressionEncodings,
2039        max_decoding_message_size: Option<usize>,
2040        max_encoding_message_size: Option<usize>,
2041    }
2042    impl<T> MountainServiceServer<T> {
2043        pub fn new(inner: T) -> Self {
2044            Self::from_arc(Arc::new(inner))
2045        }
2046        pub fn from_arc(inner: Arc<T>) -> Self {
2047            Self {
2048                inner,
2049                accept_compression_encodings: Default::default(),
2050                send_compression_encodings: Default::default(),
2051                max_decoding_message_size: None,
2052                max_encoding_message_size: None,
2053            }
2054        }
2055        pub fn with_interceptor<F>(
2056            inner: T,
2057            interceptor: F,
2058        ) -> InterceptedService<Self, F>
2059        where
2060            F: tonic::service::Interceptor,
2061        {
2062            InterceptedService::new(Self::new(inner), interceptor)
2063        }
2064        /// Enable decompressing requests with the given encoding.
2065        #[must_use]
2066        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2067            self.accept_compression_encodings.enable(encoding);
2068            self
2069        }
2070        /// Compress responses with the given encoding, if the client supports it.
2071        #[must_use]
2072        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2073            self.send_compression_encodings.enable(encoding);
2074            self
2075        }
2076        /// Limits the maximum size of a decoded message.
2077        ///
2078        /// Default: `4MB`
2079        #[must_use]
2080        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2081            self.max_decoding_message_size = Some(limit);
2082            self
2083        }
2084        /// Limits the maximum size of an encoded message.
2085        ///
2086        /// Default: `usize::MAX`
2087        #[must_use]
2088        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2089            self.max_encoding_message_size = Some(limit);
2090            self
2091        }
2092    }
2093    impl<T, B> tonic::codegen::Service<http::Request<B>> for MountainServiceServer<T>
2094    where
2095        T: MountainService,
2096        B: Body + std::marker::Send + 'static,
2097        B::Error: Into<StdError> + std::marker::Send + 'static,
2098    {
2099        type Response = http::Response<tonic::body::Body>;
2100        type Error = std::convert::Infallible;
2101        type Future = BoxFuture<Self::Response, Self::Error>;
2102        fn poll_ready(
2103            &mut self,
2104            _cx: &mut Context<'_>,
2105        ) -> Poll<std::result::Result<(), Self::Error>> {
2106            Poll::Ready(Ok(()))
2107        }
2108        fn call(&mut self, req: http::Request<B>) -> Self::Future {
2109            match req.uri().path() {
2110                "/Vine.MountainService/ProcessCocoonRequest" => {
2111                    #[allow(non_camel_case_types)]
2112                    struct ProcessCocoonRequestSvc<T: MountainService>(pub Arc<T>);
2113                    impl<
2114                        T: MountainService,
2115                    > tonic::server::UnaryService<super::GenericRequest>
2116                    for ProcessCocoonRequestSvc<T> {
2117                        type Response = super::GenericResponse;
2118                        type Future = BoxFuture<
2119                            tonic::Response<Self::Response>,
2120                            tonic::Status,
2121                        >;
2122                        fn call(
2123                            &mut self,
2124                            request: tonic::Request<super::GenericRequest>,
2125                        ) -> Self::Future {
2126                            let inner = Arc::clone(&self.0);
2127                            let fut = async move {
2128                                <T as MountainService>::process_cocoon_request(
2129                                        &inner,
2130                                        request,
2131                                    )
2132                                    .await
2133                            };
2134                            Box::pin(fut)
2135                        }
2136                    }
2137                    let accept_compression_encodings = self.accept_compression_encodings;
2138                    let send_compression_encodings = self.send_compression_encodings;
2139                    let max_decoding_message_size = self.max_decoding_message_size;
2140                    let max_encoding_message_size = self.max_encoding_message_size;
2141                    let inner = self.inner.clone();
2142                    let fut = async move {
2143                        let method = ProcessCocoonRequestSvc(inner);
2144                        let codec = tonic_prost::ProstCodec::default();
2145                        let mut grpc = tonic::server::Grpc::new(codec)
2146                            .apply_compression_config(
2147                                accept_compression_encodings,
2148                                send_compression_encodings,
2149                            )
2150                            .apply_max_message_size_config(
2151                                max_decoding_message_size,
2152                                max_encoding_message_size,
2153                            );
2154                        let res = grpc.unary(method, req).await;
2155                        Ok(res)
2156                    };
2157                    Box::pin(fut)
2158                }
2159                "/Vine.MountainService/SendCocoonNotification" => {
2160                    #[allow(non_camel_case_types)]
2161                    struct SendCocoonNotificationSvc<T: MountainService>(pub Arc<T>);
2162                    impl<
2163                        T: MountainService,
2164                    > tonic::server::UnaryService<super::GenericNotification>
2165                    for SendCocoonNotificationSvc<T> {
2166                        type Response = super::Empty;
2167                        type Future = BoxFuture<
2168                            tonic::Response<Self::Response>,
2169                            tonic::Status,
2170                        >;
2171                        fn call(
2172                            &mut self,
2173                            request: tonic::Request<super::GenericNotification>,
2174                        ) -> Self::Future {
2175                            let inner = Arc::clone(&self.0);
2176                            let fut = async move {
2177                                <T as MountainService>::send_cocoon_notification(
2178                                        &inner,
2179                                        request,
2180                                    )
2181                                    .await
2182                            };
2183                            Box::pin(fut)
2184                        }
2185                    }
2186                    let accept_compression_encodings = self.accept_compression_encodings;
2187                    let send_compression_encodings = self.send_compression_encodings;
2188                    let max_decoding_message_size = self.max_decoding_message_size;
2189                    let max_encoding_message_size = self.max_encoding_message_size;
2190                    let inner = self.inner.clone();
2191                    let fut = async move {
2192                        let method = SendCocoonNotificationSvc(inner);
2193                        let codec = tonic_prost::ProstCodec::default();
2194                        let mut grpc = tonic::server::Grpc::new(codec)
2195                            .apply_compression_config(
2196                                accept_compression_encodings,
2197                                send_compression_encodings,
2198                            )
2199                            .apply_max_message_size_config(
2200                                max_decoding_message_size,
2201                                max_encoding_message_size,
2202                            );
2203                        let res = grpc.unary(method, req).await;
2204                        Ok(res)
2205                    };
2206                    Box::pin(fut)
2207                }
2208                "/Vine.MountainService/CancelOperation" => {
2209                    #[allow(non_camel_case_types)]
2210                    struct CancelOperationSvc<T: MountainService>(pub Arc<T>);
2211                    impl<
2212                        T: MountainService,
2213                    > tonic::server::UnaryService<super::CancelOperationRequest>
2214                    for CancelOperationSvc<T> {
2215                        type Response = super::Empty;
2216                        type Future = BoxFuture<
2217                            tonic::Response<Self::Response>,
2218                            tonic::Status,
2219                        >;
2220                        fn call(
2221                            &mut self,
2222                            request: tonic::Request<super::CancelOperationRequest>,
2223                        ) -> Self::Future {
2224                            let inner = Arc::clone(&self.0);
2225                            let fut = async move {
2226                                <T as MountainService>::cancel_operation(&inner, request)
2227                                    .await
2228                            };
2229                            Box::pin(fut)
2230                        }
2231                    }
2232                    let accept_compression_encodings = self.accept_compression_encodings;
2233                    let send_compression_encodings = self.send_compression_encodings;
2234                    let max_decoding_message_size = self.max_decoding_message_size;
2235                    let max_encoding_message_size = self.max_encoding_message_size;
2236                    let inner = self.inner.clone();
2237                    let fut = async move {
2238                        let method = CancelOperationSvc(inner);
2239                        let codec = tonic_prost::ProstCodec::default();
2240                        let mut grpc = tonic::server::Grpc::new(codec)
2241                            .apply_compression_config(
2242                                accept_compression_encodings,
2243                                send_compression_encodings,
2244                            )
2245                            .apply_max_message_size_config(
2246                                max_decoding_message_size,
2247                                max_encoding_message_size,
2248                            );
2249                        let res = grpc.unary(method, req).await;
2250                        Ok(res)
2251                    };
2252                    Box::pin(fut)
2253                }
2254                "/Vine.MountainService/OpenChannelFromCocoon" => {
2255                    #[allow(non_camel_case_types)]
2256                    struct OpenChannelFromCocoonSvc<T: MountainService>(pub Arc<T>);
2257                    impl<
2258                        T: MountainService,
2259                    > tonic::server::StreamingService<super::Envelope>
2260                    for OpenChannelFromCocoonSvc<T> {
2261                        type Response = super::Envelope;
2262                        type ResponseStream = T::OpenChannelFromCocoonStream;
2263                        type Future = BoxFuture<
2264                            tonic::Response<Self::ResponseStream>,
2265                            tonic::Status,
2266                        >;
2267                        fn call(
2268                            &mut self,
2269                            request: tonic::Request<tonic::Streaming<super::Envelope>>,
2270                        ) -> Self::Future {
2271                            let inner = Arc::clone(&self.0);
2272                            let fut = async move {
2273                                <T as MountainService>::open_channel_from_cocoon(
2274                                        &inner,
2275                                        request,
2276                                    )
2277                                    .await
2278                            };
2279                            Box::pin(fut)
2280                        }
2281                    }
2282                    let accept_compression_encodings = self.accept_compression_encodings;
2283                    let send_compression_encodings = self.send_compression_encodings;
2284                    let max_decoding_message_size = self.max_decoding_message_size;
2285                    let max_encoding_message_size = self.max_encoding_message_size;
2286                    let inner = self.inner.clone();
2287                    let fut = async move {
2288                        let method = OpenChannelFromCocoonSvc(inner);
2289                        let codec = tonic_prost::ProstCodec::default();
2290                        let mut grpc = tonic::server::Grpc::new(codec)
2291                            .apply_compression_config(
2292                                accept_compression_encodings,
2293                                send_compression_encodings,
2294                            )
2295                            .apply_max_message_size_config(
2296                                max_decoding_message_size,
2297                                max_encoding_message_size,
2298                            );
2299                        let res = grpc.streaming(method, req).await;
2300                        Ok(res)
2301                    };
2302                    Box::pin(fut)
2303                }
2304                _ => {
2305                    Box::pin(async move {
2306                        let mut response = http::Response::new(
2307                            tonic::body::Body::default(),
2308                        );
2309                        let headers = response.headers_mut();
2310                        headers
2311                            .insert(
2312                                tonic::Status::GRPC_STATUS,
2313                                (tonic::Code::Unimplemented as i32).into(),
2314                            );
2315                        headers
2316                            .insert(
2317                                http::header::CONTENT_TYPE,
2318                                tonic::metadata::GRPC_CONTENT_TYPE,
2319                            );
2320                        Ok(response)
2321                    })
2322                }
2323            }
2324        }
2325    }
2326    impl<T> Clone for MountainServiceServer<T> {
2327        fn clone(&self) -> Self {
2328            let inner = self.inner.clone();
2329            Self {
2330                inner,
2331                accept_compression_encodings: self.accept_compression_encodings,
2332                send_compression_encodings: self.send_compression_encodings,
2333                max_decoding_message_size: self.max_decoding_message_size,
2334                max_encoding_message_size: self.max_encoding_message_size,
2335            }
2336        }
2337    }
2338    /// Generated gRPC service name
2339    pub const SERVICE_NAME: &str = "Vine.MountainService";
2340    impl<T> tonic::server::NamedService for MountainServiceServer<T> {
2341        const NAME: &'static str = SERVICE_NAME;
2342    }
2343}
2344/// Generated client implementations.
2345pub mod cocoon_service_client {
2346    #![allow(
2347        unused_variables,
2348        dead_code,
2349        missing_docs,
2350        clippy::wildcard_imports,
2351        clippy::let_unit_value,
2352    )]
2353    use tonic::codegen::*;
2354    use tonic::codegen::http::Uri;
2355    /// Service running on the Cocoon sidecar, listening for requests from Mountain.
2356    #[derive(Debug, Clone)]
2357    pub struct CocoonServiceClient<T> {
2358        inner: tonic::client::Grpc<T>,
2359    }
2360    impl CocoonServiceClient<tonic::transport::Channel> {
2361        /// Attempt to create a new client by connecting to a given endpoint.
2362        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
2363        where
2364            D: TryInto<tonic::transport::Endpoint>,
2365            D::Error: Into<StdError>,
2366        {
2367            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
2368            Ok(Self::new(conn))
2369        }
2370    }
2371    impl<T> CocoonServiceClient<T>
2372    where
2373        T: tonic::client::GrpcService<tonic::body::Body>,
2374        T::Error: Into<StdError>,
2375        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
2376        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
2377    {
2378        pub fn new(inner: T) -> Self {
2379            let inner = tonic::client::Grpc::new(inner);
2380            Self { inner }
2381        }
2382        pub fn with_origin(inner: T, origin: Uri) -> Self {
2383            let inner = tonic::client::Grpc::with_origin(inner, origin);
2384            Self { inner }
2385        }
2386        pub fn with_interceptor<F>(
2387            inner: T,
2388            interceptor: F,
2389        ) -> CocoonServiceClient<InterceptedService<T, F>>
2390        where
2391            F: tonic::service::Interceptor,
2392            T::ResponseBody: Default,
2393            T: tonic::codegen::Service<
2394                http::Request<tonic::body::Body>,
2395                Response = http::Response<
2396                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
2397                >,
2398            >,
2399            <T as tonic::codegen::Service<
2400                http::Request<tonic::body::Body>,
2401            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
2402        {
2403            CocoonServiceClient::new(InterceptedService::new(inner, interceptor))
2404        }
2405        /// Compress requests with the given encoding.
2406        ///
2407        /// This requires the server to support it otherwise it might respond with an
2408        /// error.
2409        #[must_use]
2410        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2411            self.inner = self.inner.send_compressed(encoding);
2412            self
2413        }
2414        /// Enable decompressing responses.
2415        #[must_use]
2416        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2417            self.inner = self.inner.accept_compressed(encoding);
2418            self
2419        }
2420        /// Limits the maximum size of a decoded message.
2421        ///
2422        /// Default: `4MB`
2423        #[must_use]
2424        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2425            self.inner = self.inner.max_decoding_message_size(limit);
2426            self
2427        }
2428        /// Limits the maximum size of an encoded message.
2429        ///
2430        /// Default: `usize::MAX`
2431        #[must_use]
2432        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2433            self.inner = self.inner.max_encoding_message_size(limit);
2434            self
2435        }
2436        /// A generic request-response method for Mountain to call a function on Cocoon.
2437        pub async fn process_mountain_request(
2438            &mut self,
2439            request: impl tonic::IntoRequest<super::GenericRequest>,
2440        ) -> std::result::Result<
2441            tonic::Response<super::GenericResponse>,
2442            tonic::Status,
2443        > {
2444            self.inner
2445                .ready()
2446                .await
2447                .map_err(|e| {
2448                    tonic::Status::unknown(
2449                        format!("Service was not ready: {}", e.into()),
2450                    )
2451                })?;
2452            let codec = tonic_prost::ProstCodec::default();
2453            let path = http::uri::PathAndQuery::from_static(
2454                "/Vine.CocoonService/ProcessMountainRequest",
2455            );
2456            let mut req = request.into_request();
2457            req.extensions_mut()
2458                .insert(GrpcMethod::new("Vine.CocoonService", "ProcessMountainRequest"));
2459            self.inner.unary(req, path, codec).await
2460        }
2461        /// A generic fire-and-forget method for Mountain to send a notification to Cocoon.
2462        pub async fn send_mountain_notification(
2463            &mut self,
2464            request: impl tonic::IntoRequest<super::GenericNotification>,
2465        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2466            self.inner
2467                .ready()
2468                .await
2469                .map_err(|e| {
2470                    tonic::Status::unknown(
2471                        format!("Service was not ready: {}", e.into()),
2472                    )
2473                })?;
2474            let codec = tonic_prost::ProstCodec::default();
2475            let path = http::uri::PathAndQuery::from_static(
2476                "/Vine.CocoonService/SendMountainNotification",
2477            );
2478            let mut req = request.into_request();
2479            req.extensions_mut()
2480                .insert(
2481                    GrpcMethod::new("Vine.CocoonService", "SendMountainNotification"),
2482                );
2483            self.inner.unary(req, path, codec).await
2484        }
2485        /// A method for Mountain to request that Cocoon cancel a long-running operation.
2486        pub async fn cancel_operation(
2487            &mut self,
2488            request: impl tonic::IntoRequest<super::CancelOperationRequest>,
2489        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2490            self.inner
2491                .ready()
2492                .await
2493                .map_err(|e| {
2494                    tonic::Status::unknown(
2495                        format!("Service was not ready: {}", e.into()),
2496                    )
2497                })?;
2498            let codec = tonic_prost::ProstCodec::default();
2499            let path = http::uri::PathAndQuery::from_static(
2500                "/Vine.CocoonService/CancelOperation",
2501            );
2502            let mut req = request.into_request();
2503            req.extensions_mut()
2504                .insert(GrpcMethod::new("Vine.CocoonService", "CancelOperation"));
2505            self.inner.unary(req, path, codec).await
2506        }
2507        /// LAND-PATCH B7-S6 P2: bidirectional streaming channel (mirror of
2508        /// MountainService::OpenChannelFromCocoon). Mountain opens this
2509        /// stream once per Cocoon connection; all subsequent traffic
2510        /// multiplexes over it. Reverses the call direction so Mountain is
2511        /// the streaming initiator (which matches the typical "client
2512        /// opens stream, server replies" gRPC idiom).
2513        pub async fn open_channel_from_mountain(
2514            &mut self,
2515            request: impl tonic::IntoStreamingRequest<Message = super::Envelope>,
2516        ) -> std::result::Result<
2517            tonic::Response<tonic::codec::Streaming<super::Envelope>>,
2518            tonic::Status,
2519        > {
2520            self.inner
2521                .ready()
2522                .await
2523                .map_err(|e| {
2524                    tonic::Status::unknown(
2525                        format!("Service was not ready: {}", e.into()),
2526                    )
2527                })?;
2528            let codec = tonic_prost::ProstCodec::default();
2529            let path = http::uri::PathAndQuery::from_static(
2530                "/Vine.CocoonService/OpenChannelFromMountain",
2531            );
2532            let mut req = request.into_streaming_request();
2533            req.extensions_mut()
2534                .insert(
2535                    GrpcMethod::new("Vine.CocoonService", "OpenChannelFromMountain"),
2536                );
2537            self.inner.streaming(req, path, codec).await
2538        }
2539        /// Handshake - Called by Cocoon to signal readiness
2540        pub async fn initial_handshake(
2541            &mut self,
2542            request: impl tonic::IntoRequest<super::Empty>,
2543        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2544            self.inner
2545                .ready()
2546                .await
2547                .map_err(|e| {
2548                    tonic::Status::unknown(
2549                        format!("Service was not ready: {}", e.into()),
2550                    )
2551                })?;
2552            let codec = tonic_prost::ProstCodec::default();
2553            let path = http::uri::PathAndQuery::from_static(
2554                "/Vine.CocoonService/InitialHandshake",
2555            );
2556            let mut req = request.into_request();
2557            req.extensions_mut()
2558                .insert(GrpcMethod::new("Vine.CocoonService", "InitialHandshake"));
2559            self.inner.unary(req, path, codec).await
2560        }
2561        /// Initialize Extension Host - Mountain sends initialization data to Cocoon
2562        pub async fn init_extension_host(
2563            &mut self,
2564            request: impl tonic::IntoRequest<super::InitExtensionHostRequest>,
2565        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2566            self.inner
2567                .ready()
2568                .await
2569                .map_err(|e| {
2570                    tonic::Status::unknown(
2571                        format!("Service was not ready: {}", e.into()),
2572                    )
2573                })?;
2574            let codec = tonic_prost::ProstCodec::default();
2575            let path = http::uri::PathAndQuery::from_static(
2576                "/Vine.CocoonService/InitExtensionHost",
2577            );
2578            let mut req = request.into_request();
2579            req.extensions_mut()
2580                .insert(GrpcMethod::new("Vine.CocoonService", "InitExtensionHost"));
2581            self.inner.unary(req, path, codec).await
2582        }
2583        /// Register Command - Cocoon registers an extension command
2584        pub async fn register_command(
2585            &mut self,
2586            request: impl tonic::IntoRequest<super::RegisterCommandRequest>,
2587        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2588            self.inner
2589                .ready()
2590                .await
2591                .map_err(|e| {
2592                    tonic::Status::unknown(
2593                        format!("Service was not ready: {}", e.into()),
2594                    )
2595                })?;
2596            let codec = tonic_prost::ProstCodec::default();
2597            let path = http::uri::PathAndQuery::from_static(
2598                "/Vine.CocoonService/RegisterCommand",
2599            );
2600            let mut req = request.into_request();
2601            req.extensions_mut()
2602                .insert(GrpcMethod::new("Vine.CocoonService", "RegisterCommand"));
2603            self.inner.unary(req, path, codec).await
2604        }
2605        /// Execute Contributed Command - Mountain executes an extension command
2606        pub async fn execute_contributed_command(
2607            &mut self,
2608            request: impl tonic::IntoRequest<super::ExecuteCommandRequest>,
2609        ) -> std::result::Result<
2610            tonic::Response<super::ExecuteCommandResponse>,
2611            tonic::Status,
2612        > {
2613            self.inner
2614                .ready()
2615                .await
2616                .map_err(|e| {
2617                    tonic::Status::unknown(
2618                        format!("Service was not ready: {}", e.into()),
2619                    )
2620                })?;
2621            let codec = tonic_prost::ProstCodec::default();
2622            let path = http::uri::PathAndQuery::from_static(
2623                "/Vine.CocoonService/ExecuteContributedCommand",
2624            );
2625            let mut req = request.into_request();
2626            req.extensions_mut()
2627                .insert(
2628                    GrpcMethod::new("Vine.CocoonService", "ExecuteContributedCommand"),
2629                );
2630            self.inner.unary(req, path, codec).await
2631        }
2632        /// Unregister Command - Unregister a previously registered command
2633        pub async fn unregister_command(
2634            &mut self,
2635            request: impl tonic::IntoRequest<super::UnregisterCommandRequest>,
2636        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2637            self.inner
2638                .ready()
2639                .await
2640                .map_err(|e| {
2641                    tonic::Status::unknown(
2642                        format!("Service was not ready: {}", e.into()),
2643                    )
2644                })?;
2645            let codec = tonic_prost::ProstCodec::default();
2646            let path = http::uri::PathAndQuery::from_static(
2647                "/Vine.CocoonService/UnregisterCommand",
2648            );
2649            let mut req = request.into_request();
2650            req.extensions_mut()
2651                .insert(GrpcMethod::new("Vine.CocoonService", "UnregisterCommand"));
2652            self.inner.unary(req, path, codec).await
2653        }
2654        /// Register Hover Provider - Register a hover provider
2655        pub async fn register_hover_provider(
2656            &mut self,
2657            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2658        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2659            self.inner
2660                .ready()
2661                .await
2662                .map_err(|e| {
2663                    tonic::Status::unknown(
2664                        format!("Service was not ready: {}", e.into()),
2665                    )
2666                })?;
2667            let codec = tonic_prost::ProstCodec::default();
2668            let path = http::uri::PathAndQuery::from_static(
2669                "/Vine.CocoonService/RegisterHoverProvider",
2670            );
2671            let mut req = request.into_request();
2672            req.extensions_mut()
2673                .insert(GrpcMethod::new("Vine.CocoonService", "RegisterHoverProvider"));
2674            self.inner.unary(req, path, codec).await
2675        }
2676        /// Provide Hover - Request hover information
2677        pub async fn provide_hover(
2678            &mut self,
2679            request: impl tonic::IntoRequest<super::ProvideHoverRequest>,
2680        ) -> std::result::Result<
2681            tonic::Response<super::ProvideHoverResponse>,
2682            tonic::Status,
2683        > {
2684            self.inner
2685                .ready()
2686                .await
2687                .map_err(|e| {
2688                    tonic::Status::unknown(
2689                        format!("Service was not ready: {}", e.into()),
2690                    )
2691                })?;
2692            let codec = tonic_prost::ProstCodec::default();
2693            let path = http::uri::PathAndQuery::from_static(
2694                "/Vine.CocoonService/ProvideHover",
2695            );
2696            let mut req = request.into_request();
2697            req.extensions_mut()
2698                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideHover"));
2699            self.inner.unary(req, path, codec).await
2700        }
2701        /// Register Completion Item Provider - Register a completion provider
2702        pub async fn register_completion_item_provider(
2703            &mut self,
2704            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2705        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2706            self.inner
2707                .ready()
2708                .await
2709                .map_err(|e| {
2710                    tonic::Status::unknown(
2711                        format!("Service was not ready: {}", e.into()),
2712                    )
2713                })?;
2714            let codec = tonic_prost::ProstCodec::default();
2715            let path = http::uri::PathAndQuery::from_static(
2716                "/Vine.CocoonService/RegisterCompletionItemProvider",
2717            );
2718            let mut req = request.into_request();
2719            req.extensions_mut()
2720                .insert(
2721                    GrpcMethod::new(
2722                        "Vine.CocoonService",
2723                        "RegisterCompletionItemProvider",
2724                    ),
2725                );
2726            self.inner.unary(req, path, codec).await
2727        }
2728        /// Provide Completion Items - Request completion items
2729        pub async fn provide_completion_items(
2730            &mut self,
2731            request: impl tonic::IntoRequest<super::ProvideCompletionItemsRequest>,
2732        ) -> std::result::Result<
2733            tonic::Response<super::ProvideCompletionItemsResponse>,
2734            tonic::Status,
2735        > {
2736            self.inner
2737                .ready()
2738                .await
2739                .map_err(|e| {
2740                    tonic::Status::unknown(
2741                        format!("Service was not ready: {}", e.into()),
2742                    )
2743                })?;
2744            let codec = tonic_prost::ProstCodec::default();
2745            let path = http::uri::PathAndQuery::from_static(
2746                "/Vine.CocoonService/ProvideCompletionItems",
2747            );
2748            let mut req = request.into_request();
2749            req.extensions_mut()
2750                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideCompletionItems"));
2751            self.inner.unary(req, path, codec).await
2752        }
2753        /// Register Definition Provider - Register a definition provider
2754        pub async fn register_definition_provider(
2755            &mut self,
2756            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2757        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2758            self.inner
2759                .ready()
2760                .await
2761                .map_err(|e| {
2762                    tonic::Status::unknown(
2763                        format!("Service was not ready: {}", e.into()),
2764                    )
2765                })?;
2766            let codec = tonic_prost::ProstCodec::default();
2767            let path = http::uri::PathAndQuery::from_static(
2768                "/Vine.CocoonService/RegisterDefinitionProvider",
2769            );
2770            let mut req = request.into_request();
2771            req.extensions_mut()
2772                .insert(
2773                    GrpcMethod::new("Vine.CocoonService", "RegisterDefinitionProvider"),
2774                );
2775            self.inner.unary(req, path, codec).await
2776        }
2777        /// Provide Definition - Request definition location
2778        pub async fn provide_definition(
2779            &mut self,
2780            request: impl tonic::IntoRequest<super::ProvideDefinitionRequest>,
2781        ) -> std::result::Result<
2782            tonic::Response<super::ProvideDefinitionResponse>,
2783            tonic::Status,
2784        > {
2785            self.inner
2786                .ready()
2787                .await
2788                .map_err(|e| {
2789                    tonic::Status::unknown(
2790                        format!("Service was not ready: {}", e.into()),
2791                    )
2792                })?;
2793            let codec = tonic_prost::ProstCodec::default();
2794            let path = http::uri::PathAndQuery::from_static(
2795                "/Vine.CocoonService/ProvideDefinition",
2796            );
2797            let mut req = request.into_request();
2798            req.extensions_mut()
2799                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideDefinition"));
2800            self.inner.unary(req, path, codec).await
2801        }
2802        /// Register Reference Provider - Register a reference provider
2803        pub async fn register_reference_provider(
2804            &mut self,
2805            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2806        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2807            self.inner
2808                .ready()
2809                .await
2810                .map_err(|e| {
2811                    tonic::Status::unknown(
2812                        format!("Service was not ready: {}", e.into()),
2813                    )
2814                })?;
2815            let codec = tonic_prost::ProstCodec::default();
2816            let path = http::uri::PathAndQuery::from_static(
2817                "/Vine.CocoonService/RegisterReferenceProvider",
2818            );
2819            let mut req = request.into_request();
2820            req.extensions_mut()
2821                .insert(
2822                    GrpcMethod::new("Vine.CocoonService", "RegisterReferenceProvider"),
2823                );
2824            self.inner.unary(req, path, codec).await
2825        }
2826        /// Provide References - Request references
2827        pub async fn provide_references(
2828            &mut self,
2829            request: impl tonic::IntoRequest<super::ProvideReferencesRequest>,
2830        ) -> std::result::Result<
2831            tonic::Response<super::ProvideReferencesResponse>,
2832            tonic::Status,
2833        > {
2834            self.inner
2835                .ready()
2836                .await
2837                .map_err(|e| {
2838                    tonic::Status::unknown(
2839                        format!("Service was not ready: {}", e.into()),
2840                    )
2841                })?;
2842            let codec = tonic_prost::ProstCodec::default();
2843            let path = http::uri::PathAndQuery::from_static(
2844                "/Vine.CocoonService/ProvideReferences",
2845            );
2846            let mut req = request.into_request();
2847            req.extensions_mut()
2848                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideReferences"));
2849            self.inner.unary(req, path, codec).await
2850        }
2851        /// Register Code Actions Provider - Register code actions provider
2852        pub async fn register_code_actions_provider(
2853            &mut self,
2854            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2855        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2856            self.inner
2857                .ready()
2858                .await
2859                .map_err(|e| {
2860                    tonic::Status::unknown(
2861                        format!("Service was not ready: {}", e.into()),
2862                    )
2863                })?;
2864            let codec = tonic_prost::ProstCodec::default();
2865            let path = http::uri::PathAndQuery::from_static(
2866                "/Vine.CocoonService/RegisterCodeActionsProvider",
2867            );
2868            let mut req = request.into_request();
2869            req.extensions_mut()
2870                .insert(
2871                    GrpcMethod::new("Vine.CocoonService", "RegisterCodeActionsProvider"),
2872                );
2873            self.inner.unary(req, path, codec).await
2874        }
2875        /// Provide Code Actions - Request code actions
2876        pub async fn provide_code_actions(
2877            &mut self,
2878            request: impl tonic::IntoRequest<super::ProvideCodeActionsRequest>,
2879        ) -> std::result::Result<
2880            tonic::Response<super::ProvideCodeActionsResponse>,
2881            tonic::Status,
2882        > {
2883            self.inner
2884                .ready()
2885                .await
2886                .map_err(|e| {
2887                    tonic::Status::unknown(
2888                        format!("Service was not ready: {}", e.into()),
2889                    )
2890                })?;
2891            let codec = tonic_prost::ProstCodec::default();
2892            let path = http::uri::PathAndQuery::from_static(
2893                "/Vine.CocoonService/ProvideCodeActions",
2894            );
2895            let mut req = request.into_request();
2896            req.extensions_mut()
2897                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideCodeActions"));
2898            self.inner.unary(req, path, codec).await
2899        }
2900        /// Register Document Highlight Provider
2901        pub async fn register_document_highlight_provider(
2902            &mut self,
2903            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2904        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2905            self.inner
2906                .ready()
2907                .await
2908                .map_err(|e| {
2909                    tonic::Status::unknown(
2910                        format!("Service was not ready: {}", e.into()),
2911                    )
2912                })?;
2913            let codec = tonic_prost::ProstCodec::default();
2914            let path = http::uri::PathAndQuery::from_static(
2915                "/Vine.CocoonService/RegisterDocumentHighlightProvider",
2916            );
2917            let mut req = request.into_request();
2918            req.extensions_mut()
2919                .insert(
2920                    GrpcMethod::new(
2921                        "Vine.CocoonService",
2922                        "RegisterDocumentHighlightProvider",
2923                    ),
2924                );
2925            self.inner.unary(req, path, codec).await
2926        }
2927        /// Provide Document Highlights
2928        pub async fn provide_document_highlights(
2929            &mut self,
2930            request: impl tonic::IntoRequest<super::ProvideDocumentHighlightsRequest>,
2931        ) -> std::result::Result<
2932            tonic::Response<super::ProvideDocumentHighlightsResponse>,
2933            tonic::Status,
2934        > {
2935            self.inner
2936                .ready()
2937                .await
2938                .map_err(|e| {
2939                    tonic::Status::unknown(
2940                        format!("Service was not ready: {}", e.into()),
2941                    )
2942                })?;
2943            let codec = tonic_prost::ProstCodec::default();
2944            let path = http::uri::PathAndQuery::from_static(
2945                "/Vine.CocoonService/ProvideDocumentHighlights",
2946            );
2947            let mut req = request.into_request();
2948            req.extensions_mut()
2949                .insert(
2950                    GrpcMethod::new("Vine.CocoonService", "ProvideDocumentHighlights"),
2951                );
2952            self.inner.unary(req, path, codec).await
2953        }
2954        /// Register Document Symbol Provider
2955        pub async fn register_document_symbol_provider(
2956            &mut self,
2957            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2958        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2959            self.inner
2960                .ready()
2961                .await
2962                .map_err(|e| {
2963                    tonic::Status::unknown(
2964                        format!("Service was not ready: {}", e.into()),
2965                    )
2966                })?;
2967            let codec = tonic_prost::ProstCodec::default();
2968            let path = http::uri::PathAndQuery::from_static(
2969                "/Vine.CocoonService/RegisterDocumentSymbolProvider",
2970            );
2971            let mut req = request.into_request();
2972            req.extensions_mut()
2973                .insert(
2974                    GrpcMethod::new(
2975                        "Vine.CocoonService",
2976                        "RegisterDocumentSymbolProvider",
2977                    ),
2978                );
2979            self.inner.unary(req, path, codec).await
2980        }
2981        /// Provide Document Symbols
2982        pub async fn provide_document_symbols(
2983            &mut self,
2984            request: impl tonic::IntoRequest<super::ProvideDocumentSymbolsRequest>,
2985        ) -> std::result::Result<
2986            tonic::Response<super::ProvideDocumentSymbolsResponse>,
2987            tonic::Status,
2988        > {
2989            self.inner
2990                .ready()
2991                .await
2992                .map_err(|e| {
2993                    tonic::Status::unknown(
2994                        format!("Service was not ready: {}", e.into()),
2995                    )
2996                })?;
2997            let codec = tonic_prost::ProstCodec::default();
2998            let path = http::uri::PathAndQuery::from_static(
2999                "/Vine.CocoonService/ProvideDocumentSymbols",
3000            );
3001            let mut req = request.into_request();
3002            req.extensions_mut()
3003                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideDocumentSymbols"));
3004            self.inner.unary(req, path, codec).await
3005        }
3006        /// Register Workspace Symbol Provider
3007        pub async fn register_workspace_symbol_provider(
3008            &mut self,
3009            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3010        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3011            self.inner
3012                .ready()
3013                .await
3014                .map_err(|e| {
3015                    tonic::Status::unknown(
3016                        format!("Service was not ready: {}", e.into()),
3017                    )
3018                })?;
3019            let codec = tonic_prost::ProstCodec::default();
3020            let path = http::uri::PathAndQuery::from_static(
3021                "/Vine.CocoonService/RegisterWorkspaceSymbolProvider",
3022            );
3023            let mut req = request.into_request();
3024            req.extensions_mut()
3025                .insert(
3026                    GrpcMethod::new(
3027                        "Vine.CocoonService",
3028                        "RegisterWorkspaceSymbolProvider",
3029                    ),
3030                );
3031            self.inner.unary(req, path, codec).await
3032        }
3033        /// Provide Workspace Symbols
3034        pub async fn provide_workspace_symbols(
3035            &mut self,
3036            request: impl tonic::IntoRequest<super::ProvideWorkspaceSymbolsRequest>,
3037        ) -> std::result::Result<
3038            tonic::Response<super::ProvideWorkspaceSymbolsResponse>,
3039            tonic::Status,
3040        > {
3041            self.inner
3042                .ready()
3043                .await
3044                .map_err(|e| {
3045                    tonic::Status::unknown(
3046                        format!("Service was not ready: {}", e.into()),
3047                    )
3048                })?;
3049            let codec = tonic_prost::ProstCodec::default();
3050            let path = http::uri::PathAndQuery::from_static(
3051                "/Vine.CocoonService/ProvideWorkspaceSymbols",
3052            );
3053            let mut req = request.into_request();
3054            req.extensions_mut()
3055                .insert(
3056                    GrpcMethod::new("Vine.CocoonService", "ProvideWorkspaceSymbols"),
3057                );
3058            self.inner.unary(req, path, codec).await
3059        }
3060        /// Register Rename Provider
3061        pub async fn register_rename_provider(
3062            &mut self,
3063            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3064        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3065            self.inner
3066                .ready()
3067                .await
3068                .map_err(|e| {
3069                    tonic::Status::unknown(
3070                        format!("Service was not ready: {}", e.into()),
3071                    )
3072                })?;
3073            let codec = tonic_prost::ProstCodec::default();
3074            let path = http::uri::PathAndQuery::from_static(
3075                "/Vine.CocoonService/RegisterRenameProvider",
3076            );
3077            let mut req = request.into_request();
3078            req.extensions_mut()
3079                .insert(GrpcMethod::new("Vine.CocoonService", "RegisterRenameProvider"));
3080            self.inner.unary(req, path, codec).await
3081        }
3082        /// Provide Rename Edits
3083        pub async fn provide_rename_edits(
3084            &mut self,
3085            request: impl tonic::IntoRequest<super::ProvideRenameEditsRequest>,
3086        ) -> std::result::Result<
3087            tonic::Response<super::ProvideRenameEditsResponse>,
3088            tonic::Status,
3089        > {
3090            self.inner
3091                .ready()
3092                .await
3093                .map_err(|e| {
3094                    tonic::Status::unknown(
3095                        format!("Service was not ready: {}", e.into()),
3096                    )
3097                })?;
3098            let codec = tonic_prost::ProstCodec::default();
3099            let path = http::uri::PathAndQuery::from_static(
3100                "/Vine.CocoonService/ProvideRenameEdits",
3101            );
3102            let mut req = request.into_request();
3103            req.extensions_mut()
3104                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideRenameEdits"));
3105            self.inner.unary(req, path, codec).await
3106        }
3107        /// Register Document Formatting Provider
3108        pub async fn register_document_formatting_provider(
3109            &mut self,
3110            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3111        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3112            self.inner
3113                .ready()
3114                .await
3115                .map_err(|e| {
3116                    tonic::Status::unknown(
3117                        format!("Service was not ready: {}", e.into()),
3118                    )
3119                })?;
3120            let codec = tonic_prost::ProstCodec::default();
3121            let path = http::uri::PathAndQuery::from_static(
3122                "/Vine.CocoonService/RegisterDocumentFormattingProvider",
3123            );
3124            let mut req = request.into_request();
3125            req.extensions_mut()
3126                .insert(
3127                    GrpcMethod::new(
3128                        "Vine.CocoonService",
3129                        "RegisterDocumentFormattingProvider",
3130                    ),
3131                );
3132            self.inner.unary(req, path, codec).await
3133        }
3134        /// Provide Document Formatting
3135        pub async fn provide_document_formatting(
3136            &mut self,
3137            request: impl tonic::IntoRequest<super::ProvideDocumentFormattingRequest>,
3138        ) -> std::result::Result<
3139            tonic::Response<super::ProvideDocumentFormattingResponse>,
3140            tonic::Status,
3141        > {
3142            self.inner
3143                .ready()
3144                .await
3145                .map_err(|e| {
3146                    tonic::Status::unknown(
3147                        format!("Service was not ready: {}", e.into()),
3148                    )
3149                })?;
3150            let codec = tonic_prost::ProstCodec::default();
3151            let path = http::uri::PathAndQuery::from_static(
3152                "/Vine.CocoonService/ProvideDocumentFormatting",
3153            );
3154            let mut req = request.into_request();
3155            req.extensions_mut()
3156                .insert(
3157                    GrpcMethod::new("Vine.CocoonService", "ProvideDocumentFormatting"),
3158                );
3159            self.inner.unary(req, path, codec).await
3160        }
3161        /// Register Document Range Formatting Provider
3162        pub async fn register_document_range_formatting_provider(
3163            &mut self,
3164            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3165        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3166            self.inner
3167                .ready()
3168                .await
3169                .map_err(|e| {
3170                    tonic::Status::unknown(
3171                        format!("Service was not ready: {}", e.into()),
3172                    )
3173                })?;
3174            let codec = tonic_prost::ProstCodec::default();
3175            let path = http::uri::PathAndQuery::from_static(
3176                "/Vine.CocoonService/RegisterDocumentRangeFormattingProvider",
3177            );
3178            let mut req = request.into_request();
3179            req.extensions_mut()
3180                .insert(
3181                    GrpcMethod::new(
3182                        "Vine.CocoonService",
3183                        "RegisterDocumentRangeFormattingProvider",
3184                    ),
3185                );
3186            self.inner.unary(req, path, codec).await
3187        }
3188        /// Provide Document Range Formatting
3189        pub async fn provide_document_range_formatting(
3190            &mut self,
3191            request: impl tonic::IntoRequest<
3192                super::ProvideDocumentRangeFormattingRequest,
3193            >,
3194        ) -> std::result::Result<
3195            tonic::Response<super::ProvideDocumentRangeFormattingResponse>,
3196            tonic::Status,
3197        > {
3198            self.inner
3199                .ready()
3200                .await
3201                .map_err(|e| {
3202                    tonic::Status::unknown(
3203                        format!("Service was not ready: {}", e.into()),
3204                    )
3205                })?;
3206            let codec = tonic_prost::ProstCodec::default();
3207            let path = http::uri::PathAndQuery::from_static(
3208                "/Vine.CocoonService/ProvideDocumentRangeFormatting",
3209            );
3210            let mut req = request.into_request();
3211            req.extensions_mut()
3212                .insert(
3213                    GrpcMethod::new(
3214                        "Vine.CocoonService",
3215                        "ProvideDocumentRangeFormatting",
3216                    ),
3217                );
3218            self.inner.unary(req, path, codec).await
3219        }
3220        /// Register On Type Formatting Provider
3221        pub async fn register_on_type_formatting_provider(
3222            &mut self,
3223            request: impl tonic::IntoRequest<
3224                super::RegisterOnTypeFormattingProviderRequest,
3225            >,
3226        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3227            self.inner
3228                .ready()
3229                .await
3230                .map_err(|e| {
3231                    tonic::Status::unknown(
3232                        format!("Service was not ready: {}", e.into()),
3233                    )
3234                })?;
3235            let codec = tonic_prost::ProstCodec::default();
3236            let path = http::uri::PathAndQuery::from_static(
3237                "/Vine.CocoonService/RegisterOnTypeFormattingProvider",
3238            );
3239            let mut req = request.into_request();
3240            req.extensions_mut()
3241                .insert(
3242                    GrpcMethod::new(
3243                        "Vine.CocoonService",
3244                        "RegisterOnTypeFormattingProvider",
3245                    ),
3246                );
3247            self.inner.unary(req, path, codec).await
3248        }
3249        /// Provide On Type Formatting
3250        pub async fn provide_on_type_formatting(
3251            &mut self,
3252            request: impl tonic::IntoRequest<super::ProvideOnTypeFormattingRequest>,
3253        ) -> std::result::Result<
3254            tonic::Response<super::ProvideOnTypeFormattingResponse>,
3255            tonic::Status,
3256        > {
3257            self.inner
3258                .ready()
3259                .await
3260                .map_err(|e| {
3261                    tonic::Status::unknown(
3262                        format!("Service was not ready: {}", e.into()),
3263                    )
3264                })?;
3265            let codec = tonic_prost::ProstCodec::default();
3266            let path = http::uri::PathAndQuery::from_static(
3267                "/Vine.CocoonService/ProvideOnTypeFormatting",
3268            );
3269            let mut req = request.into_request();
3270            req.extensions_mut()
3271                .insert(
3272                    GrpcMethod::new("Vine.CocoonService", "ProvideOnTypeFormatting"),
3273                );
3274            self.inner.unary(req, path, codec).await
3275        }
3276        /// Register Signature Help Provider
3277        pub async fn register_signature_help_provider(
3278            &mut self,
3279            request: impl tonic::IntoRequest<super::RegisterSignatureHelpProviderRequest>,
3280        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3281            self.inner
3282                .ready()
3283                .await
3284                .map_err(|e| {
3285                    tonic::Status::unknown(
3286                        format!("Service was not ready: {}", e.into()),
3287                    )
3288                })?;
3289            let codec = tonic_prost::ProstCodec::default();
3290            let path = http::uri::PathAndQuery::from_static(
3291                "/Vine.CocoonService/RegisterSignatureHelpProvider",
3292            );
3293            let mut req = request.into_request();
3294            req.extensions_mut()
3295                .insert(
3296                    GrpcMethod::new(
3297                        "Vine.CocoonService",
3298                        "RegisterSignatureHelpProvider",
3299                    ),
3300                );
3301            self.inner.unary(req, path, codec).await
3302        }
3303        /// Provide Signature Help
3304        pub async fn provide_signature_help(
3305            &mut self,
3306            request: impl tonic::IntoRequest<super::ProvideSignatureHelpRequest>,
3307        ) -> std::result::Result<
3308            tonic::Response<super::ProvideSignatureHelpResponse>,
3309            tonic::Status,
3310        > {
3311            self.inner
3312                .ready()
3313                .await
3314                .map_err(|e| {
3315                    tonic::Status::unknown(
3316                        format!("Service was not ready: {}", e.into()),
3317                    )
3318                })?;
3319            let codec = tonic_prost::ProstCodec::default();
3320            let path = http::uri::PathAndQuery::from_static(
3321                "/Vine.CocoonService/ProvideSignatureHelp",
3322            );
3323            let mut req = request.into_request();
3324            req.extensions_mut()
3325                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideSignatureHelp"));
3326            self.inner.unary(req, path, codec).await
3327        }
3328        /// Register Code Lens Provider
3329        pub async fn register_code_lens_provider(
3330            &mut self,
3331            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3332        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3333            self.inner
3334                .ready()
3335                .await
3336                .map_err(|e| {
3337                    tonic::Status::unknown(
3338                        format!("Service was not ready: {}", e.into()),
3339                    )
3340                })?;
3341            let codec = tonic_prost::ProstCodec::default();
3342            let path = http::uri::PathAndQuery::from_static(
3343                "/Vine.CocoonService/RegisterCodeLensProvider",
3344            );
3345            let mut req = request.into_request();
3346            req.extensions_mut()
3347                .insert(
3348                    GrpcMethod::new("Vine.CocoonService", "RegisterCodeLensProvider"),
3349                );
3350            self.inner.unary(req, path, codec).await
3351        }
3352        /// Provide Code Lenses
3353        pub async fn provide_code_lenses(
3354            &mut self,
3355            request: impl tonic::IntoRequest<super::ProvideCodeLensesRequest>,
3356        ) -> std::result::Result<
3357            tonic::Response<super::ProvideCodeLensesResponse>,
3358            tonic::Status,
3359        > {
3360            self.inner
3361                .ready()
3362                .await
3363                .map_err(|e| {
3364                    tonic::Status::unknown(
3365                        format!("Service was not ready: {}", e.into()),
3366                    )
3367                })?;
3368            let codec = tonic_prost::ProstCodec::default();
3369            let path = http::uri::PathAndQuery::from_static(
3370                "/Vine.CocoonService/ProvideCodeLenses",
3371            );
3372            let mut req = request.into_request();
3373            req.extensions_mut()
3374                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideCodeLenses"));
3375            self.inner.unary(req, path, codec).await
3376        }
3377        /// Register Folding Range Provider
3378        pub async fn register_folding_range_provider(
3379            &mut self,
3380            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3381        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3382            self.inner
3383                .ready()
3384                .await
3385                .map_err(|e| {
3386                    tonic::Status::unknown(
3387                        format!("Service was not ready: {}", e.into()),
3388                    )
3389                })?;
3390            let codec = tonic_prost::ProstCodec::default();
3391            let path = http::uri::PathAndQuery::from_static(
3392                "/Vine.CocoonService/RegisterFoldingRangeProvider",
3393            );
3394            let mut req = request.into_request();
3395            req.extensions_mut()
3396                .insert(
3397                    GrpcMethod::new("Vine.CocoonService", "RegisterFoldingRangeProvider"),
3398                );
3399            self.inner.unary(req, path, codec).await
3400        }
3401        /// Provide Folding Ranges
3402        pub async fn provide_folding_ranges(
3403            &mut self,
3404            request: impl tonic::IntoRequest<super::ProvideFoldingRangesRequest>,
3405        ) -> std::result::Result<
3406            tonic::Response<super::ProvideFoldingRangesResponse>,
3407            tonic::Status,
3408        > {
3409            self.inner
3410                .ready()
3411                .await
3412                .map_err(|e| {
3413                    tonic::Status::unknown(
3414                        format!("Service was not ready: {}", e.into()),
3415                    )
3416                })?;
3417            let codec = tonic_prost::ProstCodec::default();
3418            let path = http::uri::PathAndQuery::from_static(
3419                "/Vine.CocoonService/ProvideFoldingRanges",
3420            );
3421            let mut req = request.into_request();
3422            req.extensions_mut()
3423                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideFoldingRanges"));
3424            self.inner.unary(req, path, codec).await
3425        }
3426        /// Register Selection Range Provider
3427        pub async fn register_selection_range_provider(
3428            &mut self,
3429            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3430        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3431            self.inner
3432                .ready()
3433                .await
3434                .map_err(|e| {
3435                    tonic::Status::unknown(
3436                        format!("Service was not ready: {}", e.into()),
3437                    )
3438                })?;
3439            let codec = tonic_prost::ProstCodec::default();
3440            let path = http::uri::PathAndQuery::from_static(
3441                "/Vine.CocoonService/RegisterSelectionRangeProvider",
3442            );
3443            let mut req = request.into_request();
3444            req.extensions_mut()
3445                .insert(
3446                    GrpcMethod::new(
3447                        "Vine.CocoonService",
3448                        "RegisterSelectionRangeProvider",
3449                    ),
3450                );
3451            self.inner.unary(req, path, codec).await
3452        }
3453        /// Provide Selection Ranges
3454        pub async fn provide_selection_ranges(
3455            &mut self,
3456            request: impl tonic::IntoRequest<super::ProvideSelectionRangesRequest>,
3457        ) -> std::result::Result<
3458            tonic::Response<super::ProvideSelectionRangesResponse>,
3459            tonic::Status,
3460        > {
3461            self.inner
3462                .ready()
3463                .await
3464                .map_err(|e| {
3465                    tonic::Status::unknown(
3466                        format!("Service was not ready: {}", e.into()),
3467                    )
3468                })?;
3469            let codec = tonic_prost::ProstCodec::default();
3470            let path = http::uri::PathAndQuery::from_static(
3471                "/Vine.CocoonService/ProvideSelectionRanges",
3472            );
3473            let mut req = request.into_request();
3474            req.extensions_mut()
3475                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideSelectionRanges"));
3476            self.inner.unary(req, path, codec).await
3477        }
3478        /// Register Semantic Tokens Provider
3479        pub async fn register_semantic_tokens_provider(
3480            &mut self,
3481            request: impl tonic::IntoRequest<
3482                super::RegisterSemanticTokensProviderRequest,
3483            >,
3484        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3485            self.inner
3486                .ready()
3487                .await
3488                .map_err(|e| {
3489                    tonic::Status::unknown(
3490                        format!("Service was not ready: {}", e.into()),
3491                    )
3492                })?;
3493            let codec = tonic_prost::ProstCodec::default();
3494            let path = http::uri::PathAndQuery::from_static(
3495                "/Vine.CocoonService/RegisterSemanticTokensProvider",
3496            );
3497            let mut req = request.into_request();
3498            req.extensions_mut()
3499                .insert(
3500                    GrpcMethod::new(
3501                        "Vine.CocoonService",
3502                        "RegisterSemanticTokensProvider",
3503                    ),
3504                );
3505            self.inner.unary(req, path, codec).await
3506        }
3507        /// Provide Semantic Tokens Full
3508        pub async fn provide_semantic_tokens_full(
3509            &mut self,
3510            request: impl tonic::IntoRequest<super::ProvideSemanticTokensRequest>,
3511        ) -> std::result::Result<
3512            tonic::Response<super::ProvideSemanticTokensResponse>,
3513            tonic::Status,
3514        > {
3515            self.inner
3516                .ready()
3517                .await
3518                .map_err(|e| {
3519                    tonic::Status::unknown(
3520                        format!("Service was not ready: {}", e.into()),
3521                    )
3522                })?;
3523            let codec = tonic_prost::ProstCodec::default();
3524            let path = http::uri::PathAndQuery::from_static(
3525                "/Vine.CocoonService/ProvideSemanticTokensFull",
3526            );
3527            let mut req = request.into_request();
3528            req.extensions_mut()
3529                .insert(
3530                    GrpcMethod::new("Vine.CocoonService", "ProvideSemanticTokensFull"),
3531                );
3532            self.inner.unary(req, path, codec).await
3533        }
3534        /// Register Inlay Hints Provider
3535        pub async fn register_inlay_hints_provider(
3536            &mut self,
3537            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3538        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3539            self.inner
3540                .ready()
3541                .await
3542                .map_err(|e| {
3543                    tonic::Status::unknown(
3544                        format!("Service was not ready: {}", e.into()),
3545                    )
3546                })?;
3547            let codec = tonic_prost::ProstCodec::default();
3548            let path = http::uri::PathAndQuery::from_static(
3549                "/Vine.CocoonService/RegisterInlayHintsProvider",
3550            );
3551            let mut req = request.into_request();
3552            req.extensions_mut()
3553                .insert(
3554                    GrpcMethod::new("Vine.CocoonService", "RegisterInlayHintsProvider"),
3555                );
3556            self.inner.unary(req, path, codec).await
3557        }
3558        /// Provide Inlay Hints
3559        pub async fn provide_inlay_hints(
3560            &mut self,
3561            request: impl tonic::IntoRequest<super::ProvideInlayHintsRequest>,
3562        ) -> std::result::Result<
3563            tonic::Response<super::ProvideInlayHintsResponse>,
3564            tonic::Status,
3565        > {
3566            self.inner
3567                .ready()
3568                .await
3569                .map_err(|e| {
3570                    tonic::Status::unknown(
3571                        format!("Service was not ready: {}", e.into()),
3572                    )
3573                })?;
3574            let codec = tonic_prost::ProstCodec::default();
3575            let path = http::uri::PathAndQuery::from_static(
3576                "/Vine.CocoonService/ProvideInlayHints",
3577            );
3578            let mut req = request.into_request();
3579            req.extensions_mut()
3580                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideInlayHints"));
3581            self.inner.unary(req, path, codec).await
3582        }
3583        /// Register Type Hierarchy Provider
3584        pub async fn register_type_hierarchy_provider(
3585            &mut self,
3586            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3587        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3588            self.inner
3589                .ready()
3590                .await
3591                .map_err(|e| {
3592                    tonic::Status::unknown(
3593                        format!("Service was not ready: {}", e.into()),
3594                    )
3595                })?;
3596            let codec = tonic_prost::ProstCodec::default();
3597            let path = http::uri::PathAndQuery::from_static(
3598                "/Vine.CocoonService/RegisterTypeHierarchyProvider",
3599            );
3600            let mut req = request.into_request();
3601            req.extensions_mut()
3602                .insert(
3603                    GrpcMethod::new(
3604                        "Vine.CocoonService",
3605                        "RegisterTypeHierarchyProvider",
3606                    ),
3607                );
3608            self.inner.unary(req, path, codec).await
3609        }
3610        /// Provide Type Hierarchy Supertypes
3611        pub async fn provide_type_hierarchy_supertypes(
3612            &mut self,
3613            request: impl tonic::IntoRequest<super::ProvideTypeHierarchyRequest>,
3614        ) -> std::result::Result<
3615            tonic::Response<super::ProvideTypeHierarchyResponse>,
3616            tonic::Status,
3617        > {
3618            self.inner
3619                .ready()
3620                .await
3621                .map_err(|e| {
3622                    tonic::Status::unknown(
3623                        format!("Service was not ready: {}", e.into()),
3624                    )
3625                })?;
3626            let codec = tonic_prost::ProstCodec::default();
3627            let path = http::uri::PathAndQuery::from_static(
3628                "/Vine.CocoonService/ProvideTypeHierarchySupertypes",
3629            );
3630            let mut req = request.into_request();
3631            req.extensions_mut()
3632                .insert(
3633                    GrpcMethod::new(
3634                        "Vine.CocoonService",
3635                        "ProvideTypeHierarchySupertypes",
3636                    ),
3637                );
3638            self.inner.unary(req, path, codec).await
3639        }
3640        /// Provide Type Hierarchy Subtypes
3641        pub async fn provide_type_hierarchy_subtypes(
3642            &mut self,
3643            request: impl tonic::IntoRequest<super::ProvideTypeHierarchyRequest>,
3644        ) -> std::result::Result<
3645            tonic::Response<super::ProvideTypeHierarchyResponse>,
3646            tonic::Status,
3647        > {
3648            self.inner
3649                .ready()
3650                .await
3651                .map_err(|e| {
3652                    tonic::Status::unknown(
3653                        format!("Service was not ready: {}", e.into()),
3654                    )
3655                })?;
3656            let codec = tonic_prost::ProstCodec::default();
3657            let path = http::uri::PathAndQuery::from_static(
3658                "/Vine.CocoonService/ProvideTypeHierarchySubtypes",
3659            );
3660            let mut req = request.into_request();
3661            req.extensions_mut()
3662                .insert(
3663                    GrpcMethod::new("Vine.CocoonService", "ProvideTypeHierarchySubtypes"),
3664                );
3665            self.inner.unary(req, path, codec).await
3666        }
3667        /// Register Call Hierarchy Provider
3668        pub async fn register_call_hierarchy_provider(
3669            &mut self,
3670            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3671        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3672            self.inner
3673                .ready()
3674                .await
3675                .map_err(|e| {
3676                    tonic::Status::unknown(
3677                        format!("Service was not ready: {}", e.into()),
3678                    )
3679                })?;
3680            let codec = tonic_prost::ProstCodec::default();
3681            let path = http::uri::PathAndQuery::from_static(
3682                "/Vine.CocoonService/RegisterCallHierarchyProvider",
3683            );
3684            let mut req = request.into_request();
3685            req.extensions_mut()
3686                .insert(
3687                    GrpcMethod::new(
3688                        "Vine.CocoonService",
3689                        "RegisterCallHierarchyProvider",
3690                    ),
3691                );
3692            self.inner.unary(req, path, codec).await
3693        }
3694        /// Provide Call Hierarchy Incoming Calls
3695        pub async fn provide_call_hierarchy_incoming_calls(
3696            &mut self,
3697            request: impl tonic::IntoRequest<super::ProvideCallHierarchyRequest>,
3698        ) -> std::result::Result<
3699            tonic::Response<super::ProvideCallHierarchyResponse>,
3700            tonic::Status,
3701        > {
3702            self.inner
3703                .ready()
3704                .await
3705                .map_err(|e| {
3706                    tonic::Status::unknown(
3707                        format!("Service was not ready: {}", e.into()),
3708                    )
3709                })?;
3710            let codec = tonic_prost::ProstCodec::default();
3711            let path = http::uri::PathAndQuery::from_static(
3712                "/Vine.CocoonService/ProvideCallHierarchyIncomingCalls",
3713            );
3714            let mut req = request.into_request();
3715            req.extensions_mut()
3716                .insert(
3717                    GrpcMethod::new(
3718                        "Vine.CocoonService",
3719                        "ProvideCallHierarchyIncomingCalls",
3720                    ),
3721                );
3722            self.inner.unary(req, path, codec).await
3723        }
3724        /// Provide Call Hierarchy Outgoing Calls
3725        pub async fn provide_call_hierarchy_outgoing_calls(
3726            &mut self,
3727            request: impl tonic::IntoRequest<super::ProvideCallHierarchyRequest>,
3728        ) -> std::result::Result<
3729            tonic::Response<super::ProvideCallHierarchyResponse>,
3730            tonic::Status,
3731        > {
3732            self.inner
3733                .ready()
3734                .await
3735                .map_err(|e| {
3736                    tonic::Status::unknown(
3737                        format!("Service was not ready: {}", e.into()),
3738                    )
3739                })?;
3740            let codec = tonic_prost::ProstCodec::default();
3741            let path = http::uri::PathAndQuery::from_static(
3742                "/Vine.CocoonService/ProvideCallHierarchyOutgoingCalls",
3743            );
3744            let mut req = request.into_request();
3745            req.extensions_mut()
3746                .insert(
3747                    GrpcMethod::new(
3748                        "Vine.CocoonService",
3749                        "ProvideCallHierarchyOutgoingCalls",
3750                    ),
3751                );
3752            self.inner.unary(req, path, codec).await
3753        }
3754        /// Register Linked Editing Range Provider
3755        pub async fn register_linked_editing_range_provider(
3756            &mut self,
3757            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3758        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3759            self.inner
3760                .ready()
3761                .await
3762                .map_err(|e| {
3763                    tonic::Status::unknown(
3764                        format!("Service was not ready: {}", e.into()),
3765                    )
3766                })?;
3767            let codec = tonic_prost::ProstCodec::default();
3768            let path = http::uri::PathAndQuery::from_static(
3769                "/Vine.CocoonService/RegisterLinkedEditingRangeProvider",
3770            );
3771            let mut req = request.into_request();
3772            req.extensions_mut()
3773                .insert(
3774                    GrpcMethod::new(
3775                        "Vine.CocoonService",
3776                        "RegisterLinkedEditingRangeProvider",
3777                    ),
3778                );
3779            self.inner.unary(req, path, codec).await
3780        }
3781        /// Provide Linked Editing Ranges
3782        pub async fn provide_linked_editing_ranges(
3783            &mut self,
3784            request: impl tonic::IntoRequest<super::ProvideLinkedEditingRangesRequest>,
3785        ) -> std::result::Result<
3786            tonic::Response<super::ProvideLinkedEditingRangesResponse>,
3787            tonic::Status,
3788        > {
3789            self.inner
3790                .ready()
3791                .await
3792                .map_err(|e| {
3793                    tonic::Status::unknown(
3794                        format!("Service was not ready: {}", e.into()),
3795                    )
3796                })?;
3797            let codec = tonic_prost::ProstCodec::default();
3798            let path = http::uri::PathAndQuery::from_static(
3799                "/Vine.CocoonService/ProvideLinkedEditingRanges",
3800            );
3801            let mut req = request.into_request();
3802            req.extensions_mut()
3803                .insert(
3804                    GrpcMethod::new("Vine.CocoonService", "ProvideLinkedEditingRanges"),
3805                );
3806            self.inner.unary(req, path, codec).await
3807        }
3808        /// Register Inline Completion Item Provider (GitHub Copilot, Roo Code, etc.)
3809        pub async fn register_inline_completion_item_provider(
3810            &mut self,
3811            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3812        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3813            self.inner
3814                .ready()
3815                .await
3816                .map_err(|e| {
3817                    tonic::Status::unknown(
3818                        format!("Service was not ready: {}", e.into()),
3819                    )
3820                })?;
3821            let codec = tonic_prost::ProstCodec::default();
3822            let path = http::uri::PathAndQuery::from_static(
3823                "/Vine.CocoonService/RegisterInlineCompletionItemProvider",
3824            );
3825            let mut req = request.into_request();
3826            req.extensions_mut()
3827                .insert(
3828                    GrpcMethod::new(
3829                        "Vine.CocoonService",
3830                        "RegisterInlineCompletionItemProvider",
3831                    ),
3832                );
3833            self.inner.unary(req, path, codec).await
3834        }
3835        /// Provide Inline Completion Items - called by Monaco when the cursor pauses
3836        pub async fn provide_inline_completion_items(
3837            &mut self,
3838            request: impl tonic::IntoRequest<super::ProvideInlineCompletionRequest>,
3839        ) -> std::result::Result<
3840            tonic::Response<super::ProvideInlineCompletionResponse>,
3841            tonic::Status,
3842        > {
3843            self.inner
3844                .ready()
3845                .await
3846                .map_err(|e| {
3847                    tonic::Status::unknown(
3848                        format!("Service was not ready: {}", e.into()),
3849                    )
3850                })?;
3851            let codec = tonic_prost::ProstCodec::default();
3852            let path = http::uri::PathAndQuery::from_static(
3853                "/Vine.CocoonService/ProvideInlineCompletionItems",
3854            );
3855            let mut req = request.into_request();
3856            req.extensions_mut()
3857                .insert(
3858                    GrpcMethod::new("Vine.CocoonService", "ProvideInlineCompletionItems"),
3859                );
3860            self.inner.unary(req, path, codec).await
3861        }
3862        /// Show Quick Pick
3863        pub async fn show_quick_pick(
3864            &mut self,
3865            request: impl tonic::IntoRequest<super::ShowQuickPickRequest>,
3866        ) -> std::result::Result<
3867            tonic::Response<super::ShowQuickPickResponse>,
3868            tonic::Status,
3869        > {
3870            self.inner
3871                .ready()
3872                .await
3873                .map_err(|e| {
3874                    tonic::Status::unknown(
3875                        format!("Service was not ready: {}", e.into()),
3876                    )
3877                })?;
3878            let codec = tonic_prost::ProstCodec::default();
3879            let path = http::uri::PathAndQuery::from_static(
3880                "/Vine.CocoonService/ShowQuickPick",
3881            );
3882            let mut req = request.into_request();
3883            req.extensions_mut()
3884                .insert(GrpcMethod::new("Vine.CocoonService", "ShowQuickPick"));
3885            self.inner.unary(req, path, codec).await
3886        }
3887        /// Show Input Box
3888        pub async fn show_input_box(
3889            &mut self,
3890            request: impl tonic::IntoRequest<super::ShowInputBoxRequest>,
3891        ) -> std::result::Result<
3892            tonic::Response<super::ShowInputBoxResponse>,
3893            tonic::Status,
3894        > {
3895            self.inner
3896                .ready()
3897                .await
3898                .map_err(|e| {
3899                    tonic::Status::unknown(
3900                        format!("Service was not ready: {}", e.into()),
3901                    )
3902                })?;
3903            let codec = tonic_prost::ProstCodec::default();
3904            let path = http::uri::PathAndQuery::from_static(
3905                "/Vine.CocoonService/ShowInputBox",
3906            );
3907            let mut req = request.into_request();
3908            req.extensions_mut()
3909                .insert(GrpcMethod::new("Vine.CocoonService", "ShowInputBox"));
3910            self.inner.unary(req, path, codec).await
3911        }
3912        /// Show Progress
3913        pub async fn show_progress(
3914            &mut self,
3915            request: impl tonic::IntoRequest<super::ShowProgressRequest>,
3916        ) -> std::result::Result<
3917            tonic::Response<super::ShowProgressResponse>,
3918            tonic::Status,
3919        > {
3920            self.inner
3921                .ready()
3922                .await
3923                .map_err(|e| {
3924                    tonic::Status::unknown(
3925                        format!("Service was not ready: {}", e.into()),
3926                    )
3927                })?;
3928            let codec = tonic_prost::ProstCodec::default();
3929            let path = http::uri::PathAndQuery::from_static(
3930                "/Vine.CocoonService/ShowProgress",
3931            );
3932            let mut req = request.into_request();
3933            req.extensions_mut()
3934                .insert(GrpcMethod::new("Vine.CocoonService", "ShowProgress"));
3935            self.inner.unary(req, path, codec).await
3936        }
3937        /// Report Progress
3938        pub async fn report_progress(
3939            &mut self,
3940            request: impl tonic::IntoRequest<super::ReportProgressRequest>,
3941        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3942            self.inner
3943                .ready()
3944                .await
3945                .map_err(|e| {
3946                    tonic::Status::unknown(
3947                        format!("Service was not ready: {}", e.into()),
3948                    )
3949                })?;
3950            let codec = tonic_prost::ProstCodec::default();
3951            let path = http::uri::PathAndQuery::from_static(
3952                "/Vine.CocoonService/ReportProgress",
3953            );
3954            let mut req = request.into_request();
3955            req.extensions_mut()
3956                .insert(GrpcMethod::new("Vine.CocoonService", "ReportProgress"));
3957            self.inner.unary(req, path, codec).await
3958        }
3959        /// Post Message to Webview
3960        pub async fn post_webview_message(
3961            &mut self,
3962            request: impl tonic::IntoRequest<super::PostWebviewMessageRequest>,
3963        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3964            self.inner
3965                .ready()
3966                .await
3967                .map_err(|e| {
3968                    tonic::Status::unknown(
3969                        format!("Service was not ready: {}", e.into()),
3970                    )
3971                })?;
3972            let codec = tonic_prost::ProstCodec::default();
3973            let path = http::uri::PathAndQuery::from_static(
3974                "/Vine.CocoonService/PostWebviewMessage",
3975            );
3976            let mut req = request.into_request();
3977            req.extensions_mut()
3978                .insert(GrpcMethod::new("Vine.CocoonService", "PostWebviewMessage"));
3979            self.inner.unary(req, path, codec).await
3980        }
3981        /// Dispose Webview Panel
3982        pub async fn dispose_webview_panel(
3983            &mut self,
3984            request: impl tonic::IntoRequest<super::DisposeWebviewPanelRequest>,
3985        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3986            self.inner
3987                .ready()
3988                .await
3989                .map_err(|e| {
3990                    tonic::Status::unknown(
3991                        format!("Service was not ready: {}", e.into()),
3992                    )
3993                })?;
3994            let codec = tonic_prost::ProstCodec::default();
3995            let path = http::uri::PathAndQuery::from_static(
3996                "/Vine.CocoonService/DisposeWebviewPanel",
3997            );
3998            let mut req = request.into_request();
3999            req.extensions_mut()
4000                .insert(GrpcMethod::new("Vine.CocoonService", "DisposeWebviewPanel"));
4001            self.inner.unary(req, path, codec).await
4002        }
4003        /// Open External URI
4004        pub async fn open_external(
4005            &mut self,
4006            request: impl tonic::IntoRequest<super::OpenExternalRequest>,
4007        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4008            self.inner
4009                .ready()
4010                .await
4011                .map_err(|e| {
4012                    tonic::Status::unknown(
4013                        format!("Service was not ready: {}", e.into()),
4014                    )
4015                })?;
4016            let codec = tonic_prost::ProstCodec::default();
4017            let path = http::uri::PathAndQuery::from_static(
4018                "/Vine.CocoonService/OpenExternal",
4019            );
4020            let mut req = request.into_request();
4021            req.extensions_mut()
4022                .insert(GrpcMethod::new("Vine.CocoonService", "OpenExternal"));
4023            self.inner.unary(req, path, codec).await
4024        }
4025        /// Delete File
4026        pub async fn delete_file(
4027            &mut self,
4028            request: impl tonic::IntoRequest<super::DeleteFileRequest>,
4029        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4030            self.inner
4031                .ready()
4032                .await
4033                .map_err(|e| {
4034                    tonic::Status::unknown(
4035                        format!("Service was not ready: {}", e.into()),
4036                    )
4037                })?;
4038            let codec = tonic_prost::ProstCodec::default();
4039            let path = http::uri::PathAndQuery::from_static(
4040                "/Vine.CocoonService/DeleteFile",
4041            );
4042            let mut req = request.into_request();
4043            req.extensions_mut()
4044                .insert(GrpcMethod::new("Vine.CocoonService", "DeleteFile"));
4045            self.inner.unary(req, path, codec).await
4046        }
4047        /// Rename File
4048        pub async fn rename_file(
4049            &mut self,
4050            request: impl tonic::IntoRequest<super::RenameFileRequest>,
4051        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4052            self.inner
4053                .ready()
4054                .await
4055                .map_err(|e| {
4056                    tonic::Status::unknown(
4057                        format!("Service was not ready: {}", e.into()),
4058                    )
4059                })?;
4060            let codec = tonic_prost::ProstCodec::default();
4061            let path = http::uri::PathAndQuery::from_static(
4062                "/Vine.CocoonService/RenameFile",
4063            );
4064            let mut req = request.into_request();
4065            req.extensions_mut()
4066                .insert(GrpcMethod::new("Vine.CocoonService", "RenameFile"));
4067            self.inner.unary(req, path, codec).await
4068        }
4069        /// Copy File
4070        pub async fn copy_file(
4071            &mut self,
4072            request: impl tonic::IntoRequest<super::CopyFileRequest>,
4073        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4074            self.inner
4075                .ready()
4076                .await
4077                .map_err(|e| {
4078                    tonic::Status::unknown(
4079                        format!("Service was not ready: {}", e.into()),
4080                    )
4081                })?;
4082            let codec = tonic_prost::ProstCodec::default();
4083            let path = http::uri::PathAndQuery::from_static(
4084                "/Vine.CocoonService/CopyFile",
4085            );
4086            let mut req = request.into_request();
4087            req.extensions_mut()
4088                .insert(GrpcMethod::new("Vine.CocoonService", "CopyFile"));
4089            self.inner.unary(req, path, codec).await
4090        }
4091        /// Create Directory
4092        pub async fn create_directory(
4093            &mut self,
4094            request: impl tonic::IntoRequest<super::CreateDirectoryRequest>,
4095        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4096            self.inner
4097                .ready()
4098                .await
4099                .map_err(|e| {
4100                    tonic::Status::unknown(
4101                        format!("Service was not ready: {}", e.into()),
4102                    )
4103                })?;
4104            let codec = tonic_prost::ProstCodec::default();
4105            let path = http::uri::PathAndQuery::from_static(
4106                "/Vine.CocoonService/CreateDirectory",
4107            );
4108            let mut req = request.into_request();
4109            req.extensions_mut()
4110                .insert(GrpcMethod::new("Vine.CocoonService", "CreateDirectory"));
4111            self.inner.unary(req, path, codec).await
4112        }
4113        /// Create Output Channel
4114        pub async fn create_output_channel(
4115            &mut self,
4116            request: impl tonic::IntoRequest<super::CreateOutputChannelRequest>,
4117        ) -> std::result::Result<
4118            tonic::Response<super::CreateOutputChannelResponse>,
4119            tonic::Status,
4120        > {
4121            self.inner
4122                .ready()
4123                .await
4124                .map_err(|e| {
4125                    tonic::Status::unknown(
4126                        format!("Service was not ready: {}", e.into()),
4127                    )
4128                })?;
4129            let codec = tonic_prost::ProstCodec::default();
4130            let path = http::uri::PathAndQuery::from_static(
4131                "/Vine.CocoonService/CreateOutputChannel",
4132            );
4133            let mut req = request.into_request();
4134            req.extensions_mut()
4135                .insert(GrpcMethod::new("Vine.CocoonService", "CreateOutputChannel"));
4136            self.inner.unary(req, path, codec).await
4137        }
4138        /// Append to Output Channel
4139        pub async fn append_output(
4140            &mut self,
4141            request: impl tonic::IntoRequest<super::AppendOutputRequest>,
4142        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4143            self.inner
4144                .ready()
4145                .await
4146                .map_err(|e| {
4147                    tonic::Status::unknown(
4148                        format!("Service was not ready: {}", e.into()),
4149                    )
4150                })?;
4151            let codec = tonic_prost::ProstCodec::default();
4152            let path = http::uri::PathAndQuery::from_static(
4153                "/Vine.CocoonService/AppendOutput",
4154            );
4155            let mut req = request.into_request();
4156            req.extensions_mut()
4157                .insert(GrpcMethod::new("Vine.CocoonService", "AppendOutput"));
4158            self.inner.unary(req, path, codec).await
4159        }
4160        /// Clear Output Channel
4161        pub async fn clear_output(
4162            &mut self,
4163            request: impl tonic::IntoRequest<super::ClearOutputRequest>,
4164        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4165            self.inner
4166                .ready()
4167                .await
4168                .map_err(|e| {
4169                    tonic::Status::unknown(
4170                        format!("Service was not ready: {}", e.into()),
4171                    )
4172                })?;
4173            let codec = tonic_prost::ProstCodec::default();
4174            let path = http::uri::PathAndQuery::from_static(
4175                "/Vine.CocoonService/ClearOutput",
4176            );
4177            let mut req = request.into_request();
4178            req.extensions_mut()
4179                .insert(GrpcMethod::new("Vine.CocoonService", "ClearOutput"));
4180            self.inner.unary(req, path, codec).await
4181        }
4182        /// Show Output Channel
4183        pub async fn show_output(
4184            &mut self,
4185            request: impl tonic::IntoRequest<super::ShowOutputRequest>,
4186        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4187            self.inner
4188                .ready()
4189                .await
4190                .map_err(|e| {
4191                    tonic::Status::unknown(
4192                        format!("Service was not ready: {}", e.into()),
4193                    )
4194                })?;
4195            let codec = tonic_prost::ProstCodec::default();
4196            let path = http::uri::PathAndQuery::from_static(
4197                "/Vine.CocoonService/ShowOutput",
4198            );
4199            let mut req = request.into_request();
4200            req.extensions_mut()
4201                .insert(GrpcMethod::new("Vine.CocoonService", "ShowOutput"));
4202            self.inner.unary(req, path, codec).await
4203        }
4204        /// Dispose Output Channel
4205        pub async fn dispose_output(
4206            &mut self,
4207            request: impl tonic::IntoRequest<super::DisposeOutputRequest>,
4208        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4209            self.inner
4210                .ready()
4211                .await
4212                .map_err(|e| {
4213                    tonic::Status::unknown(
4214                        format!("Service was not ready: {}", e.into()),
4215                    )
4216                })?;
4217            let codec = tonic_prost::ProstCodec::default();
4218            let path = http::uri::PathAndQuery::from_static(
4219                "/Vine.CocoonService/DisposeOutput",
4220            );
4221            let mut req = request.into_request();
4222            req.extensions_mut()
4223                .insert(GrpcMethod::new("Vine.CocoonService", "DisposeOutput"));
4224            self.inner.unary(req, path, codec).await
4225        }
4226        /// Register Task Provider
4227        pub async fn register_task_provider(
4228            &mut self,
4229            request: impl tonic::IntoRequest<super::RegisterTaskProviderRequest>,
4230        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4231            self.inner
4232                .ready()
4233                .await
4234                .map_err(|e| {
4235                    tonic::Status::unknown(
4236                        format!("Service was not ready: {}", e.into()),
4237                    )
4238                })?;
4239            let codec = tonic_prost::ProstCodec::default();
4240            let path = http::uri::PathAndQuery::from_static(
4241                "/Vine.CocoonService/RegisterTaskProvider",
4242            );
4243            let mut req = request.into_request();
4244            req.extensions_mut()
4245                .insert(GrpcMethod::new("Vine.CocoonService", "RegisterTaskProvider"));
4246            self.inner.unary(req, path, codec).await
4247        }
4248        /// Execute Task
4249        pub async fn execute_task(
4250            &mut self,
4251            request: impl tonic::IntoRequest<super::ExecuteTaskRequest>,
4252        ) -> std::result::Result<
4253            tonic::Response<super::ExecuteTaskResponse>,
4254            tonic::Status,
4255        > {
4256            self.inner
4257                .ready()
4258                .await
4259                .map_err(|e| {
4260                    tonic::Status::unknown(
4261                        format!("Service was not ready: {}", e.into()),
4262                    )
4263                })?;
4264            let codec = tonic_prost::ProstCodec::default();
4265            let path = http::uri::PathAndQuery::from_static(
4266                "/Vine.CocoonService/ExecuteTask",
4267            );
4268            let mut req = request.into_request();
4269            req.extensions_mut()
4270                .insert(GrpcMethod::new("Vine.CocoonService", "ExecuteTask"));
4271            self.inner.unary(req, path, codec).await
4272        }
4273        /// Terminate Task
4274        pub async fn terminate_task(
4275            &mut self,
4276            request: impl tonic::IntoRequest<super::TerminateTaskRequest>,
4277        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4278            self.inner
4279                .ready()
4280                .await
4281                .map_err(|e| {
4282                    tonic::Status::unknown(
4283                        format!("Service was not ready: {}", e.into()),
4284                    )
4285                })?;
4286            let codec = tonic_prost::ProstCodec::default();
4287            let path = http::uri::PathAndQuery::from_static(
4288                "/Vine.CocoonService/TerminateTask",
4289            );
4290            let mut req = request.into_request();
4291            req.extensions_mut()
4292                .insert(GrpcMethod::new("Vine.CocoonService", "TerminateTask"));
4293            self.inner.unary(req, path, codec).await
4294        }
4295        /// Get Authentication Session
4296        pub async fn get_authentication_session(
4297            &mut self,
4298            request: impl tonic::IntoRequest<super::GetAuthenticationSessionRequest>,
4299        ) -> std::result::Result<
4300            tonic::Response<super::GetAuthenticationSessionResponse>,
4301            tonic::Status,
4302        > {
4303            self.inner
4304                .ready()
4305                .await
4306                .map_err(|e| {
4307                    tonic::Status::unknown(
4308                        format!("Service was not ready: {}", e.into()),
4309                    )
4310                })?;
4311            let codec = tonic_prost::ProstCodec::default();
4312            let path = http::uri::PathAndQuery::from_static(
4313                "/Vine.CocoonService/GetAuthenticationSession",
4314            );
4315            let mut req = request.into_request();
4316            req.extensions_mut()
4317                .insert(
4318                    GrpcMethod::new("Vine.CocoonService", "GetAuthenticationSession"),
4319                );
4320            self.inner.unary(req, path, codec).await
4321        }
4322        /// Register Authentication Provider
4323        pub async fn register_authentication_provider(
4324            &mut self,
4325            request: impl tonic::IntoRequest<
4326                super::RegisterAuthenticationProviderRequest,
4327            >,
4328        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4329            self.inner
4330                .ready()
4331                .await
4332                .map_err(|e| {
4333                    tonic::Status::unknown(
4334                        format!("Service was not ready: {}", e.into()),
4335                    )
4336                })?;
4337            let codec = tonic_prost::ProstCodec::default();
4338            let path = http::uri::PathAndQuery::from_static(
4339                "/Vine.CocoonService/RegisterAuthenticationProvider",
4340            );
4341            let mut req = request.into_request();
4342            req.extensions_mut()
4343                .insert(
4344                    GrpcMethod::new(
4345                        "Vine.CocoonService",
4346                        "RegisterAuthenticationProvider",
4347                    ),
4348                );
4349            self.inner.unary(req, path, codec).await
4350        }
4351        /// Stop Debugging
4352        pub async fn stop_debugging(
4353            &mut self,
4354            request: impl tonic::IntoRequest<super::StopDebuggingRequest>,
4355        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4356            self.inner
4357                .ready()
4358                .await
4359                .map_err(|e| {
4360                    tonic::Status::unknown(
4361                        format!("Service was not ready: {}", e.into()),
4362                    )
4363                })?;
4364            let codec = tonic_prost::ProstCodec::default();
4365            let path = http::uri::PathAndQuery::from_static(
4366                "/Vine.CocoonService/StopDebugging",
4367            );
4368            let mut req = request.into_request();
4369            req.extensions_mut()
4370                .insert(GrpcMethod::new("Vine.CocoonService", "StopDebugging"));
4371            self.inner.unary(req, path, codec).await
4372        }
4373        /// Get Extension
4374        pub async fn get_extension(
4375            &mut self,
4376            request: impl tonic::IntoRequest<super::GetExtensionRequest>,
4377        ) -> std::result::Result<
4378            tonic::Response<super::GetExtensionResponse>,
4379            tonic::Status,
4380        > {
4381            self.inner
4382                .ready()
4383                .await
4384                .map_err(|e| {
4385                    tonic::Status::unknown(
4386                        format!("Service was not ready: {}", e.into()),
4387                    )
4388                })?;
4389            let codec = tonic_prost::ProstCodec::default();
4390            let path = http::uri::PathAndQuery::from_static(
4391                "/Vine.CocoonService/GetExtension",
4392            );
4393            let mut req = request.into_request();
4394            req.extensions_mut()
4395                .insert(GrpcMethod::new("Vine.CocoonService", "GetExtension"));
4396            self.inner.unary(req, path, codec).await
4397        }
4398        /// Get All Extensions
4399        pub async fn get_all_extensions(
4400            &mut self,
4401            request: impl tonic::IntoRequest<super::Empty>,
4402        ) -> std::result::Result<
4403            tonic::Response<super::GetAllExtensionsResponse>,
4404            tonic::Status,
4405        > {
4406            self.inner
4407                .ready()
4408                .await
4409                .map_err(|e| {
4410                    tonic::Status::unknown(
4411                        format!("Service was not ready: {}", e.into()),
4412                    )
4413                })?;
4414            let codec = tonic_prost::ProstCodec::default();
4415            let path = http::uri::PathAndQuery::from_static(
4416                "/Vine.CocoonService/GetAllExtensions",
4417            );
4418            let mut req = request.into_request();
4419            req.extensions_mut()
4420                .insert(GrpcMethod::new("Vine.CocoonService", "GetAllExtensions"));
4421            self.inner.unary(req, path, codec).await
4422        }
4423        /// Resize Terminal
4424        pub async fn resize_terminal(
4425            &mut self,
4426            request: impl tonic::IntoRequest<super::ResizeTerminalRequest>,
4427        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4428            self.inner
4429                .ready()
4430                .await
4431                .map_err(|e| {
4432                    tonic::Status::unknown(
4433                        format!("Service was not ready: {}", e.into()),
4434                    )
4435                })?;
4436            let codec = tonic_prost::ProstCodec::default();
4437            let path = http::uri::PathAndQuery::from_static(
4438                "/Vine.CocoonService/ResizeTerminal",
4439            );
4440            let mut req = request.into_request();
4441            req.extensions_mut()
4442                .insert(GrpcMethod::new("Vine.CocoonService", "ResizeTerminal"));
4443            self.inner.unary(req, path, codec).await
4444        }
4445        /// Get Configuration Value
4446        pub async fn get_configuration(
4447            &mut self,
4448            request: impl tonic::IntoRequest<super::GetConfigurationRequest>,
4449        ) -> std::result::Result<
4450            tonic::Response<super::GetConfigurationResponse>,
4451            tonic::Status,
4452        > {
4453            self.inner
4454                .ready()
4455                .await
4456                .map_err(|e| {
4457                    tonic::Status::unknown(
4458                        format!("Service was not ready: {}", e.into()),
4459                    )
4460                })?;
4461            let codec = tonic_prost::ProstCodec::default();
4462            let path = http::uri::PathAndQuery::from_static(
4463                "/Vine.CocoonService/GetConfiguration",
4464            );
4465            let mut req = request.into_request();
4466            req.extensions_mut()
4467                .insert(GrpcMethod::new("Vine.CocoonService", "GetConfiguration"));
4468            self.inner.unary(req, path, codec).await
4469        }
4470        /// Show Text Document - Open a text document
4471        pub async fn show_text_document(
4472            &mut self,
4473            request: impl tonic::IntoRequest<super::ShowTextDocumentRequest>,
4474        ) -> std::result::Result<
4475            tonic::Response<super::ShowTextDocumentResponse>,
4476            tonic::Status,
4477        > {
4478            self.inner
4479                .ready()
4480                .await
4481                .map_err(|e| {
4482                    tonic::Status::unknown(
4483                        format!("Service was not ready: {}", e.into()),
4484                    )
4485                })?;
4486            let codec = tonic_prost::ProstCodec::default();
4487            let path = http::uri::PathAndQuery::from_static(
4488                "/Vine.CocoonService/ShowTextDocument",
4489            );
4490            let mut req = request.into_request();
4491            req.extensions_mut()
4492                .insert(GrpcMethod::new("Vine.CocoonService", "ShowTextDocument"));
4493            self.inner.unary(req, path, codec).await
4494        }
4495        /// Show Information Message - Display an info message
4496        pub async fn show_information_message(
4497            &mut self,
4498            request: impl tonic::IntoRequest<super::ShowMessageRequest>,
4499        ) -> std::result::Result<
4500            tonic::Response<super::ShowMessageResponse>,
4501            tonic::Status,
4502        > {
4503            self.inner
4504                .ready()
4505                .await
4506                .map_err(|e| {
4507                    tonic::Status::unknown(
4508                        format!("Service was not ready: {}", e.into()),
4509                    )
4510                })?;
4511            let codec = tonic_prost::ProstCodec::default();
4512            let path = http::uri::PathAndQuery::from_static(
4513                "/Vine.CocoonService/ShowInformationMessage",
4514            );
4515            let mut req = request.into_request();
4516            req.extensions_mut()
4517                .insert(GrpcMethod::new("Vine.CocoonService", "ShowInformationMessage"));
4518            self.inner.unary(req, path, codec).await
4519        }
4520        /// Show Warning Message - Display a warning message
4521        pub async fn show_warning_message(
4522            &mut self,
4523            request: impl tonic::IntoRequest<super::ShowMessageRequest>,
4524        ) -> std::result::Result<
4525            tonic::Response<super::ShowMessageResponse>,
4526            tonic::Status,
4527        > {
4528            self.inner
4529                .ready()
4530                .await
4531                .map_err(|e| {
4532                    tonic::Status::unknown(
4533                        format!("Service was not ready: {}", e.into()),
4534                    )
4535                })?;
4536            let codec = tonic_prost::ProstCodec::default();
4537            let path = http::uri::PathAndQuery::from_static(
4538                "/Vine.CocoonService/ShowWarningMessage",
4539            );
4540            let mut req = request.into_request();
4541            req.extensions_mut()
4542                .insert(GrpcMethod::new("Vine.CocoonService", "ShowWarningMessage"));
4543            self.inner.unary(req, path, codec).await
4544        }
4545        /// Show Error Message - Display an error message
4546        pub async fn show_error_message(
4547            &mut self,
4548            request: impl tonic::IntoRequest<super::ShowMessageRequest>,
4549        ) -> std::result::Result<
4550            tonic::Response<super::ShowMessageResponse>,
4551            tonic::Status,
4552        > {
4553            self.inner
4554                .ready()
4555                .await
4556                .map_err(|e| {
4557                    tonic::Status::unknown(
4558                        format!("Service was not ready: {}", e.into()),
4559                    )
4560                })?;
4561            let codec = tonic_prost::ProstCodec::default();
4562            let path = http::uri::PathAndQuery::from_static(
4563                "/Vine.CocoonService/ShowErrorMessage",
4564            );
4565            let mut req = request.into_request();
4566            req.extensions_mut()
4567                .insert(GrpcMethod::new("Vine.CocoonService", "ShowErrorMessage"));
4568            self.inner.unary(req, path, codec).await
4569        }
4570        /// Create Status Bar Item - Create a status bar item
4571        pub async fn create_status_bar_item(
4572            &mut self,
4573            request: impl tonic::IntoRequest<super::CreateStatusBarItemRequest>,
4574        ) -> std::result::Result<
4575            tonic::Response<super::CreateStatusBarItemResponse>,
4576            tonic::Status,
4577        > {
4578            self.inner
4579                .ready()
4580                .await
4581                .map_err(|e| {
4582                    tonic::Status::unknown(
4583                        format!("Service was not ready: {}", e.into()),
4584                    )
4585                })?;
4586            let codec = tonic_prost::ProstCodec::default();
4587            let path = http::uri::PathAndQuery::from_static(
4588                "/Vine.CocoonService/CreateStatusBarItem",
4589            );
4590            let mut req = request.into_request();
4591            req.extensions_mut()
4592                .insert(GrpcMethod::new("Vine.CocoonService", "CreateStatusBarItem"));
4593            self.inner.unary(req, path, codec).await
4594        }
4595        /// Set Status Bar Text - Set status bar text
4596        pub async fn set_status_bar_text(
4597            &mut self,
4598            request: impl tonic::IntoRequest<super::SetStatusBarTextRequest>,
4599        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4600            self.inner
4601                .ready()
4602                .await
4603                .map_err(|e| {
4604                    tonic::Status::unknown(
4605                        format!("Service was not ready: {}", e.into()),
4606                    )
4607                })?;
4608            let codec = tonic_prost::ProstCodec::default();
4609            let path = http::uri::PathAndQuery::from_static(
4610                "/Vine.CocoonService/SetStatusBarText",
4611            );
4612            let mut req = request.into_request();
4613            req.extensions_mut()
4614                .insert(GrpcMethod::new("Vine.CocoonService", "SetStatusBarText"));
4615            self.inner.unary(req, path, codec).await
4616        }
4617        /// Create Webview Panel - Create a new webview panel
4618        pub async fn create_webview_panel(
4619            &mut self,
4620            request: impl tonic::IntoRequest<super::CreateWebviewPanelRequest>,
4621        ) -> std::result::Result<
4622            tonic::Response<super::CreateWebviewPanelResponse>,
4623            tonic::Status,
4624        > {
4625            self.inner
4626                .ready()
4627                .await
4628                .map_err(|e| {
4629                    tonic::Status::unknown(
4630                        format!("Service was not ready: {}", e.into()),
4631                    )
4632                })?;
4633            let codec = tonic_prost::ProstCodec::default();
4634            let path = http::uri::PathAndQuery::from_static(
4635                "/Vine.CocoonService/CreateWebviewPanel",
4636            );
4637            let mut req = request.into_request();
4638            req.extensions_mut()
4639                .insert(GrpcMethod::new("Vine.CocoonService", "CreateWebviewPanel"));
4640            self.inner.unary(req, path, codec).await
4641        }
4642        /// Set Webview HTML - Update webview HTML content
4643        pub async fn set_webview_html(
4644            &mut self,
4645            request: impl tonic::IntoRequest<super::SetWebviewHtmlRequest>,
4646        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4647            self.inner
4648                .ready()
4649                .await
4650                .map_err(|e| {
4651                    tonic::Status::unknown(
4652                        format!("Service was not ready: {}", e.into()),
4653                    )
4654                })?;
4655            let codec = tonic_prost::ProstCodec::default();
4656            let path = http::uri::PathAndQuery::from_static(
4657                "/Vine.CocoonService/SetWebviewHTML",
4658            );
4659            let mut req = request.into_request();
4660            req.extensions_mut()
4661                .insert(GrpcMethod::new("Vine.CocoonService", "SetWebviewHTML"));
4662            self.inner.unary(req, path, codec).await
4663        }
4664        /// On Did Receive Message - Receive message from webview
4665        pub async fn on_did_receive_message(
4666            &mut self,
4667            request: impl tonic::IntoRequest<super::OnDidReceiveMessageRequest>,
4668        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4669            self.inner
4670                .ready()
4671                .await
4672                .map_err(|e| {
4673                    tonic::Status::unknown(
4674                        format!("Service was not ready: {}", e.into()),
4675                    )
4676                })?;
4677            let codec = tonic_prost::ProstCodec::default();
4678            let path = http::uri::PathAndQuery::from_static(
4679                "/Vine.CocoonService/OnDidReceiveMessage",
4680            );
4681            let mut req = request.into_request();
4682            req.extensions_mut()
4683                .insert(GrpcMethod::new("Vine.CocoonService", "OnDidReceiveMessage"));
4684            self.inner.unary(req, path, codec).await
4685        }
4686        /// Read File - Read file contents
4687        pub async fn read_file(
4688            &mut self,
4689            request: impl tonic::IntoRequest<super::ReadFileRequest>,
4690        ) -> std::result::Result<
4691            tonic::Response<super::ReadFileResponse>,
4692            tonic::Status,
4693        > {
4694            self.inner
4695                .ready()
4696                .await
4697                .map_err(|e| {
4698                    tonic::Status::unknown(
4699                        format!("Service was not ready: {}", e.into()),
4700                    )
4701                })?;
4702            let codec = tonic_prost::ProstCodec::default();
4703            let path = http::uri::PathAndQuery::from_static(
4704                "/Vine.CocoonService/ReadFile",
4705            );
4706            let mut req = request.into_request();
4707            req.extensions_mut()
4708                .insert(GrpcMethod::new("Vine.CocoonService", "ReadFile"));
4709            self.inner.unary(req, path, codec).await
4710        }
4711        /// Write File - Write file contents
4712        pub async fn write_file(
4713            &mut self,
4714            request: impl tonic::IntoRequest<super::WriteFileRequest>,
4715        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4716            self.inner
4717                .ready()
4718                .await
4719                .map_err(|e| {
4720                    tonic::Status::unknown(
4721                        format!("Service was not ready: {}", e.into()),
4722                    )
4723                })?;
4724            let codec = tonic_prost::ProstCodec::default();
4725            let path = http::uri::PathAndQuery::from_static(
4726                "/Vine.CocoonService/WriteFile",
4727            );
4728            let mut req = request.into_request();
4729            req.extensions_mut()
4730                .insert(GrpcMethod::new("Vine.CocoonService", "WriteFile"));
4731            self.inner.unary(req, path, codec).await
4732        }
4733        /// Stat - Get file metadata
4734        pub async fn stat(
4735            &mut self,
4736            request: impl tonic::IntoRequest<super::StatRequest>,
4737        ) -> std::result::Result<tonic::Response<super::StatResponse>, tonic::Status> {
4738            self.inner
4739                .ready()
4740                .await
4741                .map_err(|e| {
4742                    tonic::Status::unknown(
4743                        format!("Service was not ready: {}", e.into()),
4744                    )
4745                })?;
4746            let codec = tonic_prost::ProstCodec::default();
4747            let path = http::uri::PathAndQuery::from_static("/Vine.CocoonService/Stat");
4748            let mut req = request.into_request();
4749            req.extensions_mut().insert(GrpcMethod::new("Vine.CocoonService", "Stat"));
4750            self.inner.unary(req, path, codec).await
4751        }
4752        /// Read Directory - List directory contents
4753        pub async fn readdir(
4754            &mut self,
4755            request: impl tonic::IntoRequest<super::ReaddirRequest>,
4756        ) -> std::result::Result<
4757            tonic::Response<super::ReaddirResponse>,
4758            tonic::Status,
4759        > {
4760            self.inner
4761                .ready()
4762                .await
4763                .map_err(|e| {
4764                    tonic::Status::unknown(
4765                        format!("Service was not ready: {}", e.into()),
4766                    )
4767                })?;
4768            let codec = tonic_prost::ProstCodec::default();
4769            let path = http::uri::PathAndQuery::from_static(
4770                "/Vine.CocoonService/Readdir",
4771            );
4772            let mut req = request.into_request();
4773            req.extensions_mut()
4774                .insert(GrpcMethod::new("Vine.CocoonService", "Readdir"));
4775            self.inner.unary(req, path, codec).await
4776        }
4777        /// Watch File - Watch file for changes
4778        pub async fn watch_file(
4779            &mut self,
4780            request: impl tonic::IntoRequest<super::WatchFileRequest>,
4781        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4782            self.inner
4783                .ready()
4784                .await
4785                .map_err(|e| {
4786                    tonic::Status::unknown(
4787                        format!("Service was not ready: {}", e.into()),
4788                    )
4789                })?;
4790            let codec = tonic_prost::ProstCodec::default();
4791            let path = http::uri::PathAndQuery::from_static(
4792                "/Vine.CocoonService/WatchFile",
4793            );
4794            let mut req = request.into_request();
4795            req.extensions_mut()
4796                .insert(GrpcMethod::new("Vine.CocoonService", "WatchFile"));
4797            self.inner.unary(req, path, codec).await
4798        }
4799        /// Find Files - Search for files
4800        pub async fn find_files(
4801            &mut self,
4802            request: impl tonic::IntoRequest<super::FindFilesRequest>,
4803        ) -> std::result::Result<
4804            tonic::Response<super::FindFilesResponse>,
4805            tonic::Status,
4806        > {
4807            self.inner
4808                .ready()
4809                .await
4810                .map_err(|e| {
4811                    tonic::Status::unknown(
4812                        format!("Service was not ready: {}", e.into()),
4813                    )
4814                })?;
4815            let codec = tonic_prost::ProstCodec::default();
4816            let path = http::uri::PathAndQuery::from_static(
4817                "/Vine.CocoonService/FindFiles",
4818            );
4819            let mut req = request.into_request();
4820            req.extensions_mut()
4821                .insert(GrpcMethod::new("Vine.CocoonService", "FindFiles"));
4822            self.inner.unary(req, path, codec).await
4823        }
4824        /// Find Text in Files - Search for text across files
4825        pub async fn find_text_in_files(
4826            &mut self,
4827            request: impl tonic::IntoRequest<super::FindTextInFilesRequest>,
4828        ) -> std::result::Result<
4829            tonic::Response<super::FindTextInFilesResponse>,
4830            tonic::Status,
4831        > {
4832            self.inner
4833                .ready()
4834                .await
4835                .map_err(|e| {
4836                    tonic::Status::unknown(
4837                        format!("Service was not ready: {}", e.into()),
4838                    )
4839                })?;
4840            let codec = tonic_prost::ProstCodec::default();
4841            let path = http::uri::PathAndQuery::from_static(
4842                "/Vine.CocoonService/FindTextInFiles",
4843            );
4844            let mut req = request.into_request();
4845            req.extensions_mut()
4846                .insert(GrpcMethod::new("Vine.CocoonService", "FindTextInFiles"));
4847            self.inner.unary(req, path, codec).await
4848        }
4849        /// Open Document - Open a document
4850        pub async fn open_document(
4851            &mut self,
4852            request: impl tonic::IntoRequest<super::OpenDocumentRequest>,
4853        ) -> std::result::Result<
4854            tonic::Response<super::OpenDocumentResponse>,
4855            tonic::Status,
4856        > {
4857            self.inner
4858                .ready()
4859                .await
4860                .map_err(|e| {
4861                    tonic::Status::unknown(
4862                        format!("Service was not ready: {}", e.into()),
4863                    )
4864                })?;
4865            let codec = tonic_prost::ProstCodec::default();
4866            let path = http::uri::PathAndQuery::from_static(
4867                "/Vine.CocoonService/OpenDocument",
4868            );
4869            let mut req = request.into_request();
4870            req.extensions_mut()
4871                .insert(GrpcMethod::new("Vine.CocoonService", "OpenDocument"));
4872            self.inner.unary(req, path, codec).await
4873        }
4874        /// Save All - Save all open documents
4875        pub async fn save_all(
4876            &mut self,
4877            request: impl tonic::IntoRequest<super::SaveAllRequest>,
4878        ) -> std::result::Result<
4879            tonic::Response<super::SaveAllResponse>,
4880            tonic::Status,
4881        > {
4882            self.inner
4883                .ready()
4884                .await
4885                .map_err(|e| {
4886                    tonic::Status::unknown(
4887                        format!("Service was not ready: {}", e.into()),
4888                    )
4889                })?;
4890            let codec = tonic_prost::ProstCodec::default();
4891            let path = http::uri::PathAndQuery::from_static(
4892                "/Vine.CocoonService/SaveAll",
4893            );
4894            let mut req = request.into_request();
4895            req.extensions_mut()
4896                .insert(GrpcMethod::new("Vine.CocoonService", "SaveAll"));
4897            self.inner.unary(req, path, codec).await
4898        }
4899        /// Apply Edit - Apply a text edit to a document
4900        pub async fn apply_edit(
4901            &mut self,
4902            request: impl tonic::IntoRequest<super::ApplyEditRequest>,
4903        ) -> std::result::Result<
4904            tonic::Response<super::ApplyEditResponse>,
4905            tonic::Status,
4906        > {
4907            self.inner
4908                .ready()
4909                .await
4910                .map_err(|e| {
4911                    tonic::Status::unknown(
4912                        format!("Service was not ready: {}", e.into()),
4913                    )
4914                })?;
4915            let codec = tonic_prost::ProstCodec::default();
4916            let path = http::uri::PathAndQuery::from_static(
4917                "/Vine.CocoonService/ApplyEdit",
4918            );
4919            let mut req = request.into_request();
4920            req.extensions_mut()
4921                .insert(GrpcMethod::new("Vine.CocoonService", "ApplyEdit"));
4922            self.inner.unary(req, path, codec).await
4923        }
4924        /// Update Configuration - Notify of configuration changes
4925        pub async fn update_configuration(
4926            &mut self,
4927            request: impl tonic::IntoRequest<super::UpdateConfigurationRequest>,
4928        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4929            self.inner
4930                .ready()
4931                .await
4932                .map_err(|e| {
4933                    tonic::Status::unknown(
4934                        format!("Service was not ready: {}", e.into()),
4935                    )
4936                })?;
4937            let codec = tonic_prost::ProstCodec::default();
4938            let path = http::uri::PathAndQuery::from_static(
4939                "/Vine.CocoonService/UpdateConfiguration",
4940            );
4941            let mut req = request.into_request();
4942            req.extensions_mut()
4943                .insert(GrpcMethod::new("Vine.CocoonService", "UpdateConfiguration"));
4944            self.inner.unary(req, path, codec).await
4945        }
4946        /// Update Workspace Folders - Update workspace folders
4947        pub async fn update_workspace_folders(
4948            &mut self,
4949            request: impl tonic::IntoRequest<super::UpdateWorkspaceFoldersRequest>,
4950        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4951            self.inner
4952                .ready()
4953                .await
4954                .map_err(|e| {
4955                    tonic::Status::unknown(
4956                        format!("Service was not ready: {}", e.into()),
4957                    )
4958                })?;
4959            let codec = tonic_prost::ProstCodec::default();
4960            let path = http::uri::PathAndQuery::from_static(
4961                "/Vine.CocoonService/UpdateWorkspaceFolders",
4962            );
4963            let mut req = request.into_request();
4964            req.extensions_mut()
4965                .insert(GrpcMethod::new("Vine.CocoonService", "UpdateWorkspaceFolders"));
4966            self.inner.unary(req, path, codec).await
4967        }
4968        /// Open Terminal - Open a new terminal
4969        pub async fn open_terminal(
4970            &mut self,
4971            request: impl tonic::IntoRequest<super::OpenTerminalRequest>,
4972        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4973            self.inner
4974                .ready()
4975                .await
4976                .map_err(|e| {
4977                    tonic::Status::unknown(
4978                        format!("Service was not ready: {}", e.into()),
4979                    )
4980                })?;
4981            let codec = tonic_prost::ProstCodec::default();
4982            let path = http::uri::PathAndQuery::from_static(
4983                "/Vine.CocoonService/OpenTerminal",
4984            );
4985            let mut req = request.into_request();
4986            req.extensions_mut()
4987                .insert(GrpcMethod::new("Vine.CocoonService", "OpenTerminal"));
4988            self.inner.unary(req, path, codec).await
4989        }
4990        /// Terminal Input - Send input to terminal
4991        pub async fn terminal_input(
4992            &mut self,
4993            request: impl tonic::IntoRequest<super::TerminalInputRequest>,
4994        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4995            self.inner
4996                .ready()
4997                .await
4998                .map_err(|e| {
4999                    tonic::Status::unknown(
5000                        format!("Service was not ready: {}", e.into()),
5001                    )
5002                })?;
5003            let codec = tonic_prost::ProstCodec::default();
5004            let path = http::uri::PathAndQuery::from_static(
5005                "/Vine.CocoonService/TerminalInput",
5006            );
5007            let mut req = request.into_request();
5008            req.extensions_mut()
5009                .insert(GrpcMethod::new("Vine.CocoonService", "TerminalInput"));
5010            self.inner.unary(req, path, codec).await
5011        }
5012        /// Close Terminal - Close a terminal
5013        pub async fn close_terminal(
5014            &mut self,
5015            request: impl tonic::IntoRequest<super::CloseTerminalRequest>,
5016        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5017            self.inner
5018                .ready()
5019                .await
5020                .map_err(|e| {
5021                    tonic::Status::unknown(
5022                        format!("Service was not ready: {}", e.into()),
5023                    )
5024                })?;
5025            let codec = tonic_prost::ProstCodec::default();
5026            let path = http::uri::PathAndQuery::from_static(
5027                "/Vine.CocoonService/CloseTerminal",
5028            );
5029            let mut req = request.into_request();
5030            req.extensions_mut()
5031                .insert(GrpcMethod::new("Vine.CocoonService", "CloseTerminal"));
5032            self.inner.unary(req, path, codec).await
5033        }
5034        /// Accept Terminal Opened - Notification: Terminal opened
5035        pub async fn accept_terminal_opened(
5036            &mut self,
5037            request: impl tonic::IntoRequest<super::TerminalOpenedNotification>,
5038        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5039            self.inner
5040                .ready()
5041                .await
5042                .map_err(|e| {
5043                    tonic::Status::unknown(
5044                        format!("Service was not ready: {}", e.into()),
5045                    )
5046                })?;
5047            let codec = tonic_prost::ProstCodec::default();
5048            let path = http::uri::PathAndQuery::from_static(
5049                "/Vine.CocoonService/AcceptTerminalOpened",
5050            );
5051            let mut req = request.into_request();
5052            req.extensions_mut()
5053                .insert(GrpcMethod::new("Vine.CocoonService", "AcceptTerminalOpened"));
5054            self.inner.unary(req, path, codec).await
5055        }
5056        /// Accept Terminal Closed - Notification: Terminal closed
5057        pub async fn accept_terminal_closed(
5058            &mut self,
5059            request: impl tonic::IntoRequest<super::TerminalClosedNotification>,
5060        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5061            self.inner
5062                .ready()
5063                .await
5064                .map_err(|e| {
5065                    tonic::Status::unknown(
5066                        format!("Service was not ready: {}", e.into()),
5067                    )
5068                })?;
5069            let codec = tonic_prost::ProstCodec::default();
5070            let path = http::uri::PathAndQuery::from_static(
5071                "/Vine.CocoonService/AcceptTerminalClosed",
5072            );
5073            let mut req = request.into_request();
5074            req.extensions_mut()
5075                .insert(GrpcMethod::new("Vine.CocoonService", "AcceptTerminalClosed"));
5076            self.inner.unary(req, path, codec).await
5077        }
5078        /// Accept Terminal Process ID - Notification: Terminal process ID
5079        pub async fn accept_terminal_process_id(
5080            &mut self,
5081            request: impl tonic::IntoRequest<super::TerminalProcessIdNotification>,
5082        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5083            self.inner
5084                .ready()
5085                .await
5086                .map_err(|e| {
5087                    tonic::Status::unknown(
5088                        format!("Service was not ready: {}", e.into()),
5089                    )
5090                })?;
5091            let codec = tonic_prost::ProstCodec::default();
5092            let path = http::uri::PathAndQuery::from_static(
5093                "/Vine.CocoonService/AcceptTerminalProcessId",
5094            );
5095            let mut req = request.into_request();
5096            req.extensions_mut()
5097                .insert(
5098                    GrpcMethod::new("Vine.CocoonService", "AcceptTerminalProcessId"),
5099                );
5100            self.inner.unary(req, path, codec).await
5101        }
5102        /// Accept Terminal Process Data - Notification: Terminal output
5103        pub async fn accept_terminal_process_data(
5104            &mut self,
5105            request: impl tonic::IntoRequest<super::TerminalDataNotification>,
5106        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5107            self.inner
5108                .ready()
5109                .await
5110                .map_err(|e| {
5111                    tonic::Status::unknown(
5112                        format!("Service was not ready: {}", e.into()),
5113                    )
5114                })?;
5115            let codec = tonic_prost::ProstCodec::default();
5116            let path = http::uri::PathAndQuery::from_static(
5117                "/Vine.CocoonService/AcceptTerminalProcessData",
5118            );
5119            let mut req = request.into_request();
5120            req.extensions_mut()
5121                .insert(
5122                    GrpcMethod::new("Vine.CocoonService", "AcceptTerminalProcessData"),
5123                );
5124            self.inner.unary(req, path, codec).await
5125        }
5126        /// Register Tree View Provider - Register a tree view provider
5127        pub async fn register_tree_view_provider(
5128            &mut self,
5129            request: impl tonic::IntoRequest<super::RegisterTreeViewProviderRequest>,
5130        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5131            self.inner
5132                .ready()
5133                .await
5134                .map_err(|e| {
5135                    tonic::Status::unknown(
5136                        format!("Service was not ready: {}", e.into()),
5137                    )
5138                })?;
5139            let codec = tonic_prost::ProstCodec::default();
5140            let path = http::uri::PathAndQuery::from_static(
5141                "/Vine.CocoonService/RegisterTreeViewProvider",
5142            );
5143            let mut req = request.into_request();
5144            req.extensions_mut()
5145                .insert(
5146                    GrpcMethod::new("Vine.CocoonService", "RegisterTreeViewProvider"),
5147                );
5148            self.inner.unary(req, path, codec).await
5149        }
5150        /// Get Tree Children - Request tree view children
5151        pub async fn get_tree_children(
5152            &mut self,
5153            request: impl tonic::IntoRequest<super::GetTreeChildrenRequest>,
5154        ) -> std::result::Result<
5155            tonic::Response<super::GetTreeChildrenResponse>,
5156            tonic::Status,
5157        > {
5158            self.inner
5159                .ready()
5160                .await
5161                .map_err(|e| {
5162                    tonic::Status::unknown(
5163                        format!("Service was not ready: {}", e.into()),
5164                    )
5165                })?;
5166            let codec = tonic_prost::ProstCodec::default();
5167            let path = http::uri::PathAndQuery::from_static(
5168                "/Vine.CocoonService/GetTreeChildren",
5169            );
5170            let mut req = request.into_request();
5171            req.extensions_mut()
5172                .insert(GrpcMethod::new("Vine.CocoonService", "GetTreeChildren"));
5173            self.inner.unary(req, path, codec).await
5174        }
5175        /// Register SCM Provider - Register source control provider
5176        pub async fn register_scm_provider(
5177            &mut self,
5178            request: impl tonic::IntoRequest<super::RegisterScmProviderRequest>,
5179        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5180            self.inner
5181                .ready()
5182                .await
5183                .map_err(|e| {
5184                    tonic::Status::unknown(
5185                        format!("Service was not ready: {}", e.into()),
5186                    )
5187                })?;
5188            let codec = tonic_prost::ProstCodec::default();
5189            let path = http::uri::PathAndQuery::from_static(
5190                "/Vine.CocoonService/RegisterSCMProvider",
5191            );
5192            let mut req = request.into_request();
5193            req.extensions_mut()
5194                .insert(GrpcMethod::new("Vine.CocoonService", "RegisterSCMProvider"));
5195            self.inner.unary(req, path, codec).await
5196        }
5197        /// Update SCM Group - Update SCM group
5198        pub async fn update_scm_group(
5199            &mut self,
5200            request: impl tonic::IntoRequest<super::UpdateScmGroupRequest>,
5201        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5202            self.inner
5203                .ready()
5204                .await
5205                .map_err(|e| {
5206                    tonic::Status::unknown(
5207                        format!("Service was not ready: {}", e.into()),
5208                    )
5209                })?;
5210            let codec = tonic_prost::ProstCodec::default();
5211            let path = http::uri::PathAndQuery::from_static(
5212                "/Vine.CocoonService/UpdateSCMGroup",
5213            );
5214            let mut req = request.into_request();
5215            req.extensions_mut()
5216                .insert(GrpcMethod::new("Vine.CocoonService", "UpdateSCMGroup"));
5217            self.inner.unary(req, path, codec).await
5218        }
5219        /// Execute Git - Execute git command
5220        pub async fn git_exec(
5221            &mut self,
5222            request: impl tonic::IntoRequest<super::GitExecRequest>,
5223        ) -> std::result::Result<
5224            tonic::Response<super::GitExecResponse>,
5225            tonic::Status,
5226        > {
5227            self.inner
5228                .ready()
5229                .await
5230                .map_err(|e| {
5231                    tonic::Status::unknown(
5232                        format!("Service was not ready: {}", e.into()),
5233                    )
5234                })?;
5235            let codec = tonic_prost::ProstCodec::default();
5236            let path = http::uri::PathAndQuery::from_static(
5237                "/Vine.CocoonService/GitExec",
5238            );
5239            let mut req = request.into_request();
5240            req.extensions_mut()
5241                .insert(GrpcMethod::new("Vine.CocoonService", "GitExec"));
5242            self.inner.unary(req, path, codec).await
5243        }
5244        /// Register Debug Adapter - Register debug adapter
5245        pub async fn register_debug_adapter(
5246            &mut self,
5247            request: impl tonic::IntoRequest<super::RegisterDebugAdapterRequest>,
5248        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5249            self.inner
5250                .ready()
5251                .await
5252                .map_err(|e| {
5253                    tonic::Status::unknown(
5254                        format!("Service was not ready: {}", e.into()),
5255                    )
5256                })?;
5257            let codec = tonic_prost::ProstCodec::default();
5258            let path = http::uri::PathAndQuery::from_static(
5259                "/Vine.CocoonService/RegisterDebugAdapter",
5260            );
5261            let mut req = request.into_request();
5262            req.extensions_mut()
5263                .insert(GrpcMethod::new("Vine.CocoonService", "RegisterDebugAdapter"));
5264            self.inner.unary(req, path, codec).await
5265        }
5266        /// Start Debugging - Start debug session
5267        pub async fn start_debugging(
5268            &mut self,
5269            request: impl tonic::IntoRequest<super::StartDebuggingRequest>,
5270        ) -> std::result::Result<
5271            tonic::Response<super::StartDebuggingResponse>,
5272            tonic::Status,
5273        > {
5274            self.inner
5275                .ready()
5276                .await
5277                .map_err(|e| {
5278                    tonic::Status::unknown(
5279                        format!("Service was not ready: {}", e.into()),
5280                    )
5281                })?;
5282            let codec = tonic_prost::ProstCodec::default();
5283            let path = http::uri::PathAndQuery::from_static(
5284                "/Vine.CocoonService/StartDebugging",
5285            );
5286            let mut req = request.into_request();
5287            req.extensions_mut()
5288                .insert(GrpcMethod::new("Vine.CocoonService", "StartDebugging"));
5289            self.inner.unary(req, path, codec).await
5290        }
5291        /// Participate in Save - Extension participates in save
5292        pub async fn participate_in_save(
5293            &mut self,
5294            request: impl tonic::IntoRequest<super::ParticipateInSaveRequest>,
5295        ) -> std::result::Result<
5296            tonic::Response<super::ParticipateInSaveResponse>,
5297            tonic::Status,
5298        > {
5299            self.inner
5300                .ready()
5301                .await
5302                .map_err(|e| {
5303                    tonic::Status::unknown(
5304                        format!("Service was not ready: {}", e.into()),
5305                    )
5306                })?;
5307            let codec = tonic_prost::ProstCodec::default();
5308            let path = http::uri::PathAndQuery::from_static(
5309                "/Vine.CocoonService/ParticipateInSave",
5310            );
5311            let mut req = request.into_request();
5312            req.extensions_mut()
5313                .insert(GrpcMethod::new("Vine.CocoonService", "ParticipateInSave"));
5314            self.inner.unary(req, path, codec).await
5315        }
5316        /// Get Secret - Retrieve a secret from storage
5317        pub async fn get_secret(
5318            &mut self,
5319            request: impl tonic::IntoRequest<super::GetSecretRequest>,
5320        ) -> std::result::Result<
5321            tonic::Response<super::GetSecretResponse>,
5322            tonic::Status,
5323        > {
5324            self.inner
5325                .ready()
5326                .await
5327                .map_err(|e| {
5328                    tonic::Status::unknown(
5329                        format!("Service was not ready: {}", e.into()),
5330                    )
5331                })?;
5332            let codec = tonic_prost::ProstCodec::default();
5333            let path = http::uri::PathAndQuery::from_static(
5334                "/Vine.CocoonService/GetSecret",
5335            );
5336            let mut req = request.into_request();
5337            req.extensions_mut()
5338                .insert(GrpcMethod::new("Vine.CocoonService", "GetSecret"));
5339            self.inner.unary(req, path, codec).await
5340        }
5341        /// Store Secret - Store a secret in storage
5342        pub async fn store_secret(
5343            &mut self,
5344            request: impl tonic::IntoRequest<super::StoreSecretRequest>,
5345        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5346            self.inner
5347                .ready()
5348                .await
5349                .map_err(|e| {
5350                    tonic::Status::unknown(
5351                        format!("Service was not ready: {}", e.into()),
5352                    )
5353                })?;
5354            let codec = tonic_prost::ProstCodec::default();
5355            let path = http::uri::PathAndQuery::from_static(
5356                "/Vine.CocoonService/StoreSecret",
5357            );
5358            let mut req = request.into_request();
5359            req.extensions_mut()
5360                .insert(GrpcMethod::new("Vine.CocoonService", "StoreSecret"));
5361            self.inner.unary(req, path, codec).await
5362        }
5363        /// Delete Secret - Delete a secret from storage
5364        pub async fn delete_secret(
5365            &mut self,
5366            request: impl tonic::IntoRequest<super::DeleteSecretRequest>,
5367        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5368            self.inner
5369                .ready()
5370                .await
5371                .map_err(|e| {
5372                    tonic::Status::unknown(
5373                        format!("Service was not ready: {}", e.into()),
5374                    )
5375                })?;
5376            let codec = tonic_prost::ProstCodec::default();
5377            let path = http::uri::PathAndQuery::from_static(
5378                "/Vine.CocoonService/DeleteSecret",
5379            );
5380            let mut req = request.into_request();
5381            req.extensions_mut()
5382                .insert(GrpcMethod::new("Vine.CocoonService", "DeleteSecret"));
5383            self.inner.unary(req, path, codec).await
5384        }
5385    }
5386}
5387/// Generated server implementations.
5388pub mod cocoon_service_server {
5389    #![allow(
5390        unused_variables,
5391        dead_code,
5392        missing_docs,
5393        clippy::wildcard_imports,
5394        clippy::let_unit_value,
5395    )]
5396    use tonic::codegen::*;
5397    /// Generated trait containing gRPC methods that should be implemented for use with CocoonServiceServer.
5398    #[async_trait]
5399    pub trait CocoonService: std::marker::Send + std::marker::Sync + 'static {
5400        /// A generic request-response method for Mountain to call a function on Cocoon.
5401        async fn process_mountain_request(
5402            &self,
5403            request: tonic::Request<super::GenericRequest>,
5404        ) -> std::result::Result<tonic::Response<super::GenericResponse>, tonic::Status>;
5405        /// A generic fire-and-forget method for Mountain to send a notification to Cocoon.
5406        async fn send_mountain_notification(
5407            &self,
5408            request: tonic::Request<super::GenericNotification>,
5409        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5410        /// A method for Mountain to request that Cocoon cancel a long-running operation.
5411        async fn cancel_operation(
5412            &self,
5413            request: tonic::Request<super::CancelOperationRequest>,
5414        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5415        /// Server streaming response type for the OpenChannelFromMountain method.
5416        type OpenChannelFromMountainStream: tonic::codegen::tokio_stream::Stream<
5417                Item = std::result::Result<super::Envelope, tonic::Status>,
5418            >
5419            + std::marker::Send
5420            + 'static;
5421        /// LAND-PATCH B7-S6 P2: bidirectional streaming channel (mirror of
5422        /// MountainService::OpenChannelFromCocoon). Mountain opens this
5423        /// stream once per Cocoon connection; all subsequent traffic
5424        /// multiplexes over it. Reverses the call direction so Mountain is
5425        /// the streaming initiator (which matches the typical "client
5426        /// opens stream, server replies" gRPC idiom).
5427        async fn open_channel_from_mountain(
5428            &self,
5429            request: tonic::Request<tonic::Streaming<super::Envelope>>,
5430        ) -> std::result::Result<
5431            tonic::Response<Self::OpenChannelFromMountainStream>,
5432            tonic::Status,
5433        >;
5434        /// Handshake - Called by Cocoon to signal readiness
5435        async fn initial_handshake(
5436            &self,
5437            request: tonic::Request<super::Empty>,
5438        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5439        /// Initialize Extension Host - Mountain sends initialization data to Cocoon
5440        async fn init_extension_host(
5441            &self,
5442            request: tonic::Request<super::InitExtensionHostRequest>,
5443        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5444        /// Register Command - Cocoon registers an extension command
5445        async fn register_command(
5446            &self,
5447            request: tonic::Request<super::RegisterCommandRequest>,
5448        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5449        /// Execute Contributed Command - Mountain executes an extension command
5450        async fn execute_contributed_command(
5451            &self,
5452            request: tonic::Request<super::ExecuteCommandRequest>,
5453        ) -> std::result::Result<
5454            tonic::Response<super::ExecuteCommandResponse>,
5455            tonic::Status,
5456        >;
5457        /// Unregister Command - Unregister a previously registered command
5458        async fn unregister_command(
5459            &self,
5460            request: tonic::Request<super::UnregisterCommandRequest>,
5461        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5462        /// Register Hover Provider - Register a hover provider
5463        async fn register_hover_provider(
5464            &self,
5465            request: tonic::Request<super::RegisterProviderRequest>,
5466        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5467        /// Provide Hover - Request hover information
5468        async fn provide_hover(
5469            &self,
5470            request: tonic::Request<super::ProvideHoverRequest>,
5471        ) -> std::result::Result<
5472            tonic::Response<super::ProvideHoverResponse>,
5473            tonic::Status,
5474        >;
5475        /// Register Completion Item Provider - Register a completion provider
5476        async fn register_completion_item_provider(
5477            &self,
5478            request: tonic::Request<super::RegisterProviderRequest>,
5479        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5480        /// Provide Completion Items - Request completion items
5481        async fn provide_completion_items(
5482            &self,
5483            request: tonic::Request<super::ProvideCompletionItemsRequest>,
5484        ) -> std::result::Result<
5485            tonic::Response<super::ProvideCompletionItemsResponse>,
5486            tonic::Status,
5487        >;
5488        /// Register Definition Provider - Register a definition provider
5489        async fn register_definition_provider(
5490            &self,
5491            request: tonic::Request<super::RegisterProviderRequest>,
5492        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5493        /// Provide Definition - Request definition location
5494        async fn provide_definition(
5495            &self,
5496            request: tonic::Request<super::ProvideDefinitionRequest>,
5497        ) -> std::result::Result<
5498            tonic::Response<super::ProvideDefinitionResponse>,
5499            tonic::Status,
5500        >;
5501        /// Register Reference Provider - Register a reference provider
5502        async fn register_reference_provider(
5503            &self,
5504            request: tonic::Request<super::RegisterProviderRequest>,
5505        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5506        /// Provide References - Request references
5507        async fn provide_references(
5508            &self,
5509            request: tonic::Request<super::ProvideReferencesRequest>,
5510        ) -> std::result::Result<
5511            tonic::Response<super::ProvideReferencesResponse>,
5512            tonic::Status,
5513        >;
5514        /// Register Code Actions Provider - Register code actions provider
5515        async fn register_code_actions_provider(
5516            &self,
5517            request: tonic::Request<super::RegisterProviderRequest>,
5518        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5519        /// Provide Code Actions - Request code actions
5520        async fn provide_code_actions(
5521            &self,
5522            request: tonic::Request<super::ProvideCodeActionsRequest>,
5523        ) -> std::result::Result<
5524            tonic::Response<super::ProvideCodeActionsResponse>,
5525            tonic::Status,
5526        >;
5527        /// Register Document Highlight Provider
5528        async fn register_document_highlight_provider(
5529            &self,
5530            request: tonic::Request<super::RegisterProviderRequest>,
5531        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5532        /// Provide Document Highlights
5533        async fn provide_document_highlights(
5534            &self,
5535            request: tonic::Request<super::ProvideDocumentHighlightsRequest>,
5536        ) -> std::result::Result<
5537            tonic::Response<super::ProvideDocumentHighlightsResponse>,
5538            tonic::Status,
5539        >;
5540        /// Register Document Symbol Provider
5541        async fn register_document_symbol_provider(
5542            &self,
5543            request: tonic::Request<super::RegisterProviderRequest>,
5544        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5545        /// Provide Document Symbols
5546        async fn provide_document_symbols(
5547            &self,
5548            request: tonic::Request<super::ProvideDocumentSymbolsRequest>,
5549        ) -> std::result::Result<
5550            tonic::Response<super::ProvideDocumentSymbolsResponse>,
5551            tonic::Status,
5552        >;
5553        /// Register Workspace Symbol Provider
5554        async fn register_workspace_symbol_provider(
5555            &self,
5556            request: tonic::Request<super::RegisterProviderRequest>,
5557        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5558        /// Provide Workspace Symbols
5559        async fn provide_workspace_symbols(
5560            &self,
5561            request: tonic::Request<super::ProvideWorkspaceSymbolsRequest>,
5562        ) -> std::result::Result<
5563            tonic::Response<super::ProvideWorkspaceSymbolsResponse>,
5564            tonic::Status,
5565        >;
5566        /// Register Rename Provider
5567        async fn register_rename_provider(
5568            &self,
5569            request: tonic::Request<super::RegisterProviderRequest>,
5570        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5571        /// Provide Rename Edits
5572        async fn provide_rename_edits(
5573            &self,
5574            request: tonic::Request<super::ProvideRenameEditsRequest>,
5575        ) -> std::result::Result<
5576            tonic::Response<super::ProvideRenameEditsResponse>,
5577            tonic::Status,
5578        >;
5579        /// Register Document Formatting Provider
5580        async fn register_document_formatting_provider(
5581            &self,
5582            request: tonic::Request<super::RegisterProviderRequest>,
5583        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5584        /// Provide Document Formatting
5585        async fn provide_document_formatting(
5586            &self,
5587            request: tonic::Request<super::ProvideDocumentFormattingRequest>,
5588        ) -> std::result::Result<
5589            tonic::Response<super::ProvideDocumentFormattingResponse>,
5590            tonic::Status,
5591        >;
5592        /// Register Document Range Formatting Provider
5593        async fn register_document_range_formatting_provider(
5594            &self,
5595            request: tonic::Request<super::RegisterProviderRequest>,
5596        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5597        /// Provide Document Range Formatting
5598        async fn provide_document_range_formatting(
5599            &self,
5600            request: tonic::Request<super::ProvideDocumentRangeFormattingRequest>,
5601        ) -> std::result::Result<
5602            tonic::Response<super::ProvideDocumentRangeFormattingResponse>,
5603            tonic::Status,
5604        >;
5605        /// Register On Type Formatting Provider
5606        async fn register_on_type_formatting_provider(
5607            &self,
5608            request: tonic::Request<super::RegisterOnTypeFormattingProviderRequest>,
5609        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5610        /// Provide On Type Formatting
5611        async fn provide_on_type_formatting(
5612            &self,
5613            request: tonic::Request<super::ProvideOnTypeFormattingRequest>,
5614        ) -> std::result::Result<
5615            tonic::Response<super::ProvideOnTypeFormattingResponse>,
5616            tonic::Status,
5617        >;
5618        /// Register Signature Help Provider
5619        async fn register_signature_help_provider(
5620            &self,
5621            request: tonic::Request<super::RegisterSignatureHelpProviderRequest>,
5622        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5623        /// Provide Signature Help
5624        async fn provide_signature_help(
5625            &self,
5626            request: tonic::Request<super::ProvideSignatureHelpRequest>,
5627        ) -> std::result::Result<
5628            tonic::Response<super::ProvideSignatureHelpResponse>,
5629            tonic::Status,
5630        >;
5631        /// Register Code Lens Provider
5632        async fn register_code_lens_provider(
5633            &self,
5634            request: tonic::Request<super::RegisterProviderRequest>,
5635        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5636        /// Provide Code Lenses
5637        async fn provide_code_lenses(
5638            &self,
5639            request: tonic::Request<super::ProvideCodeLensesRequest>,
5640        ) -> std::result::Result<
5641            tonic::Response<super::ProvideCodeLensesResponse>,
5642            tonic::Status,
5643        >;
5644        /// Register Folding Range Provider
5645        async fn register_folding_range_provider(
5646            &self,
5647            request: tonic::Request<super::RegisterProviderRequest>,
5648        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5649        /// Provide Folding Ranges
5650        async fn provide_folding_ranges(
5651            &self,
5652            request: tonic::Request<super::ProvideFoldingRangesRequest>,
5653        ) -> std::result::Result<
5654            tonic::Response<super::ProvideFoldingRangesResponse>,
5655            tonic::Status,
5656        >;
5657        /// Register Selection Range Provider
5658        async fn register_selection_range_provider(
5659            &self,
5660            request: tonic::Request<super::RegisterProviderRequest>,
5661        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5662        /// Provide Selection Ranges
5663        async fn provide_selection_ranges(
5664            &self,
5665            request: tonic::Request<super::ProvideSelectionRangesRequest>,
5666        ) -> std::result::Result<
5667            tonic::Response<super::ProvideSelectionRangesResponse>,
5668            tonic::Status,
5669        >;
5670        /// Register Semantic Tokens Provider
5671        async fn register_semantic_tokens_provider(
5672            &self,
5673            request: tonic::Request<super::RegisterSemanticTokensProviderRequest>,
5674        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5675        /// Provide Semantic Tokens Full
5676        async fn provide_semantic_tokens_full(
5677            &self,
5678            request: tonic::Request<super::ProvideSemanticTokensRequest>,
5679        ) -> std::result::Result<
5680            tonic::Response<super::ProvideSemanticTokensResponse>,
5681            tonic::Status,
5682        >;
5683        /// Register Inlay Hints Provider
5684        async fn register_inlay_hints_provider(
5685            &self,
5686            request: tonic::Request<super::RegisterProviderRequest>,
5687        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5688        /// Provide Inlay Hints
5689        async fn provide_inlay_hints(
5690            &self,
5691            request: tonic::Request<super::ProvideInlayHintsRequest>,
5692        ) -> std::result::Result<
5693            tonic::Response<super::ProvideInlayHintsResponse>,
5694            tonic::Status,
5695        >;
5696        /// Register Type Hierarchy Provider
5697        async fn register_type_hierarchy_provider(
5698            &self,
5699            request: tonic::Request<super::RegisterProviderRequest>,
5700        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5701        /// Provide Type Hierarchy Supertypes
5702        async fn provide_type_hierarchy_supertypes(
5703            &self,
5704            request: tonic::Request<super::ProvideTypeHierarchyRequest>,
5705        ) -> std::result::Result<
5706            tonic::Response<super::ProvideTypeHierarchyResponse>,
5707            tonic::Status,
5708        >;
5709        /// Provide Type Hierarchy Subtypes
5710        async fn provide_type_hierarchy_subtypes(
5711            &self,
5712            request: tonic::Request<super::ProvideTypeHierarchyRequest>,
5713        ) -> std::result::Result<
5714            tonic::Response<super::ProvideTypeHierarchyResponse>,
5715            tonic::Status,
5716        >;
5717        /// Register Call Hierarchy Provider
5718        async fn register_call_hierarchy_provider(
5719            &self,
5720            request: tonic::Request<super::RegisterProviderRequest>,
5721        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5722        /// Provide Call Hierarchy Incoming Calls
5723        async fn provide_call_hierarchy_incoming_calls(
5724            &self,
5725            request: tonic::Request<super::ProvideCallHierarchyRequest>,
5726        ) -> std::result::Result<
5727            tonic::Response<super::ProvideCallHierarchyResponse>,
5728            tonic::Status,
5729        >;
5730        /// Provide Call Hierarchy Outgoing Calls
5731        async fn provide_call_hierarchy_outgoing_calls(
5732            &self,
5733            request: tonic::Request<super::ProvideCallHierarchyRequest>,
5734        ) -> std::result::Result<
5735            tonic::Response<super::ProvideCallHierarchyResponse>,
5736            tonic::Status,
5737        >;
5738        /// Register Linked Editing Range Provider
5739        async fn register_linked_editing_range_provider(
5740            &self,
5741            request: tonic::Request<super::RegisterProviderRequest>,
5742        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5743        /// Provide Linked Editing Ranges
5744        async fn provide_linked_editing_ranges(
5745            &self,
5746            request: tonic::Request<super::ProvideLinkedEditingRangesRequest>,
5747        ) -> std::result::Result<
5748            tonic::Response<super::ProvideLinkedEditingRangesResponse>,
5749            tonic::Status,
5750        >;
5751        /// Register Inline Completion Item Provider (GitHub Copilot, Roo Code, etc.)
5752        async fn register_inline_completion_item_provider(
5753            &self,
5754            request: tonic::Request<super::RegisterProviderRequest>,
5755        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5756        /// Provide Inline Completion Items - called by Monaco when the cursor pauses
5757        async fn provide_inline_completion_items(
5758            &self,
5759            request: tonic::Request<super::ProvideInlineCompletionRequest>,
5760        ) -> std::result::Result<
5761            tonic::Response<super::ProvideInlineCompletionResponse>,
5762            tonic::Status,
5763        >;
5764        /// Show Quick Pick
5765        async fn show_quick_pick(
5766            &self,
5767            request: tonic::Request<super::ShowQuickPickRequest>,
5768        ) -> std::result::Result<
5769            tonic::Response<super::ShowQuickPickResponse>,
5770            tonic::Status,
5771        >;
5772        /// Show Input Box
5773        async fn show_input_box(
5774            &self,
5775            request: tonic::Request<super::ShowInputBoxRequest>,
5776        ) -> std::result::Result<
5777            tonic::Response<super::ShowInputBoxResponse>,
5778            tonic::Status,
5779        >;
5780        /// Show Progress
5781        async fn show_progress(
5782            &self,
5783            request: tonic::Request<super::ShowProgressRequest>,
5784        ) -> std::result::Result<
5785            tonic::Response<super::ShowProgressResponse>,
5786            tonic::Status,
5787        >;
5788        /// Report Progress
5789        async fn report_progress(
5790            &self,
5791            request: tonic::Request<super::ReportProgressRequest>,
5792        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5793        /// Post Message to Webview
5794        async fn post_webview_message(
5795            &self,
5796            request: tonic::Request<super::PostWebviewMessageRequest>,
5797        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5798        /// Dispose Webview Panel
5799        async fn dispose_webview_panel(
5800            &self,
5801            request: tonic::Request<super::DisposeWebviewPanelRequest>,
5802        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5803        /// Open External URI
5804        async fn open_external(
5805            &self,
5806            request: tonic::Request<super::OpenExternalRequest>,
5807        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5808        /// Delete File
5809        async fn delete_file(
5810            &self,
5811            request: tonic::Request<super::DeleteFileRequest>,
5812        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5813        /// Rename File
5814        async fn rename_file(
5815            &self,
5816            request: tonic::Request<super::RenameFileRequest>,
5817        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5818        /// Copy File
5819        async fn copy_file(
5820            &self,
5821            request: tonic::Request<super::CopyFileRequest>,
5822        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5823        /// Create Directory
5824        async fn create_directory(
5825            &self,
5826            request: tonic::Request<super::CreateDirectoryRequest>,
5827        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5828        /// Create Output Channel
5829        async fn create_output_channel(
5830            &self,
5831            request: tonic::Request<super::CreateOutputChannelRequest>,
5832        ) -> std::result::Result<
5833            tonic::Response<super::CreateOutputChannelResponse>,
5834            tonic::Status,
5835        >;
5836        /// Append to Output Channel
5837        async fn append_output(
5838            &self,
5839            request: tonic::Request<super::AppendOutputRequest>,
5840        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5841        /// Clear Output Channel
5842        async fn clear_output(
5843            &self,
5844            request: tonic::Request<super::ClearOutputRequest>,
5845        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5846        /// Show Output Channel
5847        async fn show_output(
5848            &self,
5849            request: tonic::Request<super::ShowOutputRequest>,
5850        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5851        /// Dispose Output Channel
5852        async fn dispose_output(
5853            &self,
5854            request: tonic::Request<super::DisposeOutputRequest>,
5855        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5856        /// Register Task Provider
5857        async fn register_task_provider(
5858            &self,
5859            request: tonic::Request<super::RegisterTaskProviderRequest>,
5860        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5861        /// Execute Task
5862        async fn execute_task(
5863            &self,
5864            request: tonic::Request<super::ExecuteTaskRequest>,
5865        ) -> std::result::Result<
5866            tonic::Response<super::ExecuteTaskResponse>,
5867            tonic::Status,
5868        >;
5869        /// Terminate Task
5870        async fn terminate_task(
5871            &self,
5872            request: tonic::Request<super::TerminateTaskRequest>,
5873        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5874        /// Get Authentication Session
5875        async fn get_authentication_session(
5876            &self,
5877            request: tonic::Request<super::GetAuthenticationSessionRequest>,
5878        ) -> std::result::Result<
5879            tonic::Response<super::GetAuthenticationSessionResponse>,
5880            tonic::Status,
5881        >;
5882        /// Register Authentication Provider
5883        async fn register_authentication_provider(
5884            &self,
5885            request: tonic::Request<super::RegisterAuthenticationProviderRequest>,
5886        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5887        /// Stop Debugging
5888        async fn stop_debugging(
5889            &self,
5890            request: tonic::Request<super::StopDebuggingRequest>,
5891        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5892        /// Get Extension
5893        async fn get_extension(
5894            &self,
5895            request: tonic::Request<super::GetExtensionRequest>,
5896        ) -> std::result::Result<
5897            tonic::Response<super::GetExtensionResponse>,
5898            tonic::Status,
5899        >;
5900        /// Get All Extensions
5901        async fn get_all_extensions(
5902            &self,
5903            request: tonic::Request<super::Empty>,
5904        ) -> std::result::Result<
5905            tonic::Response<super::GetAllExtensionsResponse>,
5906            tonic::Status,
5907        >;
5908        /// Resize Terminal
5909        async fn resize_terminal(
5910            &self,
5911            request: tonic::Request<super::ResizeTerminalRequest>,
5912        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5913        /// Get Configuration Value
5914        async fn get_configuration(
5915            &self,
5916            request: tonic::Request<super::GetConfigurationRequest>,
5917        ) -> std::result::Result<
5918            tonic::Response<super::GetConfigurationResponse>,
5919            tonic::Status,
5920        >;
5921        /// Show Text Document - Open a text document
5922        async fn show_text_document(
5923            &self,
5924            request: tonic::Request<super::ShowTextDocumentRequest>,
5925        ) -> std::result::Result<
5926            tonic::Response<super::ShowTextDocumentResponse>,
5927            tonic::Status,
5928        >;
5929        /// Show Information Message - Display an info message
5930        async fn show_information_message(
5931            &self,
5932            request: tonic::Request<super::ShowMessageRequest>,
5933        ) -> std::result::Result<
5934            tonic::Response<super::ShowMessageResponse>,
5935            tonic::Status,
5936        >;
5937        /// Show Warning Message - Display a warning message
5938        async fn show_warning_message(
5939            &self,
5940            request: tonic::Request<super::ShowMessageRequest>,
5941        ) -> std::result::Result<
5942            tonic::Response<super::ShowMessageResponse>,
5943            tonic::Status,
5944        >;
5945        /// Show Error Message - Display an error message
5946        async fn show_error_message(
5947            &self,
5948            request: tonic::Request<super::ShowMessageRequest>,
5949        ) -> std::result::Result<
5950            tonic::Response<super::ShowMessageResponse>,
5951            tonic::Status,
5952        >;
5953        /// Create Status Bar Item - Create a status bar item
5954        async fn create_status_bar_item(
5955            &self,
5956            request: tonic::Request<super::CreateStatusBarItemRequest>,
5957        ) -> std::result::Result<
5958            tonic::Response<super::CreateStatusBarItemResponse>,
5959            tonic::Status,
5960        >;
5961        /// Set Status Bar Text - Set status bar text
5962        async fn set_status_bar_text(
5963            &self,
5964            request: tonic::Request<super::SetStatusBarTextRequest>,
5965        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5966        /// Create Webview Panel - Create a new webview panel
5967        async fn create_webview_panel(
5968            &self,
5969            request: tonic::Request<super::CreateWebviewPanelRequest>,
5970        ) -> std::result::Result<
5971            tonic::Response<super::CreateWebviewPanelResponse>,
5972            tonic::Status,
5973        >;
5974        /// Set Webview HTML - Update webview HTML content
5975        async fn set_webview_html(
5976            &self,
5977            request: tonic::Request<super::SetWebviewHtmlRequest>,
5978        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5979        /// On Did Receive Message - Receive message from webview
5980        async fn on_did_receive_message(
5981            &self,
5982            request: tonic::Request<super::OnDidReceiveMessageRequest>,
5983        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5984        /// Read File - Read file contents
5985        async fn read_file(
5986            &self,
5987            request: tonic::Request<super::ReadFileRequest>,
5988        ) -> std::result::Result<
5989            tonic::Response<super::ReadFileResponse>,
5990            tonic::Status,
5991        >;
5992        /// Write File - Write file contents
5993        async fn write_file(
5994            &self,
5995            request: tonic::Request<super::WriteFileRequest>,
5996        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5997        /// Stat - Get file metadata
5998        async fn stat(
5999            &self,
6000            request: tonic::Request<super::StatRequest>,
6001        ) -> std::result::Result<tonic::Response<super::StatResponse>, tonic::Status>;
6002        /// Read Directory - List directory contents
6003        async fn readdir(
6004            &self,
6005            request: tonic::Request<super::ReaddirRequest>,
6006        ) -> std::result::Result<tonic::Response<super::ReaddirResponse>, tonic::Status>;
6007        /// Watch File - Watch file for changes
6008        async fn watch_file(
6009            &self,
6010            request: tonic::Request<super::WatchFileRequest>,
6011        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6012        /// Find Files - Search for files
6013        async fn find_files(
6014            &self,
6015            request: tonic::Request<super::FindFilesRequest>,
6016        ) -> std::result::Result<
6017            tonic::Response<super::FindFilesResponse>,
6018            tonic::Status,
6019        >;
6020        /// Find Text in Files - Search for text across files
6021        async fn find_text_in_files(
6022            &self,
6023            request: tonic::Request<super::FindTextInFilesRequest>,
6024        ) -> std::result::Result<
6025            tonic::Response<super::FindTextInFilesResponse>,
6026            tonic::Status,
6027        >;
6028        /// Open Document - Open a document
6029        async fn open_document(
6030            &self,
6031            request: tonic::Request<super::OpenDocumentRequest>,
6032        ) -> std::result::Result<
6033            tonic::Response<super::OpenDocumentResponse>,
6034            tonic::Status,
6035        >;
6036        /// Save All - Save all open documents
6037        async fn save_all(
6038            &self,
6039            request: tonic::Request<super::SaveAllRequest>,
6040        ) -> std::result::Result<tonic::Response<super::SaveAllResponse>, tonic::Status>;
6041        /// Apply Edit - Apply a text edit to a document
6042        async fn apply_edit(
6043            &self,
6044            request: tonic::Request<super::ApplyEditRequest>,
6045        ) -> std::result::Result<
6046            tonic::Response<super::ApplyEditResponse>,
6047            tonic::Status,
6048        >;
6049        /// Update Configuration - Notify of configuration changes
6050        async fn update_configuration(
6051            &self,
6052            request: tonic::Request<super::UpdateConfigurationRequest>,
6053        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6054        /// Update Workspace Folders - Update workspace folders
6055        async fn update_workspace_folders(
6056            &self,
6057            request: tonic::Request<super::UpdateWorkspaceFoldersRequest>,
6058        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6059        /// Open Terminal - Open a new terminal
6060        async fn open_terminal(
6061            &self,
6062            request: tonic::Request<super::OpenTerminalRequest>,
6063        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6064        /// Terminal Input - Send input to terminal
6065        async fn terminal_input(
6066            &self,
6067            request: tonic::Request<super::TerminalInputRequest>,
6068        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6069        /// Close Terminal - Close a terminal
6070        async fn close_terminal(
6071            &self,
6072            request: tonic::Request<super::CloseTerminalRequest>,
6073        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6074        /// Accept Terminal Opened - Notification: Terminal opened
6075        async fn accept_terminal_opened(
6076            &self,
6077            request: tonic::Request<super::TerminalOpenedNotification>,
6078        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6079        /// Accept Terminal Closed - Notification: Terminal closed
6080        async fn accept_terminal_closed(
6081            &self,
6082            request: tonic::Request<super::TerminalClosedNotification>,
6083        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6084        /// Accept Terminal Process ID - Notification: Terminal process ID
6085        async fn accept_terminal_process_id(
6086            &self,
6087            request: tonic::Request<super::TerminalProcessIdNotification>,
6088        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6089        /// Accept Terminal Process Data - Notification: Terminal output
6090        async fn accept_terminal_process_data(
6091            &self,
6092            request: tonic::Request<super::TerminalDataNotification>,
6093        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6094        /// Register Tree View Provider - Register a tree view provider
6095        async fn register_tree_view_provider(
6096            &self,
6097            request: tonic::Request<super::RegisterTreeViewProviderRequest>,
6098        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6099        /// Get Tree Children - Request tree view children
6100        async fn get_tree_children(
6101            &self,
6102            request: tonic::Request<super::GetTreeChildrenRequest>,
6103        ) -> std::result::Result<
6104            tonic::Response<super::GetTreeChildrenResponse>,
6105            tonic::Status,
6106        >;
6107        /// Register SCM Provider - Register source control provider
6108        async fn register_scm_provider(
6109            &self,
6110            request: tonic::Request<super::RegisterScmProviderRequest>,
6111        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6112        /// Update SCM Group - Update SCM group
6113        async fn update_scm_group(
6114            &self,
6115            request: tonic::Request<super::UpdateScmGroupRequest>,
6116        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6117        /// Execute Git - Execute git command
6118        async fn git_exec(
6119            &self,
6120            request: tonic::Request<super::GitExecRequest>,
6121        ) -> std::result::Result<tonic::Response<super::GitExecResponse>, tonic::Status>;
6122        /// Register Debug Adapter - Register debug adapter
6123        async fn register_debug_adapter(
6124            &self,
6125            request: tonic::Request<super::RegisterDebugAdapterRequest>,
6126        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6127        /// Start Debugging - Start debug session
6128        async fn start_debugging(
6129            &self,
6130            request: tonic::Request<super::StartDebuggingRequest>,
6131        ) -> std::result::Result<
6132            tonic::Response<super::StartDebuggingResponse>,
6133            tonic::Status,
6134        >;
6135        /// Participate in Save - Extension participates in save
6136        async fn participate_in_save(
6137            &self,
6138            request: tonic::Request<super::ParticipateInSaveRequest>,
6139        ) -> std::result::Result<
6140            tonic::Response<super::ParticipateInSaveResponse>,
6141            tonic::Status,
6142        >;
6143        /// Get Secret - Retrieve a secret from storage
6144        async fn get_secret(
6145            &self,
6146            request: tonic::Request<super::GetSecretRequest>,
6147        ) -> std::result::Result<
6148            tonic::Response<super::GetSecretResponse>,
6149            tonic::Status,
6150        >;
6151        /// Store Secret - Store a secret in storage
6152        async fn store_secret(
6153            &self,
6154            request: tonic::Request<super::StoreSecretRequest>,
6155        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6156        /// Delete Secret - Delete a secret from storage
6157        async fn delete_secret(
6158            &self,
6159            request: tonic::Request<super::DeleteSecretRequest>,
6160        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6161    }
6162    /// Service running on the Cocoon sidecar, listening for requests from Mountain.
6163    #[derive(Debug)]
6164    pub struct CocoonServiceServer<T> {
6165        inner: Arc<T>,
6166        accept_compression_encodings: EnabledCompressionEncodings,
6167        send_compression_encodings: EnabledCompressionEncodings,
6168        max_decoding_message_size: Option<usize>,
6169        max_encoding_message_size: Option<usize>,
6170    }
6171    impl<T> CocoonServiceServer<T> {
6172        pub fn new(inner: T) -> Self {
6173            Self::from_arc(Arc::new(inner))
6174        }
6175        pub fn from_arc(inner: Arc<T>) -> Self {
6176            Self {
6177                inner,
6178                accept_compression_encodings: Default::default(),
6179                send_compression_encodings: Default::default(),
6180                max_decoding_message_size: None,
6181                max_encoding_message_size: None,
6182            }
6183        }
6184        pub fn with_interceptor<F>(
6185            inner: T,
6186            interceptor: F,
6187        ) -> InterceptedService<Self, F>
6188        where
6189            F: tonic::service::Interceptor,
6190        {
6191            InterceptedService::new(Self::new(inner), interceptor)
6192        }
6193        /// Enable decompressing requests with the given encoding.
6194        #[must_use]
6195        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
6196            self.accept_compression_encodings.enable(encoding);
6197            self
6198        }
6199        /// Compress responses with the given encoding, if the client supports it.
6200        #[must_use]
6201        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
6202            self.send_compression_encodings.enable(encoding);
6203            self
6204        }
6205        /// Limits the maximum size of a decoded message.
6206        ///
6207        /// Default: `4MB`
6208        #[must_use]
6209        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
6210            self.max_decoding_message_size = Some(limit);
6211            self
6212        }
6213        /// Limits the maximum size of an encoded message.
6214        ///
6215        /// Default: `usize::MAX`
6216        #[must_use]
6217        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
6218            self.max_encoding_message_size = Some(limit);
6219            self
6220        }
6221    }
6222    impl<T, B> tonic::codegen::Service<http::Request<B>> for CocoonServiceServer<T>
6223    where
6224        T: CocoonService,
6225        B: Body + std::marker::Send + 'static,
6226        B::Error: Into<StdError> + std::marker::Send + 'static,
6227    {
6228        type Response = http::Response<tonic::body::Body>;
6229        type Error = std::convert::Infallible;
6230        type Future = BoxFuture<Self::Response, Self::Error>;
6231        fn poll_ready(
6232            &mut self,
6233            _cx: &mut Context<'_>,
6234        ) -> Poll<std::result::Result<(), Self::Error>> {
6235            Poll::Ready(Ok(()))
6236        }
6237        fn call(&mut self, req: http::Request<B>) -> Self::Future {
6238            match req.uri().path() {
6239                "/Vine.CocoonService/ProcessMountainRequest" => {
6240                    #[allow(non_camel_case_types)]
6241                    struct ProcessMountainRequestSvc<T: CocoonService>(pub Arc<T>);
6242                    impl<
6243                        T: CocoonService,
6244                    > tonic::server::UnaryService<super::GenericRequest>
6245                    for ProcessMountainRequestSvc<T> {
6246                        type Response = super::GenericResponse;
6247                        type Future = BoxFuture<
6248                            tonic::Response<Self::Response>,
6249                            tonic::Status,
6250                        >;
6251                        fn call(
6252                            &mut self,
6253                            request: tonic::Request<super::GenericRequest>,
6254                        ) -> Self::Future {
6255                            let inner = Arc::clone(&self.0);
6256                            let fut = async move {
6257                                <T as CocoonService>::process_mountain_request(
6258                                        &inner,
6259                                        request,
6260                                    )
6261                                    .await
6262                            };
6263                            Box::pin(fut)
6264                        }
6265                    }
6266                    let accept_compression_encodings = self.accept_compression_encodings;
6267                    let send_compression_encodings = self.send_compression_encodings;
6268                    let max_decoding_message_size = self.max_decoding_message_size;
6269                    let max_encoding_message_size = self.max_encoding_message_size;
6270                    let inner = self.inner.clone();
6271                    let fut = async move {
6272                        let method = ProcessMountainRequestSvc(inner);
6273                        let codec = tonic_prost::ProstCodec::default();
6274                        let mut grpc = tonic::server::Grpc::new(codec)
6275                            .apply_compression_config(
6276                                accept_compression_encodings,
6277                                send_compression_encodings,
6278                            )
6279                            .apply_max_message_size_config(
6280                                max_decoding_message_size,
6281                                max_encoding_message_size,
6282                            );
6283                        let res = grpc.unary(method, req).await;
6284                        Ok(res)
6285                    };
6286                    Box::pin(fut)
6287                }
6288                "/Vine.CocoonService/SendMountainNotification" => {
6289                    #[allow(non_camel_case_types)]
6290                    struct SendMountainNotificationSvc<T: CocoonService>(pub Arc<T>);
6291                    impl<
6292                        T: CocoonService,
6293                    > tonic::server::UnaryService<super::GenericNotification>
6294                    for SendMountainNotificationSvc<T> {
6295                        type Response = super::Empty;
6296                        type Future = BoxFuture<
6297                            tonic::Response<Self::Response>,
6298                            tonic::Status,
6299                        >;
6300                        fn call(
6301                            &mut self,
6302                            request: tonic::Request<super::GenericNotification>,
6303                        ) -> Self::Future {
6304                            let inner = Arc::clone(&self.0);
6305                            let fut = async move {
6306                                <T as CocoonService>::send_mountain_notification(
6307                                        &inner,
6308                                        request,
6309                                    )
6310                                    .await
6311                            };
6312                            Box::pin(fut)
6313                        }
6314                    }
6315                    let accept_compression_encodings = self.accept_compression_encodings;
6316                    let send_compression_encodings = self.send_compression_encodings;
6317                    let max_decoding_message_size = self.max_decoding_message_size;
6318                    let max_encoding_message_size = self.max_encoding_message_size;
6319                    let inner = self.inner.clone();
6320                    let fut = async move {
6321                        let method = SendMountainNotificationSvc(inner);
6322                        let codec = tonic_prost::ProstCodec::default();
6323                        let mut grpc = tonic::server::Grpc::new(codec)
6324                            .apply_compression_config(
6325                                accept_compression_encodings,
6326                                send_compression_encodings,
6327                            )
6328                            .apply_max_message_size_config(
6329                                max_decoding_message_size,
6330                                max_encoding_message_size,
6331                            );
6332                        let res = grpc.unary(method, req).await;
6333                        Ok(res)
6334                    };
6335                    Box::pin(fut)
6336                }
6337                "/Vine.CocoonService/CancelOperation" => {
6338                    #[allow(non_camel_case_types)]
6339                    struct CancelOperationSvc<T: CocoonService>(pub Arc<T>);
6340                    impl<
6341                        T: CocoonService,
6342                    > tonic::server::UnaryService<super::CancelOperationRequest>
6343                    for CancelOperationSvc<T> {
6344                        type Response = super::Empty;
6345                        type Future = BoxFuture<
6346                            tonic::Response<Self::Response>,
6347                            tonic::Status,
6348                        >;
6349                        fn call(
6350                            &mut self,
6351                            request: tonic::Request<super::CancelOperationRequest>,
6352                        ) -> Self::Future {
6353                            let inner = Arc::clone(&self.0);
6354                            let fut = async move {
6355                                <T as CocoonService>::cancel_operation(&inner, request)
6356                                    .await
6357                            };
6358                            Box::pin(fut)
6359                        }
6360                    }
6361                    let accept_compression_encodings = self.accept_compression_encodings;
6362                    let send_compression_encodings = self.send_compression_encodings;
6363                    let max_decoding_message_size = self.max_decoding_message_size;
6364                    let max_encoding_message_size = self.max_encoding_message_size;
6365                    let inner = self.inner.clone();
6366                    let fut = async move {
6367                        let method = CancelOperationSvc(inner);
6368                        let codec = tonic_prost::ProstCodec::default();
6369                        let mut grpc = tonic::server::Grpc::new(codec)
6370                            .apply_compression_config(
6371                                accept_compression_encodings,
6372                                send_compression_encodings,
6373                            )
6374                            .apply_max_message_size_config(
6375                                max_decoding_message_size,
6376                                max_encoding_message_size,
6377                            );
6378                        let res = grpc.unary(method, req).await;
6379                        Ok(res)
6380                    };
6381                    Box::pin(fut)
6382                }
6383                "/Vine.CocoonService/OpenChannelFromMountain" => {
6384                    #[allow(non_camel_case_types)]
6385                    struct OpenChannelFromMountainSvc<T: CocoonService>(pub Arc<T>);
6386                    impl<
6387                        T: CocoonService,
6388                    > tonic::server::StreamingService<super::Envelope>
6389                    for OpenChannelFromMountainSvc<T> {
6390                        type Response = super::Envelope;
6391                        type ResponseStream = T::OpenChannelFromMountainStream;
6392                        type Future = BoxFuture<
6393                            tonic::Response<Self::ResponseStream>,
6394                            tonic::Status,
6395                        >;
6396                        fn call(
6397                            &mut self,
6398                            request: tonic::Request<tonic::Streaming<super::Envelope>>,
6399                        ) -> Self::Future {
6400                            let inner = Arc::clone(&self.0);
6401                            let fut = async move {
6402                                <T as CocoonService>::open_channel_from_mountain(
6403                                        &inner,
6404                                        request,
6405                                    )
6406                                    .await
6407                            };
6408                            Box::pin(fut)
6409                        }
6410                    }
6411                    let accept_compression_encodings = self.accept_compression_encodings;
6412                    let send_compression_encodings = self.send_compression_encodings;
6413                    let max_decoding_message_size = self.max_decoding_message_size;
6414                    let max_encoding_message_size = self.max_encoding_message_size;
6415                    let inner = self.inner.clone();
6416                    let fut = async move {
6417                        let method = OpenChannelFromMountainSvc(inner);
6418                        let codec = tonic_prost::ProstCodec::default();
6419                        let mut grpc = tonic::server::Grpc::new(codec)
6420                            .apply_compression_config(
6421                                accept_compression_encodings,
6422                                send_compression_encodings,
6423                            )
6424                            .apply_max_message_size_config(
6425                                max_decoding_message_size,
6426                                max_encoding_message_size,
6427                            );
6428                        let res = grpc.streaming(method, req).await;
6429                        Ok(res)
6430                    };
6431                    Box::pin(fut)
6432                }
6433                "/Vine.CocoonService/InitialHandshake" => {
6434                    #[allow(non_camel_case_types)]
6435                    struct InitialHandshakeSvc<T: CocoonService>(pub Arc<T>);
6436                    impl<T: CocoonService> tonic::server::UnaryService<super::Empty>
6437                    for InitialHandshakeSvc<T> {
6438                        type Response = super::Empty;
6439                        type Future = BoxFuture<
6440                            tonic::Response<Self::Response>,
6441                            tonic::Status,
6442                        >;
6443                        fn call(
6444                            &mut self,
6445                            request: tonic::Request<super::Empty>,
6446                        ) -> Self::Future {
6447                            let inner = Arc::clone(&self.0);
6448                            let fut = async move {
6449                                <T as CocoonService>::initial_handshake(&inner, request)
6450                                    .await
6451                            };
6452                            Box::pin(fut)
6453                        }
6454                    }
6455                    let accept_compression_encodings = self.accept_compression_encodings;
6456                    let send_compression_encodings = self.send_compression_encodings;
6457                    let max_decoding_message_size = self.max_decoding_message_size;
6458                    let max_encoding_message_size = self.max_encoding_message_size;
6459                    let inner = self.inner.clone();
6460                    let fut = async move {
6461                        let method = InitialHandshakeSvc(inner);
6462                        let codec = tonic_prost::ProstCodec::default();
6463                        let mut grpc = tonic::server::Grpc::new(codec)
6464                            .apply_compression_config(
6465                                accept_compression_encodings,
6466                                send_compression_encodings,
6467                            )
6468                            .apply_max_message_size_config(
6469                                max_decoding_message_size,
6470                                max_encoding_message_size,
6471                            );
6472                        let res = grpc.unary(method, req).await;
6473                        Ok(res)
6474                    };
6475                    Box::pin(fut)
6476                }
6477                "/Vine.CocoonService/InitExtensionHost" => {
6478                    #[allow(non_camel_case_types)]
6479                    struct InitExtensionHostSvc<T: CocoonService>(pub Arc<T>);
6480                    impl<
6481                        T: CocoonService,
6482                    > tonic::server::UnaryService<super::InitExtensionHostRequest>
6483                    for InitExtensionHostSvc<T> {
6484                        type Response = super::Empty;
6485                        type Future = BoxFuture<
6486                            tonic::Response<Self::Response>,
6487                            tonic::Status,
6488                        >;
6489                        fn call(
6490                            &mut self,
6491                            request: tonic::Request<super::InitExtensionHostRequest>,
6492                        ) -> Self::Future {
6493                            let inner = Arc::clone(&self.0);
6494                            let fut = async move {
6495                                <T as CocoonService>::init_extension_host(&inner, request)
6496                                    .await
6497                            };
6498                            Box::pin(fut)
6499                        }
6500                    }
6501                    let accept_compression_encodings = self.accept_compression_encodings;
6502                    let send_compression_encodings = self.send_compression_encodings;
6503                    let max_decoding_message_size = self.max_decoding_message_size;
6504                    let max_encoding_message_size = self.max_encoding_message_size;
6505                    let inner = self.inner.clone();
6506                    let fut = async move {
6507                        let method = InitExtensionHostSvc(inner);
6508                        let codec = tonic_prost::ProstCodec::default();
6509                        let mut grpc = tonic::server::Grpc::new(codec)
6510                            .apply_compression_config(
6511                                accept_compression_encodings,
6512                                send_compression_encodings,
6513                            )
6514                            .apply_max_message_size_config(
6515                                max_decoding_message_size,
6516                                max_encoding_message_size,
6517                            );
6518                        let res = grpc.unary(method, req).await;
6519                        Ok(res)
6520                    };
6521                    Box::pin(fut)
6522                }
6523                "/Vine.CocoonService/RegisterCommand" => {
6524                    #[allow(non_camel_case_types)]
6525                    struct RegisterCommandSvc<T: CocoonService>(pub Arc<T>);
6526                    impl<
6527                        T: CocoonService,
6528                    > tonic::server::UnaryService<super::RegisterCommandRequest>
6529                    for RegisterCommandSvc<T> {
6530                        type Response = super::Empty;
6531                        type Future = BoxFuture<
6532                            tonic::Response<Self::Response>,
6533                            tonic::Status,
6534                        >;
6535                        fn call(
6536                            &mut self,
6537                            request: tonic::Request<super::RegisterCommandRequest>,
6538                        ) -> Self::Future {
6539                            let inner = Arc::clone(&self.0);
6540                            let fut = async move {
6541                                <T as CocoonService>::register_command(&inner, request)
6542                                    .await
6543                            };
6544                            Box::pin(fut)
6545                        }
6546                    }
6547                    let accept_compression_encodings = self.accept_compression_encodings;
6548                    let send_compression_encodings = self.send_compression_encodings;
6549                    let max_decoding_message_size = self.max_decoding_message_size;
6550                    let max_encoding_message_size = self.max_encoding_message_size;
6551                    let inner = self.inner.clone();
6552                    let fut = async move {
6553                        let method = RegisterCommandSvc(inner);
6554                        let codec = tonic_prost::ProstCodec::default();
6555                        let mut grpc = tonic::server::Grpc::new(codec)
6556                            .apply_compression_config(
6557                                accept_compression_encodings,
6558                                send_compression_encodings,
6559                            )
6560                            .apply_max_message_size_config(
6561                                max_decoding_message_size,
6562                                max_encoding_message_size,
6563                            );
6564                        let res = grpc.unary(method, req).await;
6565                        Ok(res)
6566                    };
6567                    Box::pin(fut)
6568                }
6569                "/Vine.CocoonService/ExecuteContributedCommand" => {
6570                    #[allow(non_camel_case_types)]
6571                    struct ExecuteContributedCommandSvc<T: CocoonService>(pub Arc<T>);
6572                    impl<
6573                        T: CocoonService,
6574                    > tonic::server::UnaryService<super::ExecuteCommandRequest>
6575                    for ExecuteContributedCommandSvc<T> {
6576                        type Response = super::ExecuteCommandResponse;
6577                        type Future = BoxFuture<
6578                            tonic::Response<Self::Response>,
6579                            tonic::Status,
6580                        >;
6581                        fn call(
6582                            &mut self,
6583                            request: tonic::Request<super::ExecuteCommandRequest>,
6584                        ) -> Self::Future {
6585                            let inner = Arc::clone(&self.0);
6586                            let fut = async move {
6587                                <T as CocoonService>::execute_contributed_command(
6588                                        &inner,
6589                                        request,
6590                                    )
6591                                    .await
6592                            };
6593                            Box::pin(fut)
6594                        }
6595                    }
6596                    let accept_compression_encodings = self.accept_compression_encodings;
6597                    let send_compression_encodings = self.send_compression_encodings;
6598                    let max_decoding_message_size = self.max_decoding_message_size;
6599                    let max_encoding_message_size = self.max_encoding_message_size;
6600                    let inner = self.inner.clone();
6601                    let fut = async move {
6602                        let method = ExecuteContributedCommandSvc(inner);
6603                        let codec = tonic_prost::ProstCodec::default();
6604                        let mut grpc = tonic::server::Grpc::new(codec)
6605                            .apply_compression_config(
6606                                accept_compression_encodings,
6607                                send_compression_encodings,
6608                            )
6609                            .apply_max_message_size_config(
6610                                max_decoding_message_size,
6611                                max_encoding_message_size,
6612                            );
6613                        let res = grpc.unary(method, req).await;
6614                        Ok(res)
6615                    };
6616                    Box::pin(fut)
6617                }
6618                "/Vine.CocoonService/UnregisterCommand" => {
6619                    #[allow(non_camel_case_types)]
6620                    struct UnregisterCommandSvc<T: CocoonService>(pub Arc<T>);
6621                    impl<
6622                        T: CocoonService,
6623                    > tonic::server::UnaryService<super::UnregisterCommandRequest>
6624                    for UnregisterCommandSvc<T> {
6625                        type Response = super::Empty;
6626                        type Future = BoxFuture<
6627                            tonic::Response<Self::Response>,
6628                            tonic::Status,
6629                        >;
6630                        fn call(
6631                            &mut self,
6632                            request: tonic::Request<super::UnregisterCommandRequest>,
6633                        ) -> Self::Future {
6634                            let inner = Arc::clone(&self.0);
6635                            let fut = async move {
6636                                <T as CocoonService>::unregister_command(&inner, request)
6637                                    .await
6638                            };
6639                            Box::pin(fut)
6640                        }
6641                    }
6642                    let accept_compression_encodings = self.accept_compression_encodings;
6643                    let send_compression_encodings = self.send_compression_encodings;
6644                    let max_decoding_message_size = self.max_decoding_message_size;
6645                    let max_encoding_message_size = self.max_encoding_message_size;
6646                    let inner = self.inner.clone();
6647                    let fut = async move {
6648                        let method = UnregisterCommandSvc(inner);
6649                        let codec = tonic_prost::ProstCodec::default();
6650                        let mut grpc = tonic::server::Grpc::new(codec)
6651                            .apply_compression_config(
6652                                accept_compression_encodings,
6653                                send_compression_encodings,
6654                            )
6655                            .apply_max_message_size_config(
6656                                max_decoding_message_size,
6657                                max_encoding_message_size,
6658                            );
6659                        let res = grpc.unary(method, req).await;
6660                        Ok(res)
6661                    };
6662                    Box::pin(fut)
6663                }
6664                "/Vine.CocoonService/RegisterHoverProvider" => {
6665                    #[allow(non_camel_case_types)]
6666                    struct RegisterHoverProviderSvc<T: CocoonService>(pub Arc<T>);
6667                    impl<
6668                        T: CocoonService,
6669                    > tonic::server::UnaryService<super::RegisterProviderRequest>
6670                    for RegisterHoverProviderSvc<T> {
6671                        type Response = super::Empty;
6672                        type Future = BoxFuture<
6673                            tonic::Response<Self::Response>,
6674                            tonic::Status,
6675                        >;
6676                        fn call(
6677                            &mut self,
6678                            request: tonic::Request<super::RegisterProviderRequest>,
6679                        ) -> Self::Future {
6680                            let inner = Arc::clone(&self.0);
6681                            let fut = async move {
6682                                <T as CocoonService>::register_hover_provider(
6683                                        &inner,
6684                                        request,
6685                                    )
6686                                    .await
6687                            };
6688                            Box::pin(fut)
6689                        }
6690                    }
6691                    let accept_compression_encodings = self.accept_compression_encodings;
6692                    let send_compression_encodings = self.send_compression_encodings;
6693                    let max_decoding_message_size = self.max_decoding_message_size;
6694                    let max_encoding_message_size = self.max_encoding_message_size;
6695                    let inner = self.inner.clone();
6696                    let fut = async move {
6697                        let method = RegisterHoverProviderSvc(inner);
6698                        let codec = tonic_prost::ProstCodec::default();
6699                        let mut grpc = tonic::server::Grpc::new(codec)
6700                            .apply_compression_config(
6701                                accept_compression_encodings,
6702                                send_compression_encodings,
6703                            )
6704                            .apply_max_message_size_config(
6705                                max_decoding_message_size,
6706                                max_encoding_message_size,
6707                            );
6708                        let res = grpc.unary(method, req).await;
6709                        Ok(res)
6710                    };
6711                    Box::pin(fut)
6712                }
6713                "/Vine.CocoonService/ProvideHover" => {
6714                    #[allow(non_camel_case_types)]
6715                    struct ProvideHoverSvc<T: CocoonService>(pub Arc<T>);
6716                    impl<
6717                        T: CocoonService,
6718                    > tonic::server::UnaryService<super::ProvideHoverRequest>
6719                    for ProvideHoverSvc<T> {
6720                        type Response = super::ProvideHoverResponse;
6721                        type Future = BoxFuture<
6722                            tonic::Response<Self::Response>,
6723                            tonic::Status,
6724                        >;
6725                        fn call(
6726                            &mut self,
6727                            request: tonic::Request<super::ProvideHoverRequest>,
6728                        ) -> Self::Future {
6729                            let inner = Arc::clone(&self.0);
6730                            let fut = async move {
6731                                <T as CocoonService>::provide_hover(&inner, request).await
6732                            };
6733                            Box::pin(fut)
6734                        }
6735                    }
6736                    let accept_compression_encodings = self.accept_compression_encodings;
6737                    let send_compression_encodings = self.send_compression_encodings;
6738                    let max_decoding_message_size = self.max_decoding_message_size;
6739                    let max_encoding_message_size = self.max_encoding_message_size;
6740                    let inner = self.inner.clone();
6741                    let fut = async move {
6742                        let method = ProvideHoverSvc(inner);
6743                        let codec = tonic_prost::ProstCodec::default();
6744                        let mut grpc = tonic::server::Grpc::new(codec)
6745                            .apply_compression_config(
6746                                accept_compression_encodings,
6747                                send_compression_encodings,
6748                            )
6749                            .apply_max_message_size_config(
6750                                max_decoding_message_size,
6751                                max_encoding_message_size,
6752                            );
6753                        let res = grpc.unary(method, req).await;
6754                        Ok(res)
6755                    };
6756                    Box::pin(fut)
6757                }
6758                "/Vine.CocoonService/RegisterCompletionItemProvider" => {
6759                    #[allow(non_camel_case_types)]
6760                    struct RegisterCompletionItemProviderSvc<T: CocoonService>(
6761                        pub Arc<T>,
6762                    );
6763                    impl<
6764                        T: CocoonService,
6765                    > tonic::server::UnaryService<super::RegisterProviderRequest>
6766                    for RegisterCompletionItemProviderSvc<T> {
6767                        type Response = super::Empty;
6768                        type Future = BoxFuture<
6769                            tonic::Response<Self::Response>,
6770                            tonic::Status,
6771                        >;
6772                        fn call(
6773                            &mut self,
6774                            request: tonic::Request<super::RegisterProviderRequest>,
6775                        ) -> Self::Future {
6776                            let inner = Arc::clone(&self.0);
6777                            let fut = async move {
6778                                <T as CocoonService>::register_completion_item_provider(
6779                                        &inner,
6780                                        request,
6781                                    )
6782                                    .await
6783                            };
6784                            Box::pin(fut)
6785                        }
6786                    }
6787                    let accept_compression_encodings = self.accept_compression_encodings;
6788                    let send_compression_encodings = self.send_compression_encodings;
6789                    let max_decoding_message_size = self.max_decoding_message_size;
6790                    let max_encoding_message_size = self.max_encoding_message_size;
6791                    let inner = self.inner.clone();
6792                    let fut = async move {
6793                        let method = RegisterCompletionItemProviderSvc(inner);
6794                        let codec = tonic_prost::ProstCodec::default();
6795                        let mut grpc = tonic::server::Grpc::new(codec)
6796                            .apply_compression_config(
6797                                accept_compression_encodings,
6798                                send_compression_encodings,
6799                            )
6800                            .apply_max_message_size_config(
6801                                max_decoding_message_size,
6802                                max_encoding_message_size,
6803                            );
6804                        let res = grpc.unary(method, req).await;
6805                        Ok(res)
6806                    };
6807                    Box::pin(fut)
6808                }
6809                "/Vine.CocoonService/ProvideCompletionItems" => {
6810                    #[allow(non_camel_case_types)]
6811                    struct ProvideCompletionItemsSvc<T: CocoonService>(pub Arc<T>);
6812                    impl<
6813                        T: CocoonService,
6814                    > tonic::server::UnaryService<super::ProvideCompletionItemsRequest>
6815                    for ProvideCompletionItemsSvc<T> {
6816                        type Response = super::ProvideCompletionItemsResponse;
6817                        type Future = BoxFuture<
6818                            tonic::Response<Self::Response>,
6819                            tonic::Status,
6820                        >;
6821                        fn call(
6822                            &mut self,
6823                            request: tonic::Request<super::ProvideCompletionItemsRequest>,
6824                        ) -> Self::Future {
6825                            let inner = Arc::clone(&self.0);
6826                            let fut = async move {
6827                                <T as CocoonService>::provide_completion_items(
6828                                        &inner,
6829                                        request,
6830                                    )
6831                                    .await
6832                            };
6833                            Box::pin(fut)
6834                        }
6835                    }
6836                    let accept_compression_encodings = self.accept_compression_encodings;
6837                    let send_compression_encodings = self.send_compression_encodings;
6838                    let max_decoding_message_size = self.max_decoding_message_size;
6839                    let max_encoding_message_size = self.max_encoding_message_size;
6840                    let inner = self.inner.clone();
6841                    let fut = async move {
6842                        let method = ProvideCompletionItemsSvc(inner);
6843                        let codec = tonic_prost::ProstCodec::default();
6844                        let mut grpc = tonic::server::Grpc::new(codec)
6845                            .apply_compression_config(
6846                                accept_compression_encodings,
6847                                send_compression_encodings,
6848                            )
6849                            .apply_max_message_size_config(
6850                                max_decoding_message_size,
6851                                max_encoding_message_size,
6852                            );
6853                        let res = grpc.unary(method, req).await;
6854                        Ok(res)
6855                    };
6856                    Box::pin(fut)
6857                }
6858                "/Vine.CocoonService/RegisterDefinitionProvider" => {
6859                    #[allow(non_camel_case_types)]
6860                    struct RegisterDefinitionProviderSvc<T: CocoonService>(pub Arc<T>);
6861                    impl<
6862                        T: CocoonService,
6863                    > tonic::server::UnaryService<super::RegisterProviderRequest>
6864                    for RegisterDefinitionProviderSvc<T> {
6865                        type Response = super::Empty;
6866                        type Future = BoxFuture<
6867                            tonic::Response<Self::Response>,
6868                            tonic::Status,
6869                        >;
6870                        fn call(
6871                            &mut self,
6872                            request: tonic::Request<super::RegisterProviderRequest>,
6873                        ) -> Self::Future {
6874                            let inner = Arc::clone(&self.0);
6875                            let fut = async move {
6876                                <T as CocoonService>::register_definition_provider(
6877                                        &inner,
6878                                        request,
6879                                    )
6880                                    .await
6881                            };
6882                            Box::pin(fut)
6883                        }
6884                    }
6885                    let accept_compression_encodings = self.accept_compression_encodings;
6886                    let send_compression_encodings = self.send_compression_encodings;
6887                    let max_decoding_message_size = self.max_decoding_message_size;
6888                    let max_encoding_message_size = self.max_encoding_message_size;
6889                    let inner = self.inner.clone();
6890                    let fut = async move {
6891                        let method = RegisterDefinitionProviderSvc(inner);
6892                        let codec = tonic_prost::ProstCodec::default();
6893                        let mut grpc = tonic::server::Grpc::new(codec)
6894                            .apply_compression_config(
6895                                accept_compression_encodings,
6896                                send_compression_encodings,
6897                            )
6898                            .apply_max_message_size_config(
6899                                max_decoding_message_size,
6900                                max_encoding_message_size,
6901                            );
6902                        let res = grpc.unary(method, req).await;
6903                        Ok(res)
6904                    };
6905                    Box::pin(fut)
6906                }
6907                "/Vine.CocoonService/ProvideDefinition" => {
6908                    #[allow(non_camel_case_types)]
6909                    struct ProvideDefinitionSvc<T: CocoonService>(pub Arc<T>);
6910                    impl<
6911                        T: CocoonService,
6912                    > tonic::server::UnaryService<super::ProvideDefinitionRequest>
6913                    for ProvideDefinitionSvc<T> {
6914                        type Response = super::ProvideDefinitionResponse;
6915                        type Future = BoxFuture<
6916                            tonic::Response<Self::Response>,
6917                            tonic::Status,
6918                        >;
6919                        fn call(
6920                            &mut self,
6921                            request: tonic::Request<super::ProvideDefinitionRequest>,
6922                        ) -> Self::Future {
6923                            let inner = Arc::clone(&self.0);
6924                            let fut = async move {
6925                                <T as CocoonService>::provide_definition(&inner, request)
6926                                    .await
6927                            };
6928                            Box::pin(fut)
6929                        }
6930                    }
6931                    let accept_compression_encodings = self.accept_compression_encodings;
6932                    let send_compression_encodings = self.send_compression_encodings;
6933                    let max_decoding_message_size = self.max_decoding_message_size;
6934                    let max_encoding_message_size = self.max_encoding_message_size;
6935                    let inner = self.inner.clone();
6936                    let fut = async move {
6937                        let method = ProvideDefinitionSvc(inner);
6938                        let codec = tonic_prost::ProstCodec::default();
6939                        let mut grpc = tonic::server::Grpc::new(codec)
6940                            .apply_compression_config(
6941                                accept_compression_encodings,
6942                                send_compression_encodings,
6943                            )
6944                            .apply_max_message_size_config(
6945                                max_decoding_message_size,
6946                                max_encoding_message_size,
6947                            );
6948                        let res = grpc.unary(method, req).await;
6949                        Ok(res)
6950                    };
6951                    Box::pin(fut)
6952                }
6953                "/Vine.CocoonService/RegisterReferenceProvider" => {
6954                    #[allow(non_camel_case_types)]
6955                    struct RegisterReferenceProviderSvc<T: CocoonService>(pub Arc<T>);
6956                    impl<
6957                        T: CocoonService,
6958                    > tonic::server::UnaryService<super::RegisterProviderRequest>
6959                    for RegisterReferenceProviderSvc<T> {
6960                        type Response = super::Empty;
6961                        type Future = BoxFuture<
6962                            tonic::Response<Self::Response>,
6963                            tonic::Status,
6964                        >;
6965                        fn call(
6966                            &mut self,
6967                            request: tonic::Request<super::RegisterProviderRequest>,
6968                        ) -> Self::Future {
6969                            let inner = Arc::clone(&self.0);
6970                            let fut = async move {
6971                                <T as CocoonService>::register_reference_provider(
6972                                        &inner,
6973                                        request,
6974                                    )
6975                                    .await
6976                            };
6977                            Box::pin(fut)
6978                        }
6979                    }
6980                    let accept_compression_encodings = self.accept_compression_encodings;
6981                    let send_compression_encodings = self.send_compression_encodings;
6982                    let max_decoding_message_size = self.max_decoding_message_size;
6983                    let max_encoding_message_size = self.max_encoding_message_size;
6984                    let inner = self.inner.clone();
6985                    let fut = async move {
6986                        let method = RegisterReferenceProviderSvc(inner);
6987                        let codec = tonic_prost::ProstCodec::default();
6988                        let mut grpc = tonic::server::Grpc::new(codec)
6989                            .apply_compression_config(
6990                                accept_compression_encodings,
6991                                send_compression_encodings,
6992                            )
6993                            .apply_max_message_size_config(
6994                                max_decoding_message_size,
6995                                max_encoding_message_size,
6996                            );
6997                        let res = grpc.unary(method, req).await;
6998                        Ok(res)
6999                    };
7000                    Box::pin(fut)
7001                }
7002                "/Vine.CocoonService/ProvideReferences" => {
7003                    #[allow(non_camel_case_types)]
7004                    struct ProvideReferencesSvc<T: CocoonService>(pub Arc<T>);
7005                    impl<
7006                        T: CocoonService,
7007                    > tonic::server::UnaryService<super::ProvideReferencesRequest>
7008                    for ProvideReferencesSvc<T> {
7009                        type Response = super::ProvideReferencesResponse;
7010                        type Future = BoxFuture<
7011                            tonic::Response<Self::Response>,
7012                            tonic::Status,
7013                        >;
7014                        fn call(
7015                            &mut self,
7016                            request: tonic::Request<super::ProvideReferencesRequest>,
7017                        ) -> Self::Future {
7018                            let inner = Arc::clone(&self.0);
7019                            let fut = async move {
7020                                <T as CocoonService>::provide_references(&inner, request)
7021                                    .await
7022                            };
7023                            Box::pin(fut)
7024                        }
7025                    }
7026                    let accept_compression_encodings = self.accept_compression_encodings;
7027                    let send_compression_encodings = self.send_compression_encodings;
7028                    let max_decoding_message_size = self.max_decoding_message_size;
7029                    let max_encoding_message_size = self.max_encoding_message_size;
7030                    let inner = self.inner.clone();
7031                    let fut = async move {
7032                        let method = ProvideReferencesSvc(inner);
7033                        let codec = tonic_prost::ProstCodec::default();
7034                        let mut grpc = tonic::server::Grpc::new(codec)
7035                            .apply_compression_config(
7036                                accept_compression_encodings,
7037                                send_compression_encodings,
7038                            )
7039                            .apply_max_message_size_config(
7040                                max_decoding_message_size,
7041                                max_encoding_message_size,
7042                            );
7043                        let res = grpc.unary(method, req).await;
7044                        Ok(res)
7045                    };
7046                    Box::pin(fut)
7047                }
7048                "/Vine.CocoonService/RegisterCodeActionsProvider" => {
7049                    #[allow(non_camel_case_types)]
7050                    struct RegisterCodeActionsProviderSvc<T: CocoonService>(pub Arc<T>);
7051                    impl<
7052                        T: CocoonService,
7053                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7054                    for RegisterCodeActionsProviderSvc<T> {
7055                        type Response = super::Empty;
7056                        type Future = BoxFuture<
7057                            tonic::Response<Self::Response>,
7058                            tonic::Status,
7059                        >;
7060                        fn call(
7061                            &mut self,
7062                            request: tonic::Request<super::RegisterProviderRequest>,
7063                        ) -> Self::Future {
7064                            let inner = Arc::clone(&self.0);
7065                            let fut = async move {
7066                                <T as CocoonService>::register_code_actions_provider(
7067                                        &inner,
7068                                        request,
7069                                    )
7070                                    .await
7071                            };
7072                            Box::pin(fut)
7073                        }
7074                    }
7075                    let accept_compression_encodings = self.accept_compression_encodings;
7076                    let send_compression_encodings = self.send_compression_encodings;
7077                    let max_decoding_message_size = self.max_decoding_message_size;
7078                    let max_encoding_message_size = self.max_encoding_message_size;
7079                    let inner = self.inner.clone();
7080                    let fut = async move {
7081                        let method = RegisterCodeActionsProviderSvc(inner);
7082                        let codec = tonic_prost::ProstCodec::default();
7083                        let mut grpc = tonic::server::Grpc::new(codec)
7084                            .apply_compression_config(
7085                                accept_compression_encodings,
7086                                send_compression_encodings,
7087                            )
7088                            .apply_max_message_size_config(
7089                                max_decoding_message_size,
7090                                max_encoding_message_size,
7091                            );
7092                        let res = grpc.unary(method, req).await;
7093                        Ok(res)
7094                    };
7095                    Box::pin(fut)
7096                }
7097                "/Vine.CocoonService/ProvideCodeActions" => {
7098                    #[allow(non_camel_case_types)]
7099                    struct ProvideCodeActionsSvc<T: CocoonService>(pub Arc<T>);
7100                    impl<
7101                        T: CocoonService,
7102                    > tonic::server::UnaryService<super::ProvideCodeActionsRequest>
7103                    for ProvideCodeActionsSvc<T> {
7104                        type Response = super::ProvideCodeActionsResponse;
7105                        type Future = BoxFuture<
7106                            tonic::Response<Self::Response>,
7107                            tonic::Status,
7108                        >;
7109                        fn call(
7110                            &mut self,
7111                            request: tonic::Request<super::ProvideCodeActionsRequest>,
7112                        ) -> Self::Future {
7113                            let inner = Arc::clone(&self.0);
7114                            let fut = async move {
7115                                <T as CocoonService>::provide_code_actions(&inner, request)
7116                                    .await
7117                            };
7118                            Box::pin(fut)
7119                        }
7120                    }
7121                    let accept_compression_encodings = self.accept_compression_encodings;
7122                    let send_compression_encodings = self.send_compression_encodings;
7123                    let max_decoding_message_size = self.max_decoding_message_size;
7124                    let max_encoding_message_size = self.max_encoding_message_size;
7125                    let inner = self.inner.clone();
7126                    let fut = async move {
7127                        let method = ProvideCodeActionsSvc(inner);
7128                        let codec = tonic_prost::ProstCodec::default();
7129                        let mut grpc = tonic::server::Grpc::new(codec)
7130                            .apply_compression_config(
7131                                accept_compression_encodings,
7132                                send_compression_encodings,
7133                            )
7134                            .apply_max_message_size_config(
7135                                max_decoding_message_size,
7136                                max_encoding_message_size,
7137                            );
7138                        let res = grpc.unary(method, req).await;
7139                        Ok(res)
7140                    };
7141                    Box::pin(fut)
7142                }
7143                "/Vine.CocoonService/RegisterDocumentHighlightProvider" => {
7144                    #[allow(non_camel_case_types)]
7145                    struct RegisterDocumentHighlightProviderSvc<T: CocoonService>(
7146                        pub Arc<T>,
7147                    );
7148                    impl<
7149                        T: CocoonService,
7150                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7151                    for RegisterDocumentHighlightProviderSvc<T> {
7152                        type Response = super::Empty;
7153                        type Future = BoxFuture<
7154                            tonic::Response<Self::Response>,
7155                            tonic::Status,
7156                        >;
7157                        fn call(
7158                            &mut self,
7159                            request: tonic::Request<super::RegisterProviderRequest>,
7160                        ) -> Self::Future {
7161                            let inner = Arc::clone(&self.0);
7162                            let fut = async move {
7163                                <T as CocoonService>::register_document_highlight_provider(
7164                                        &inner,
7165                                        request,
7166                                    )
7167                                    .await
7168                            };
7169                            Box::pin(fut)
7170                        }
7171                    }
7172                    let accept_compression_encodings = self.accept_compression_encodings;
7173                    let send_compression_encodings = self.send_compression_encodings;
7174                    let max_decoding_message_size = self.max_decoding_message_size;
7175                    let max_encoding_message_size = self.max_encoding_message_size;
7176                    let inner = self.inner.clone();
7177                    let fut = async move {
7178                        let method = RegisterDocumentHighlightProviderSvc(inner);
7179                        let codec = tonic_prost::ProstCodec::default();
7180                        let mut grpc = tonic::server::Grpc::new(codec)
7181                            .apply_compression_config(
7182                                accept_compression_encodings,
7183                                send_compression_encodings,
7184                            )
7185                            .apply_max_message_size_config(
7186                                max_decoding_message_size,
7187                                max_encoding_message_size,
7188                            );
7189                        let res = grpc.unary(method, req).await;
7190                        Ok(res)
7191                    };
7192                    Box::pin(fut)
7193                }
7194                "/Vine.CocoonService/ProvideDocumentHighlights" => {
7195                    #[allow(non_camel_case_types)]
7196                    struct ProvideDocumentHighlightsSvc<T: CocoonService>(pub Arc<T>);
7197                    impl<
7198                        T: CocoonService,
7199                    > tonic::server::UnaryService<
7200                        super::ProvideDocumentHighlightsRequest,
7201                    > for ProvideDocumentHighlightsSvc<T> {
7202                        type Response = super::ProvideDocumentHighlightsResponse;
7203                        type Future = BoxFuture<
7204                            tonic::Response<Self::Response>,
7205                            tonic::Status,
7206                        >;
7207                        fn call(
7208                            &mut self,
7209                            request: tonic::Request<
7210                                super::ProvideDocumentHighlightsRequest,
7211                            >,
7212                        ) -> Self::Future {
7213                            let inner = Arc::clone(&self.0);
7214                            let fut = async move {
7215                                <T as CocoonService>::provide_document_highlights(
7216                                        &inner,
7217                                        request,
7218                                    )
7219                                    .await
7220                            };
7221                            Box::pin(fut)
7222                        }
7223                    }
7224                    let accept_compression_encodings = self.accept_compression_encodings;
7225                    let send_compression_encodings = self.send_compression_encodings;
7226                    let max_decoding_message_size = self.max_decoding_message_size;
7227                    let max_encoding_message_size = self.max_encoding_message_size;
7228                    let inner = self.inner.clone();
7229                    let fut = async move {
7230                        let method = ProvideDocumentHighlightsSvc(inner);
7231                        let codec = tonic_prost::ProstCodec::default();
7232                        let mut grpc = tonic::server::Grpc::new(codec)
7233                            .apply_compression_config(
7234                                accept_compression_encodings,
7235                                send_compression_encodings,
7236                            )
7237                            .apply_max_message_size_config(
7238                                max_decoding_message_size,
7239                                max_encoding_message_size,
7240                            );
7241                        let res = grpc.unary(method, req).await;
7242                        Ok(res)
7243                    };
7244                    Box::pin(fut)
7245                }
7246                "/Vine.CocoonService/RegisterDocumentSymbolProvider" => {
7247                    #[allow(non_camel_case_types)]
7248                    struct RegisterDocumentSymbolProviderSvc<T: CocoonService>(
7249                        pub Arc<T>,
7250                    );
7251                    impl<
7252                        T: CocoonService,
7253                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7254                    for RegisterDocumentSymbolProviderSvc<T> {
7255                        type Response = super::Empty;
7256                        type Future = BoxFuture<
7257                            tonic::Response<Self::Response>,
7258                            tonic::Status,
7259                        >;
7260                        fn call(
7261                            &mut self,
7262                            request: tonic::Request<super::RegisterProviderRequest>,
7263                        ) -> Self::Future {
7264                            let inner = Arc::clone(&self.0);
7265                            let fut = async move {
7266                                <T as CocoonService>::register_document_symbol_provider(
7267                                        &inner,
7268                                        request,
7269                                    )
7270                                    .await
7271                            };
7272                            Box::pin(fut)
7273                        }
7274                    }
7275                    let accept_compression_encodings = self.accept_compression_encodings;
7276                    let send_compression_encodings = self.send_compression_encodings;
7277                    let max_decoding_message_size = self.max_decoding_message_size;
7278                    let max_encoding_message_size = self.max_encoding_message_size;
7279                    let inner = self.inner.clone();
7280                    let fut = async move {
7281                        let method = RegisterDocumentSymbolProviderSvc(inner);
7282                        let codec = tonic_prost::ProstCodec::default();
7283                        let mut grpc = tonic::server::Grpc::new(codec)
7284                            .apply_compression_config(
7285                                accept_compression_encodings,
7286                                send_compression_encodings,
7287                            )
7288                            .apply_max_message_size_config(
7289                                max_decoding_message_size,
7290                                max_encoding_message_size,
7291                            );
7292                        let res = grpc.unary(method, req).await;
7293                        Ok(res)
7294                    };
7295                    Box::pin(fut)
7296                }
7297                "/Vine.CocoonService/ProvideDocumentSymbols" => {
7298                    #[allow(non_camel_case_types)]
7299                    struct ProvideDocumentSymbolsSvc<T: CocoonService>(pub Arc<T>);
7300                    impl<
7301                        T: CocoonService,
7302                    > tonic::server::UnaryService<super::ProvideDocumentSymbolsRequest>
7303                    for ProvideDocumentSymbolsSvc<T> {
7304                        type Response = super::ProvideDocumentSymbolsResponse;
7305                        type Future = BoxFuture<
7306                            tonic::Response<Self::Response>,
7307                            tonic::Status,
7308                        >;
7309                        fn call(
7310                            &mut self,
7311                            request: tonic::Request<super::ProvideDocumentSymbolsRequest>,
7312                        ) -> Self::Future {
7313                            let inner = Arc::clone(&self.0);
7314                            let fut = async move {
7315                                <T as CocoonService>::provide_document_symbols(
7316                                        &inner,
7317                                        request,
7318                                    )
7319                                    .await
7320                            };
7321                            Box::pin(fut)
7322                        }
7323                    }
7324                    let accept_compression_encodings = self.accept_compression_encodings;
7325                    let send_compression_encodings = self.send_compression_encodings;
7326                    let max_decoding_message_size = self.max_decoding_message_size;
7327                    let max_encoding_message_size = self.max_encoding_message_size;
7328                    let inner = self.inner.clone();
7329                    let fut = async move {
7330                        let method = ProvideDocumentSymbolsSvc(inner);
7331                        let codec = tonic_prost::ProstCodec::default();
7332                        let mut grpc = tonic::server::Grpc::new(codec)
7333                            .apply_compression_config(
7334                                accept_compression_encodings,
7335                                send_compression_encodings,
7336                            )
7337                            .apply_max_message_size_config(
7338                                max_decoding_message_size,
7339                                max_encoding_message_size,
7340                            );
7341                        let res = grpc.unary(method, req).await;
7342                        Ok(res)
7343                    };
7344                    Box::pin(fut)
7345                }
7346                "/Vine.CocoonService/RegisterWorkspaceSymbolProvider" => {
7347                    #[allow(non_camel_case_types)]
7348                    struct RegisterWorkspaceSymbolProviderSvc<T: CocoonService>(
7349                        pub Arc<T>,
7350                    );
7351                    impl<
7352                        T: CocoonService,
7353                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7354                    for RegisterWorkspaceSymbolProviderSvc<T> {
7355                        type Response = super::Empty;
7356                        type Future = BoxFuture<
7357                            tonic::Response<Self::Response>,
7358                            tonic::Status,
7359                        >;
7360                        fn call(
7361                            &mut self,
7362                            request: tonic::Request<super::RegisterProviderRequest>,
7363                        ) -> Self::Future {
7364                            let inner = Arc::clone(&self.0);
7365                            let fut = async move {
7366                                <T as CocoonService>::register_workspace_symbol_provider(
7367                                        &inner,
7368                                        request,
7369                                    )
7370                                    .await
7371                            };
7372                            Box::pin(fut)
7373                        }
7374                    }
7375                    let accept_compression_encodings = self.accept_compression_encodings;
7376                    let send_compression_encodings = self.send_compression_encodings;
7377                    let max_decoding_message_size = self.max_decoding_message_size;
7378                    let max_encoding_message_size = self.max_encoding_message_size;
7379                    let inner = self.inner.clone();
7380                    let fut = async move {
7381                        let method = RegisterWorkspaceSymbolProviderSvc(inner);
7382                        let codec = tonic_prost::ProstCodec::default();
7383                        let mut grpc = tonic::server::Grpc::new(codec)
7384                            .apply_compression_config(
7385                                accept_compression_encodings,
7386                                send_compression_encodings,
7387                            )
7388                            .apply_max_message_size_config(
7389                                max_decoding_message_size,
7390                                max_encoding_message_size,
7391                            );
7392                        let res = grpc.unary(method, req).await;
7393                        Ok(res)
7394                    };
7395                    Box::pin(fut)
7396                }
7397                "/Vine.CocoonService/ProvideWorkspaceSymbols" => {
7398                    #[allow(non_camel_case_types)]
7399                    struct ProvideWorkspaceSymbolsSvc<T: CocoonService>(pub Arc<T>);
7400                    impl<
7401                        T: CocoonService,
7402                    > tonic::server::UnaryService<super::ProvideWorkspaceSymbolsRequest>
7403                    for ProvideWorkspaceSymbolsSvc<T> {
7404                        type Response = super::ProvideWorkspaceSymbolsResponse;
7405                        type Future = BoxFuture<
7406                            tonic::Response<Self::Response>,
7407                            tonic::Status,
7408                        >;
7409                        fn call(
7410                            &mut self,
7411                            request: tonic::Request<
7412                                super::ProvideWorkspaceSymbolsRequest,
7413                            >,
7414                        ) -> Self::Future {
7415                            let inner = Arc::clone(&self.0);
7416                            let fut = async move {
7417                                <T as CocoonService>::provide_workspace_symbols(
7418                                        &inner,
7419                                        request,
7420                                    )
7421                                    .await
7422                            };
7423                            Box::pin(fut)
7424                        }
7425                    }
7426                    let accept_compression_encodings = self.accept_compression_encodings;
7427                    let send_compression_encodings = self.send_compression_encodings;
7428                    let max_decoding_message_size = self.max_decoding_message_size;
7429                    let max_encoding_message_size = self.max_encoding_message_size;
7430                    let inner = self.inner.clone();
7431                    let fut = async move {
7432                        let method = ProvideWorkspaceSymbolsSvc(inner);
7433                        let codec = tonic_prost::ProstCodec::default();
7434                        let mut grpc = tonic::server::Grpc::new(codec)
7435                            .apply_compression_config(
7436                                accept_compression_encodings,
7437                                send_compression_encodings,
7438                            )
7439                            .apply_max_message_size_config(
7440                                max_decoding_message_size,
7441                                max_encoding_message_size,
7442                            );
7443                        let res = grpc.unary(method, req).await;
7444                        Ok(res)
7445                    };
7446                    Box::pin(fut)
7447                }
7448                "/Vine.CocoonService/RegisterRenameProvider" => {
7449                    #[allow(non_camel_case_types)]
7450                    struct RegisterRenameProviderSvc<T: CocoonService>(pub Arc<T>);
7451                    impl<
7452                        T: CocoonService,
7453                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7454                    for RegisterRenameProviderSvc<T> {
7455                        type Response = super::Empty;
7456                        type Future = BoxFuture<
7457                            tonic::Response<Self::Response>,
7458                            tonic::Status,
7459                        >;
7460                        fn call(
7461                            &mut self,
7462                            request: tonic::Request<super::RegisterProviderRequest>,
7463                        ) -> Self::Future {
7464                            let inner = Arc::clone(&self.0);
7465                            let fut = async move {
7466                                <T as CocoonService>::register_rename_provider(
7467                                        &inner,
7468                                        request,
7469                                    )
7470                                    .await
7471                            };
7472                            Box::pin(fut)
7473                        }
7474                    }
7475                    let accept_compression_encodings = self.accept_compression_encodings;
7476                    let send_compression_encodings = self.send_compression_encodings;
7477                    let max_decoding_message_size = self.max_decoding_message_size;
7478                    let max_encoding_message_size = self.max_encoding_message_size;
7479                    let inner = self.inner.clone();
7480                    let fut = async move {
7481                        let method = RegisterRenameProviderSvc(inner);
7482                        let codec = tonic_prost::ProstCodec::default();
7483                        let mut grpc = tonic::server::Grpc::new(codec)
7484                            .apply_compression_config(
7485                                accept_compression_encodings,
7486                                send_compression_encodings,
7487                            )
7488                            .apply_max_message_size_config(
7489                                max_decoding_message_size,
7490                                max_encoding_message_size,
7491                            );
7492                        let res = grpc.unary(method, req).await;
7493                        Ok(res)
7494                    };
7495                    Box::pin(fut)
7496                }
7497                "/Vine.CocoonService/ProvideRenameEdits" => {
7498                    #[allow(non_camel_case_types)]
7499                    struct ProvideRenameEditsSvc<T: CocoonService>(pub Arc<T>);
7500                    impl<
7501                        T: CocoonService,
7502                    > tonic::server::UnaryService<super::ProvideRenameEditsRequest>
7503                    for ProvideRenameEditsSvc<T> {
7504                        type Response = super::ProvideRenameEditsResponse;
7505                        type Future = BoxFuture<
7506                            tonic::Response<Self::Response>,
7507                            tonic::Status,
7508                        >;
7509                        fn call(
7510                            &mut self,
7511                            request: tonic::Request<super::ProvideRenameEditsRequest>,
7512                        ) -> Self::Future {
7513                            let inner = Arc::clone(&self.0);
7514                            let fut = async move {
7515                                <T as CocoonService>::provide_rename_edits(&inner, request)
7516                                    .await
7517                            };
7518                            Box::pin(fut)
7519                        }
7520                    }
7521                    let accept_compression_encodings = self.accept_compression_encodings;
7522                    let send_compression_encodings = self.send_compression_encodings;
7523                    let max_decoding_message_size = self.max_decoding_message_size;
7524                    let max_encoding_message_size = self.max_encoding_message_size;
7525                    let inner = self.inner.clone();
7526                    let fut = async move {
7527                        let method = ProvideRenameEditsSvc(inner);
7528                        let codec = tonic_prost::ProstCodec::default();
7529                        let mut grpc = tonic::server::Grpc::new(codec)
7530                            .apply_compression_config(
7531                                accept_compression_encodings,
7532                                send_compression_encodings,
7533                            )
7534                            .apply_max_message_size_config(
7535                                max_decoding_message_size,
7536                                max_encoding_message_size,
7537                            );
7538                        let res = grpc.unary(method, req).await;
7539                        Ok(res)
7540                    };
7541                    Box::pin(fut)
7542                }
7543                "/Vine.CocoonService/RegisterDocumentFormattingProvider" => {
7544                    #[allow(non_camel_case_types)]
7545                    struct RegisterDocumentFormattingProviderSvc<T: CocoonService>(
7546                        pub Arc<T>,
7547                    );
7548                    impl<
7549                        T: CocoonService,
7550                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7551                    for RegisterDocumentFormattingProviderSvc<T> {
7552                        type Response = super::Empty;
7553                        type Future = BoxFuture<
7554                            tonic::Response<Self::Response>,
7555                            tonic::Status,
7556                        >;
7557                        fn call(
7558                            &mut self,
7559                            request: tonic::Request<super::RegisterProviderRequest>,
7560                        ) -> Self::Future {
7561                            let inner = Arc::clone(&self.0);
7562                            let fut = async move {
7563                                <T as CocoonService>::register_document_formatting_provider(
7564                                        &inner,
7565                                        request,
7566                                    )
7567                                    .await
7568                            };
7569                            Box::pin(fut)
7570                        }
7571                    }
7572                    let accept_compression_encodings = self.accept_compression_encodings;
7573                    let send_compression_encodings = self.send_compression_encodings;
7574                    let max_decoding_message_size = self.max_decoding_message_size;
7575                    let max_encoding_message_size = self.max_encoding_message_size;
7576                    let inner = self.inner.clone();
7577                    let fut = async move {
7578                        let method = RegisterDocumentFormattingProviderSvc(inner);
7579                        let codec = tonic_prost::ProstCodec::default();
7580                        let mut grpc = tonic::server::Grpc::new(codec)
7581                            .apply_compression_config(
7582                                accept_compression_encodings,
7583                                send_compression_encodings,
7584                            )
7585                            .apply_max_message_size_config(
7586                                max_decoding_message_size,
7587                                max_encoding_message_size,
7588                            );
7589                        let res = grpc.unary(method, req).await;
7590                        Ok(res)
7591                    };
7592                    Box::pin(fut)
7593                }
7594                "/Vine.CocoonService/ProvideDocumentFormatting" => {
7595                    #[allow(non_camel_case_types)]
7596                    struct ProvideDocumentFormattingSvc<T: CocoonService>(pub Arc<T>);
7597                    impl<
7598                        T: CocoonService,
7599                    > tonic::server::UnaryService<
7600                        super::ProvideDocumentFormattingRequest,
7601                    > for ProvideDocumentFormattingSvc<T> {
7602                        type Response = super::ProvideDocumentFormattingResponse;
7603                        type Future = BoxFuture<
7604                            tonic::Response<Self::Response>,
7605                            tonic::Status,
7606                        >;
7607                        fn call(
7608                            &mut self,
7609                            request: tonic::Request<
7610                                super::ProvideDocumentFormattingRequest,
7611                            >,
7612                        ) -> Self::Future {
7613                            let inner = Arc::clone(&self.0);
7614                            let fut = async move {
7615                                <T as CocoonService>::provide_document_formatting(
7616                                        &inner,
7617                                        request,
7618                                    )
7619                                    .await
7620                            };
7621                            Box::pin(fut)
7622                        }
7623                    }
7624                    let accept_compression_encodings = self.accept_compression_encodings;
7625                    let send_compression_encodings = self.send_compression_encodings;
7626                    let max_decoding_message_size = self.max_decoding_message_size;
7627                    let max_encoding_message_size = self.max_encoding_message_size;
7628                    let inner = self.inner.clone();
7629                    let fut = async move {
7630                        let method = ProvideDocumentFormattingSvc(inner);
7631                        let codec = tonic_prost::ProstCodec::default();
7632                        let mut grpc = tonic::server::Grpc::new(codec)
7633                            .apply_compression_config(
7634                                accept_compression_encodings,
7635                                send_compression_encodings,
7636                            )
7637                            .apply_max_message_size_config(
7638                                max_decoding_message_size,
7639                                max_encoding_message_size,
7640                            );
7641                        let res = grpc.unary(method, req).await;
7642                        Ok(res)
7643                    };
7644                    Box::pin(fut)
7645                }
7646                "/Vine.CocoonService/RegisterDocumentRangeFormattingProvider" => {
7647                    #[allow(non_camel_case_types)]
7648                    struct RegisterDocumentRangeFormattingProviderSvc<T: CocoonService>(
7649                        pub Arc<T>,
7650                    );
7651                    impl<
7652                        T: CocoonService,
7653                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7654                    for RegisterDocumentRangeFormattingProviderSvc<T> {
7655                        type Response = super::Empty;
7656                        type Future = BoxFuture<
7657                            tonic::Response<Self::Response>,
7658                            tonic::Status,
7659                        >;
7660                        fn call(
7661                            &mut self,
7662                            request: tonic::Request<super::RegisterProviderRequest>,
7663                        ) -> Self::Future {
7664                            let inner = Arc::clone(&self.0);
7665                            let fut = async move {
7666                                <T as CocoonService>::register_document_range_formatting_provider(
7667                                        &inner,
7668                                        request,
7669                                    )
7670                                    .await
7671                            };
7672                            Box::pin(fut)
7673                        }
7674                    }
7675                    let accept_compression_encodings = self.accept_compression_encodings;
7676                    let send_compression_encodings = self.send_compression_encodings;
7677                    let max_decoding_message_size = self.max_decoding_message_size;
7678                    let max_encoding_message_size = self.max_encoding_message_size;
7679                    let inner = self.inner.clone();
7680                    let fut = async move {
7681                        let method = RegisterDocumentRangeFormattingProviderSvc(inner);
7682                        let codec = tonic_prost::ProstCodec::default();
7683                        let mut grpc = tonic::server::Grpc::new(codec)
7684                            .apply_compression_config(
7685                                accept_compression_encodings,
7686                                send_compression_encodings,
7687                            )
7688                            .apply_max_message_size_config(
7689                                max_decoding_message_size,
7690                                max_encoding_message_size,
7691                            );
7692                        let res = grpc.unary(method, req).await;
7693                        Ok(res)
7694                    };
7695                    Box::pin(fut)
7696                }
7697                "/Vine.CocoonService/ProvideDocumentRangeFormatting" => {
7698                    #[allow(non_camel_case_types)]
7699                    struct ProvideDocumentRangeFormattingSvc<T: CocoonService>(
7700                        pub Arc<T>,
7701                    );
7702                    impl<
7703                        T: CocoonService,
7704                    > tonic::server::UnaryService<
7705                        super::ProvideDocumentRangeFormattingRequest,
7706                    > for ProvideDocumentRangeFormattingSvc<T> {
7707                        type Response = super::ProvideDocumentRangeFormattingResponse;
7708                        type Future = BoxFuture<
7709                            tonic::Response<Self::Response>,
7710                            tonic::Status,
7711                        >;
7712                        fn call(
7713                            &mut self,
7714                            request: tonic::Request<
7715                                super::ProvideDocumentRangeFormattingRequest,
7716                            >,
7717                        ) -> Self::Future {
7718                            let inner = Arc::clone(&self.0);
7719                            let fut = async move {
7720                                <T as CocoonService>::provide_document_range_formatting(
7721                                        &inner,
7722                                        request,
7723                                    )
7724                                    .await
7725                            };
7726                            Box::pin(fut)
7727                        }
7728                    }
7729                    let accept_compression_encodings = self.accept_compression_encodings;
7730                    let send_compression_encodings = self.send_compression_encodings;
7731                    let max_decoding_message_size = self.max_decoding_message_size;
7732                    let max_encoding_message_size = self.max_encoding_message_size;
7733                    let inner = self.inner.clone();
7734                    let fut = async move {
7735                        let method = ProvideDocumentRangeFormattingSvc(inner);
7736                        let codec = tonic_prost::ProstCodec::default();
7737                        let mut grpc = tonic::server::Grpc::new(codec)
7738                            .apply_compression_config(
7739                                accept_compression_encodings,
7740                                send_compression_encodings,
7741                            )
7742                            .apply_max_message_size_config(
7743                                max_decoding_message_size,
7744                                max_encoding_message_size,
7745                            );
7746                        let res = grpc.unary(method, req).await;
7747                        Ok(res)
7748                    };
7749                    Box::pin(fut)
7750                }
7751                "/Vine.CocoonService/RegisterOnTypeFormattingProvider" => {
7752                    #[allow(non_camel_case_types)]
7753                    struct RegisterOnTypeFormattingProviderSvc<T: CocoonService>(
7754                        pub Arc<T>,
7755                    );
7756                    impl<
7757                        T: CocoonService,
7758                    > tonic::server::UnaryService<
7759                        super::RegisterOnTypeFormattingProviderRequest,
7760                    > for RegisterOnTypeFormattingProviderSvc<T> {
7761                        type Response = super::Empty;
7762                        type Future = BoxFuture<
7763                            tonic::Response<Self::Response>,
7764                            tonic::Status,
7765                        >;
7766                        fn call(
7767                            &mut self,
7768                            request: tonic::Request<
7769                                super::RegisterOnTypeFormattingProviderRequest,
7770                            >,
7771                        ) -> Self::Future {
7772                            let inner = Arc::clone(&self.0);
7773                            let fut = async move {
7774                                <T as CocoonService>::register_on_type_formatting_provider(
7775                                        &inner,
7776                                        request,
7777                                    )
7778                                    .await
7779                            };
7780                            Box::pin(fut)
7781                        }
7782                    }
7783                    let accept_compression_encodings = self.accept_compression_encodings;
7784                    let send_compression_encodings = self.send_compression_encodings;
7785                    let max_decoding_message_size = self.max_decoding_message_size;
7786                    let max_encoding_message_size = self.max_encoding_message_size;
7787                    let inner = self.inner.clone();
7788                    let fut = async move {
7789                        let method = RegisterOnTypeFormattingProviderSvc(inner);
7790                        let codec = tonic_prost::ProstCodec::default();
7791                        let mut grpc = tonic::server::Grpc::new(codec)
7792                            .apply_compression_config(
7793                                accept_compression_encodings,
7794                                send_compression_encodings,
7795                            )
7796                            .apply_max_message_size_config(
7797                                max_decoding_message_size,
7798                                max_encoding_message_size,
7799                            );
7800                        let res = grpc.unary(method, req).await;
7801                        Ok(res)
7802                    };
7803                    Box::pin(fut)
7804                }
7805                "/Vine.CocoonService/ProvideOnTypeFormatting" => {
7806                    #[allow(non_camel_case_types)]
7807                    struct ProvideOnTypeFormattingSvc<T: CocoonService>(pub Arc<T>);
7808                    impl<
7809                        T: CocoonService,
7810                    > tonic::server::UnaryService<super::ProvideOnTypeFormattingRequest>
7811                    for ProvideOnTypeFormattingSvc<T> {
7812                        type Response = super::ProvideOnTypeFormattingResponse;
7813                        type Future = BoxFuture<
7814                            tonic::Response<Self::Response>,
7815                            tonic::Status,
7816                        >;
7817                        fn call(
7818                            &mut self,
7819                            request: tonic::Request<
7820                                super::ProvideOnTypeFormattingRequest,
7821                            >,
7822                        ) -> Self::Future {
7823                            let inner = Arc::clone(&self.0);
7824                            let fut = async move {
7825                                <T as CocoonService>::provide_on_type_formatting(
7826                                        &inner,
7827                                        request,
7828                                    )
7829                                    .await
7830                            };
7831                            Box::pin(fut)
7832                        }
7833                    }
7834                    let accept_compression_encodings = self.accept_compression_encodings;
7835                    let send_compression_encodings = self.send_compression_encodings;
7836                    let max_decoding_message_size = self.max_decoding_message_size;
7837                    let max_encoding_message_size = self.max_encoding_message_size;
7838                    let inner = self.inner.clone();
7839                    let fut = async move {
7840                        let method = ProvideOnTypeFormattingSvc(inner);
7841                        let codec = tonic_prost::ProstCodec::default();
7842                        let mut grpc = tonic::server::Grpc::new(codec)
7843                            .apply_compression_config(
7844                                accept_compression_encodings,
7845                                send_compression_encodings,
7846                            )
7847                            .apply_max_message_size_config(
7848                                max_decoding_message_size,
7849                                max_encoding_message_size,
7850                            );
7851                        let res = grpc.unary(method, req).await;
7852                        Ok(res)
7853                    };
7854                    Box::pin(fut)
7855                }
7856                "/Vine.CocoonService/RegisterSignatureHelpProvider" => {
7857                    #[allow(non_camel_case_types)]
7858                    struct RegisterSignatureHelpProviderSvc<T: CocoonService>(
7859                        pub Arc<T>,
7860                    );
7861                    impl<
7862                        T: CocoonService,
7863                    > tonic::server::UnaryService<
7864                        super::RegisterSignatureHelpProviderRequest,
7865                    > for RegisterSignatureHelpProviderSvc<T> {
7866                        type Response = super::Empty;
7867                        type Future = BoxFuture<
7868                            tonic::Response<Self::Response>,
7869                            tonic::Status,
7870                        >;
7871                        fn call(
7872                            &mut self,
7873                            request: tonic::Request<
7874                                super::RegisterSignatureHelpProviderRequest,
7875                            >,
7876                        ) -> Self::Future {
7877                            let inner = Arc::clone(&self.0);
7878                            let fut = async move {
7879                                <T as CocoonService>::register_signature_help_provider(
7880                                        &inner,
7881                                        request,
7882                                    )
7883                                    .await
7884                            };
7885                            Box::pin(fut)
7886                        }
7887                    }
7888                    let accept_compression_encodings = self.accept_compression_encodings;
7889                    let send_compression_encodings = self.send_compression_encodings;
7890                    let max_decoding_message_size = self.max_decoding_message_size;
7891                    let max_encoding_message_size = self.max_encoding_message_size;
7892                    let inner = self.inner.clone();
7893                    let fut = async move {
7894                        let method = RegisterSignatureHelpProviderSvc(inner);
7895                        let codec = tonic_prost::ProstCodec::default();
7896                        let mut grpc = tonic::server::Grpc::new(codec)
7897                            .apply_compression_config(
7898                                accept_compression_encodings,
7899                                send_compression_encodings,
7900                            )
7901                            .apply_max_message_size_config(
7902                                max_decoding_message_size,
7903                                max_encoding_message_size,
7904                            );
7905                        let res = grpc.unary(method, req).await;
7906                        Ok(res)
7907                    };
7908                    Box::pin(fut)
7909                }
7910                "/Vine.CocoonService/ProvideSignatureHelp" => {
7911                    #[allow(non_camel_case_types)]
7912                    struct ProvideSignatureHelpSvc<T: CocoonService>(pub Arc<T>);
7913                    impl<
7914                        T: CocoonService,
7915                    > tonic::server::UnaryService<super::ProvideSignatureHelpRequest>
7916                    for ProvideSignatureHelpSvc<T> {
7917                        type Response = super::ProvideSignatureHelpResponse;
7918                        type Future = BoxFuture<
7919                            tonic::Response<Self::Response>,
7920                            tonic::Status,
7921                        >;
7922                        fn call(
7923                            &mut self,
7924                            request: tonic::Request<super::ProvideSignatureHelpRequest>,
7925                        ) -> Self::Future {
7926                            let inner = Arc::clone(&self.0);
7927                            let fut = async move {
7928                                <T as CocoonService>::provide_signature_help(
7929                                        &inner,
7930                                        request,
7931                                    )
7932                                    .await
7933                            };
7934                            Box::pin(fut)
7935                        }
7936                    }
7937                    let accept_compression_encodings = self.accept_compression_encodings;
7938                    let send_compression_encodings = self.send_compression_encodings;
7939                    let max_decoding_message_size = self.max_decoding_message_size;
7940                    let max_encoding_message_size = self.max_encoding_message_size;
7941                    let inner = self.inner.clone();
7942                    let fut = async move {
7943                        let method = ProvideSignatureHelpSvc(inner);
7944                        let codec = tonic_prost::ProstCodec::default();
7945                        let mut grpc = tonic::server::Grpc::new(codec)
7946                            .apply_compression_config(
7947                                accept_compression_encodings,
7948                                send_compression_encodings,
7949                            )
7950                            .apply_max_message_size_config(
7951                                max_decoding_message_size,
7952                                max_encoding_message_size,
7953                            );
7954                        let res = grpc.unary(method, req).await;
7955                        Ok(res)
7956                    };
7957                    Box::pin(fut)
7958                }
7959                "/Vine.CocoonService/RegisterCodeLensProvider" => {
7960                    #[allow(non_camel_case_types)]
7961                    struct RegisterCodeLensProviderSvc<T: CocoonService>(pub Arc<T>);
7962                    impl<
7963                        T: CocoonService,
7964                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7965                    for RegisterCodeLensProviderSvc<T> {
7966                        type Response = super::Empty;
7967                        type Future = BoxFuture<
7968                            tonic::Response<Self::Response>,
7969                            tonic::Status,
7970                        >;
7971                        fn call(
7972                            &mut self,
7973                            request: tonic::Request<super::RegisterProviderRequest>,
7974                        ) -> Self::Future {
7975                            let inner = Arc::clone(&self.0);
7976                            let fut = async move {
7977                                <T as CocoonService>::register_code_lens_provider(
7978                                        &inner,
7979                                        request,
7980                                    )
7981                                    .await
7982                            };
7983                            Box::pin(fut)
7984                        }
7985                    }
7986                    let accept_compression_encodings = self.accept_compression_encodings;
7987                    let send_compression_encodings = self.send_compression_encodings;
7988                    let max_decoding_message_size = self.max_decoding_message_size;
7989                    let max_encoding_message_size = self.max_encoding_message_size;
7990                    let inner = self.inner.clone();
7991                    let fut = async move {
7992                        let method = RegisterCodeLensProviderSvc(inner);
7993                        let codec = tonic_prost::ProstCodec::default();
7994                        let mut grpc = tonic::server::Grpc::new(codec)
7995                            .apply_compression_config(
7996                                accept_compression_encodings,
7997                                send_compression_encodings,
7998                            )
7999                            .apply_max_message_size_config(
8000                                max_decoding_message_size,
8001                                max_encoding_message_size,
8002                            );
8003                        let res = grpc.unary(method, req).await;
8004                        Ok(res)
8005                    };
8006                    Box::pin(fut)
8007                }
8008                "/Vine.CocoonService/ProvideCodeLenses" => {
8009                    #[allow(non_camel_case_types)]
8010                    struct ProvideCodeLensesSvc<T: CocoonService>(pub Arc<T>);
8011                    impl<
8012                        T: CocoonService,
8013                    > tonic::server::UnaryService<super::ProvideCodeLensesRequest>
8014                    for ProvideCodeLensesSvc<T> {
8015                        type Response = super::ProvideCodeLensesResponse;
8016                        type Future = BoxFuture<
8017                            tonic::Response<Self::Response>,
8018                            tonic::Status,
8019                        >;
8020                        fn call(
8021                            &mut self,
8022                            request: tonic::Request<super::ProvideCodeLensesRequest>,
8023                        ) -> Self::Future {
8024                            let inner = Arc::clone(&self.0);
8025                            let fut = async move {
8026                                <T as CocoonService>::provide_code_lenses(&inner, request)
8027                                    .await
8028                            };
8029                            Box::pin(fut)
8030                        }
8031                    }
8032                    let accept_compression_encodings = self.accept_compression_encodings;
8033                    let send_compression_encodings = self.send_compression_encodings;
8034                    let max_decoding_message_size = self.max_decoding_message_size;
8035                    let max_encoding_message_size = self.max_encoding_message_size;
8036                    let inner = self.inner.clone();
8037                    let fut = async move {
8038                        let method = ProvideCodeLensesSvc(inner);
8039                        let codec = tonic_prost::ProstCodec::default();
8040                        let mut grpc = tonic::server::Grpc::new(codec)
8041                            .apply_compression_config(
8042                                accept_compression_encodings,
8043                                send_compression_encodings,
8044                            )
8045                            .apply_max_message_size_config(
8046                                max_decoding_message_size,
8047                                max_encoding_message_size,
8048                            );
8049                        let res = grpc.unary(method, req).await;
8050                        Ok(res)
8051                    };
8052                    Box::pin(fut)
8053                }
8054                "/Vine.CocoonService/RegisterFoldingRangeProvider" => {
8055                    #[allow(non_camel_case_types)]
8056                    struct RegisterFoldingRangeProviderSvc<T: CocoonService>(pub Arc<T>);
8057                    impl<
8058                        T: CocoonService,
8059                    > tonic::server::UnaryService<super::RegisterProviderRequest>
8060                    for RegisterFoldingRangeProviderSvc<T> {
8061                        type Response = super::Empty;
8062                        type Future = BoxFuture<
8063                            tonic::Response<Self::Response>,
8064                            tonic::Status,
8065                        >;
8066                        fn call(
8067                            &mut self,
8068                            request: tonic::Request<super::RegisterProviderRequest>,
8069                        ) -> Self::Future {
8070                            let inner = Arc::clone(&self.0);
8071                            let fut = async move {
8072                                <T as CocoonService>::register_folding_range_provider(
8073                                        &inner,
8074                                        request,
8075                                    )
8076                                    .await
8077                            };
8078                            Box::pin(fut)
8079                        }
8080                    }
8081                    let accept_compression_encodings = self.accept_compression_encodings;
8082                    let send_compression_encodings = self.send_compression_encodings;
8083                    let max_decoding_message_size = self.max_decoding_message_size;
8084                    let max_encoding_message_size = self.max_encoding_message_size;
8085                    let inner = self.inner.clone();
8086                    let fut = async move {
8087                        let method = RegisterFoldingRangeProviderSvc(inner);
8088                        let codec = tonic_prost::ProstCodec::default();
8089                        let mut grpc = tonic::server::Grpc::new(codec)
8090                            .apply_compression_config(
8091                                accept_compression_encodings,
8092                                send_compression_encodings,
8093                            )
8094                            .apply_max_message_size_config(
8095                                max_decoding_message_size,
8096                                max_encoding_message_size,
8097                            );
8098                        let res = grpc.unary(method, req).await;
8099                        Ok(res)
8100                    };
8101                    Box::pin(fut)
8102                }
8103                "/Vine.CocoonService/ProvideFoldingRanges" => {
8104                    #[allow(non_camel_case_types)]
8105                    struct ProvideFoldingRangesSvc<T: CocoonService>(pub Arc<T>);
8106                    impl<
8107                        T: CocoonService,
8108                    > tonic::server::UnaryService<super::ProvideFoldingRangesRequest>
8109                    for ProvideFoldingRangesSvc<T> {
8110                        type Response = super::ProvideFoldingRangesResponse;
8111                        type Future = BoxFuture<
8112                            tonic::Response<Self::Response>,
8113                            tonic::Status,
8114                        >;
8115                        fn call(
8116                            &mut self,
8117                            request: tonic::Request<super::ProvideFoldingRangesRequest>,
8118                        ) -> Self::Future {
8119                            let inner = Arc::clone(&self.0);
8120                            let fut = async move {
8121                                <T as CocoonService>::provide_folding_ranges(
8122                                        &inner,
8123                                        request,
8124                                    )
8125                                    .await
8126                            };
8127                            Box::pin(fut)
8128                        }
8129                    }
8130                    let accept_compression_encodings = self.accept_compression_encodings;
8131                    let send_compression_encodings = self.send_compression_encodings;
8132                    let max_decoding_message_size = self.max_decoding_message_size;
8133                    let max_encoding_message_size = self.max_encoding_message_size;
8134                    let inner = self.inner.clone();
8135                    let fut = async move {
8136                        let method = ProvideFoldingRangesSvc(inner);
8137                        let codec = tonic_prost::ProstCodec::default();
8138                        let mut grpc = tonic::server::Grpc::new(codec)
8139                            .apply_compression_config(
8140                                accept_compression_encodings,
8141                                send_compression_encodings,
8142                            )
8143                            .apply_max_message_size_config(
8144                                max_decoding_message_size,
8145                                max_encoding_message_size,
8146                            );
8147                        let res = grpc.unary(method, req).await;
8148                        Ok(res)
8149                    };
8150                    Box::pin(fut)
8151                }
8152                "/Vine.CocoonService/RegisterSelectionRangeProvider" => {
8153                    #[allow(non_camel_case_types)]
8154                    struct RegisterSelectionRangeProviderSvc<T: CocoonService>(
8155                        pub Arc<T>,
8156                    );
8157                    impl<
8158                        T: CocoonService,
8159                    > tonic::server::UnaryService<super::RegisterProviderRequest>
8160                    for RegisterSelectionRangeProviderSvc<T> {
8161                        type Response = super::Empty;
8162                        type Future = BoxFuture<
8163                            tonic::Response<Self::Response>,
8164                            tonic::Status,
8165                        >;
8166                        fn call(
8167                            &mut self,
8168                            request: tonic::Request<super::RegisterProviderRequest>,
8169                        ) -> Self::Future {
8170                            let inner = Arc::clone(&self.0);
8171                            let fut = async move {
8172                                <T as CocoonService>::register_selection_range_provider(
8173                                        &inner,
8174                                        request,
8175                                    )
8176                                    .await
8177                            };
8178                            Box::pin(fut)
8179                        }
8180                    }
8181                    let accept_compression_encodings = self.accept_compression_encodings;
8182                    let send_compression_encodings = self.send_compression_encodings;
8183                    let max_decoding_message_size = self.max_decoding_message_size;
8184                    let max_encoding_message_size = self.max_encoding_message_size;
8185                    let inner = self.inner.clone();
8186                    let fut = async move {
8187                        let method = RegisterSelectionRangeProviderSvc(inner);
8188                        let codec = tonic_prost::ProstCodec::default();
8189                        let mut grpc = tonic::server::Grpc::new(codec)
8190                            .apply_compression_config(
8191                                accept_compression_encodings,
8192                                send_compression_encodings,
8193                            )
8194                            .apply_max_message_size_config(
8195                                max_decoding_message_size,
8196                                max_encoding_message_size,
8197                            );
8198                        let res = grpc.unary(method, req).await;
8199                        Ok(res)
8200                    };
8201                    Box::pin(fut)
8202                }
8203                "/Vine.CocoonService/ProvideSelectionRanges" => {
8204                    #[allow(non_camel_case_types)]
8205                    struct ProvideSelectionRangesSvc<T: CocoonService>(pub Arc<T>);
8206                    impl<
8207                        T: CocoonService,
8208                    > tonic::server::UnaryService<super::ProvideSelectionRangesRequest>
8209                    for ProvideSelectionRangesSvc<T> {
8210                        type Response = super::ProvideSelectionRangesResponse;
8211                        type Future = BoxFuture<
8212                            tonic::Response<Self::Response>,
8213                            tonic::Status,
8214                        >;
8215                        fn call(
8216                            &mut self,
8217                            request: tonic::Request<super::ProvideSelectionRangesRequest>,
8218                        ) -> Self::Future {
8219                            let inner = Arc::clone(&self.0);
8220                            let fut = async move {
8221                                <T as CocoonService>::provide_selection_ranges(
8222                                        &inner,
8223                                        request,
8224                                    )
8225                                    .await
8226                            };
8227                            Box::pin(fut)
8228                        }
8229                    }
8230                    let accept_compression_encodings = self.accept_compression_encodings;
8231                    let send_compression_encodings = self.send_compression_encodings;
8232                    let max_decoding_message_size = self.max_decoding_message_size;
8233                    let max_encoding_message_size = self.max_encoding_message_size;
8234                    let inner = self.inner.clone();
8235                    let fut = async move {
8236                        let method = ProvideSelectionRangesSvc(inner);
8237                        let codec = tonic_prost::ProstCodec::default();
8238                        let mut grpc = tonic::server::Grpc::new(codec)
8239                            .apply_compression_config(
8240                                accept_compression_encodings,
8241                                send_compression_encodings,
8242                            )
8243                            .apply_max_message_size_config(
8244                                max_decoding_message_size,
8245                                max_encoding_message_size,
8246                            );
8247                        let res = grpc.unary(method, req).await;
8248                        Ok(res)
8249                    };
8250                    Box::pin(fut)
8251                }
8252                "/Vine.CocoonService/RegisterSemanticTokensProvider" => {
8253                    #[allow(non_camel_case_types)]
8254                    struct RegisterSemanticTokensProviderSvc<T: CocoonService>(
8255                        pub Arc<T>,
8256                    );
8257                    impl<
8258                        T: CocoonService,
8259                    > tonic::server::UnaryService<
8260                        super::RegisterSemanticTokensProviderRequest,
8261                    > for RegisterSemanticTokensProviderSvc<T> {
8262                        type Response = super::Empty;
8263                        type Future = BoxFuture<
8264                            tonic::Response<Self::Response>,
8265                            tonic::Status,
8266                        >;
8267                        fn call(
8268                            &mut self,
8269                            request: tonic::Request<
8270                                super::RegisterSemanticTokensProviderRequest,
8271                            >,
8272                        ) -> Self::Future {
8273                            let inner = Arc::clone(&self.0);
8274                            let fut = async move {
8275                                <T as CocoonService>::register_semantic_tokens_provider(
8276                                        &inner,
8277                                        request,
8278                                    )
8279                                    .await
8280                            };
8281                            Box::pin(fut)
8282                        }
8283                    }
8284                    let accept_compression_encodings = self.accept_compression_encodings;
8285                    let send_compression_encodings = self.send_compression_encodings;
8286                    let max_decoding_message_size = self.max_decoding_message_size;
8287                    let max_encoding_message_size = self.max_encoding_message_size;
8288                    let inner = self.inner.clone();
8289                    let fut = async move {
8290                        let method = RegisterSemanticTokensProviderSvc(inner);
8291                        let codec = tonic_prost::ProstCodec::default();
8292                        let mut grpc = tonic::server::Grpc::new(codec)
8293                            .apply_compression_config(
8294                                accept_compression_encodings,
8295                                send_compression_encodings,
8296                            )
8297                            .apply_max_message_size_config(
8298                                max_decoding_message_size,
8299                                max_encoding_message_size,
8300                            );
8301                        let res = grpc.unary(method, req).await;
8302                        Ok(res)
8303                    };
8304                    Box::pin(fut)
8305                }
8306                "/Vine.CocoonService/ProvideSemanticTokensFull" => {
8307                    #[allow(non_camel_case_types)]
8308                    struct ProvideSemanticTokensFullSvc<T: CocoonService>(pub Arc<T>);
8309                    impl<
8310                        T: CocoonService,
8311                    > tonic::server::UnaryService<super::ProvideSemanticTokensRequest>
8312                    for ProvideSemanticTokensFullSvc<T> {
8313                        type Response = super::ProvideSemanticTokensResponse;
8314                        type Future = BoxFuture<
8315                            tonic::Response<Self::Response>,
8316                            tonic::Status,
8317                        >;
8318                        fn call(
8319                            &mut self,
8320                            request: tonic::Request<super::ProvideSemanticTokensRequest>,
8321                        ) -> Self::Future {
8322                            let inner = Arc::clone(&self.0);
8323                            let fut = async move {
8324                                <T as CocoonService>::provide_semantic_tokens_full(
8325                                        &inner,
8326                                        request,
8327                                    )
8328                                    .await
8329                            };
8330                            Box::pin(fut)
8331                        }
8332                    }
8333                    let accept_compression_encodings = self.accept_compression_encodings;
8334                    let send_compression_encodings = self.send_compression_encodings;
8335                    let max_decoding_message_size = self.max_decoding_message_size;
8336                    let max_encoding_message_size = self.max_encoding_message_size;
8337                    let inner = self.inner.clone();
8338                    let fut = async move {
8339                        let method = ProvideSemanticTokensFullSvc(inner);
8340                        let codec = tonic_prost::ProstCodec::default();
8341                        let mut grpc = tonic::server::Grpc::new(codec)
8342                            .apply_compression_config(
8343                                accept_compression_encodings,
8344                                send_compression_encodings,
8345                            )
8346                            .apply_max_message_size_config(
8347                                max_decoding_message_size,
8348                                max_encoding_message_size,
8349                            );
8350                        let res = grpc.unary(method, req).await;
8351                        Ok(res)
8352                    };
8353                    Box::pin(fut)
8354                }
8355                "/Vine.CocoonService/RegisterInlayHintsProvider" => {
8356                    #[allow(non_camel_case_types)]
8357                    struct RegisterInlayHintsProviderSvc<T: CocoonService>(pub Arc<T>);
8358                    impl<
8359                        T: CocoonService,
8360                    > tonic::server::UnaryService<super::RegisterProviderRequest>
8361                    for RegisterInlayHintsProviderSvc<T> {
8362                        type Response = super::Empty;
8363                        type Future = BoxFuture<
8364                            tonic::Response<Self::Response>,
8365                            tonic::Status,
8366                        >;
8367                        fn call(
8368                            &mut self,
8369                            request: tonic::Request<super::RegisterProviderRequest>,
8370                        ) -> Self::Future {
8371                            let inner = Arc::clone(&self.0);
8372                            let fut = async move {
8373                                <T as CocoonService>::register_inlay_hints_provider(
8374                                        &inner,
8375                                        request,
8376                                    )
8377                                    .await
8378                            };
8379                            Box::pin(fut)
8380                        }
8381                    }
8382                    let accept_compression_encodings = self.accept_compression_encodings;
8383                    let send_compression_encodings = self.send_compression_encodings;
8384                    let max_decoding_message_size = self.max_decoding_message_size;
8385                    let max_encoding_message_size = self.max_encoding_message_size;
8386                    let inner = self.inner.clone();
8387                    let fut = async move {
8388                        let method = RegisterInlayHintsProviderSvc(inner);
8389                        let codec = tonic_prost::ProstCodec::default();
8390                        let mut grpc = tonic::server::Grpc::new(codec)
8391                            .apply_compression_config(
8392                                accept_compression_encodings,
8393                                send_compression_encodings,
8394                            )
8395                            .apply_max_message_size_config(
8396                                max_decoding_message_size,
8397                                max_encoding_message_size,
8398                            );
8399                        let res = grpc.unary(method, req).await;
8400                        Ok(res)
8401                    };
8402                    Box::pin(fut)
8403                }
8404                "/Vine.CocoonService/ProvideInlayHints" => {
8405                    #[allow(non_camel_case_types)]
8406                    struct ProvideInlayHintsSvc<T: CocoonService>(pub Arc<T>);
8407                    impl<
8408                        T: CocoonService,
8409                    > tonic::server::UnaryService<super::ProvideInlayHintsRequest>
8410                    for ProvideInlayHintsSvc<T> {
8411                        type Response = super::ProvideInlayHintsResponse;
8412                        type Future = BoxFuture<
8413                            tonic::Response<Self::Response>,
8414                            tonic::Status,
8415                        >;
8416                        fn call(
8417                            &mut self,
8418                            request: tonic::Request<super::ProvideInlayHintsRequest>,
8419                        ) -> Self::Future {
8420                            let inner = Arc::clone(&self.0);
8421                            let fut = async move {
8422                                <T as CocoonService>::provide_inlay_hints(&inner, request)
8423                                    .await
8424                            };
8425                            Box::pin(fut)
8426                        }
8427                    }
8428                    let accept_compression_encodings = self.accept_compression_encodings;
8429                    let send_compression_encodings = self.send_compression_encodings;
8430                    let max_decoding_message_size = self.max_decoding_message_size;
8431                    let max_encoding_message_size = self.max_encoding_message_size;
8432                    let inner = self.inner.clone();
8433                    let fut = async move {
8434                        let method = ProvideInlayHintsSvc(inner);
8435                        let codec = tonic_prost::ProstCodec::default();
8436                        let mut grpc = tonic::server::Grpc::new(codec)
8437                            .apply_compression_config(
8438                                accept_compression_encodings,
8439                                send_compression_encodings,
8440                            )
8441                            .apply_max_message_size_config(
8442                                max_decoding_message_size,
8443                                max_encoding_message_size,
8444                            );
8445                        let res = grpc.unary(method, req).await;
8446                        Ok(res)
8447                    };
8448                    Box::pin(fut)
8449                }
8450                "/Vine.CocoonService/RegisterTypeHierarchyProvider" => {
8451                    #[allow(non_camel_case_types)]
8452                    struct RegisterTypeHierarchyProviderSvc<T: CocoonService>(
8453                        pub Arc<T>,
8454                    );
8455                    impl<
8456                        T: CocoonService,
8457                    > tonic::server::UnaryService<super::RegisterProviderRequest>
8458                    for RegisterTypeHierarchyProviderSvc<T> {
8459                        type Response = super::Empty;
8460                        type Future = BoxFuture<
8461                            tonic::Response<Self::Response>,
8462                            tonic::Status,
8463                        >;
8464                        fn call(
8465                            &mut self,
8466                            request: tonic::Request<super::RegisterProviderRequest>,
8467                        ) -> Self::Future {
8468                            let inner = Arc::clone(&self.0);
8469                            let fut = async move {
8470                                <T as CocoonService>::register_type_hierarchy_provider(
8471                                        &inner,
8472                                        request,
8473                                    )
8474                                    .await
8475                            };
8476                            Box::pin(fut)
8477                        }
8478                    }
8479                    let accept_compression_encodings = self.accept_compression_encodings;
8480                    let send_compression_encodings = self.send_compression_encodings;
8481                    let max_decoding_message_size = self.max_decoding_message_size;
8482                    let max_encoding_message_size = self.max_encoding_message_size;
8483                    let inner = self.inner.clone();
8484                    let fut = async move {
8485                        let method = RegisterTypeHierarchyProviderSvc(inner);
8486                        let codec = tonic_prost::ProstCodec::default();
8487                        let mut grpc = tonic::server::Grpc::new(codec)
8488                            .apply_compression_config(
8489                                accept_compression_encodings,
8490                                send_compression_encodings,
8491                            )
8492                            .apply_max_message_size_config(
8493                                max_decoding_message_size,
8494                                max_encoding_message_size,
8495                            );
8496                        let res = grpc.unary(method, req).await;
8497                        Ok(res)
8498                    };
8499                    Box::pin(fut)
8500                }
8501                "/Vine.CocoonService/ProvideTypeHierarchySupertypes" => {
8502                    #[allow(non_camel_case_types)]
8503                    struct ProvideTypeHierarchySupertypesSvc<T: CocoonService>(
8504                        pub Arc<T>,
8505                    );
8506                    impl<
8507                        T: CocoonService,
8508                    > tonic::server::UnaryService<super::ProvideTypeHierarchyRequest>
8509                    for ProvideTypeHierarchySupertypesSvc<T> {
8510                        type Response = super::ProvideTypeHierarchyResponse;
8511                        type Future = BoxFuture<
8512                            tonic::Response<Self::Response>,
8513                            tonic::Status,
8514                        >;
8515                        fn call(
8516                            &mut self,
8517                            request: tonic::Request<super::ProvideTypeHierarchyRequest>,
8518                        ) -> Self::Future {
8519                            let inner = Arc::clone(&self.0);
8520                            let fut = async move {
8521                                <T as CocoonService>::provide_type_hierarchy_supertypes(
8522                                        &inner,
8523                                        request,
8524                                    )
8525                                    .await
8526                            };
8527                            Box::pin(fut)
8528                        }
8529                    }
8530                    let accept_compression_encodings = self.accept_compression_encodings;
8531                    let send_compression_encodings = self.send_compression_encodings;
8532                    let max_decoding_message_size = self.max_decoding_message_size;
8533                    let max_encoding_message_size = self.max_encoding_message_size;
8534                    let inner = self.inner.clone();
8535                    let fut = async move {
8536                        let method = ProvideTypeHierarchySupertypesSvc(inner);
8537                        let codec = tonic_prost::ProstCodec::default();
8538                        let mut grpc = tonic::server::Grpc::new(codec)
8539                            .apply_compression_config(
8540                                accept_compression_encodings,
8541                                send_compression_encodings,
8542                            )
8543                            .apply_max_message_size_config(
8544                                max_decoding_message_size,
8545                                max_encoding_message_size,
8546                            );
8547                        let res = grpc.unary(method, req).await;
8548                        Ok(res)
8549                    };
8550                    Box::pin(fut)
8551                }
8552                "/Vine.CocoonService/ProvideTypeHierarchySubtypes" => {
8553                    #[allow(non_camel_case_types)]
8554                    struct ProvideTypeHierarchySubtypesSvc<T: CocoonService>(pub Arc<T>);
8555                    impl<
8556                        T: CocoonService,
8557                    > tonic::server::UnaryService<super::ProvideTypeHierarchyRequest>
8558                    for ProvideTypeHierarchySubtypesSvc<T> {
8559                        type Response = super::ProvideTypeHierarchyResponse;
8560                        type Future = BoxFuture<
8561                            tonic::Response<Self::Response>,
8562                            tonic::Status,
8563                        >;
8564                        fn call(
8565                            &mut self,
8566                            request: tonic::Request<super::ProvideTypeHierarchyRequest>,
8567                        ) -> Self::Future {
8568                            let inner = Arc::clone(&self.0);
8569                            let fut = async move {
8570                                <T as CocoonService>::provide_type_hierarchy_subtypes(
8571                                        &inner,
8572                                        request,
8573                                    )
8574                                    .await
8575                            };
8576                            Box::pin(fut)
8577                        }
8578                    }
8579                    let accept_compression_encodings = self.accept_compression_encodings;
8580                    let send_compression_encodings = self.send_compression_encodings;
8581                    let max_decoding_message_size = self.max_decoding_message_size;
8582                    let max_encoding_message_size = self.max_encoding_message_size;
8583                    let inner = self.inner.clone();
8584                    let fut = async move {
8585                        let method = ProvideTypeHierarchySubtypesSvc(inner);
8586                        let codec = tonic_prost::ProstCodec::default();
8587                        let mut grpc = tonic::server::Grpc::new(codec)
8588                            .apply_compression_config(
8589                                accept_compression_encodings,
8590                                send_compression_encodings,
8591                            )
8592                            .apply_max_message_size_config(
8593                                max_decoding_message_size,
8594                                max_encoding_message_size,
8595                            );
8596                        let res = grpc.unary(method, req).await;
8597                        Ok(res)
8598                    };
8599                    Box::pin(fut)
8600                }
8601                "/Vine.CocoonService/RegisterCallHierarchyProvider" => {
8602                    #[allow(non_camel_case_types)]
8603                    struct RegisterCallHierarchyProviderSvc<T: CocoonService>(
8604                        pub Arc<T>,
8605                    );
8606                    impl<
8607                        T: CocoonService,
8608                    > tonic::server::UnaryService<super::RegisterProviderRequest>
8609                    for RegisterCallHierarchyProviderSvc<T> {
8610                        type Response = super::Empty;
8611                        type Future = BoxFuture<
8612                            tonic::Response<Self::Response>,
8613                            tonic::Status,
8614                        >;
8615                        fn call(
8616                            &mut self,
8617                            request: tonic::Request<super::RegisterProviderRequest>,
8618                        ) -> Self::Future {
8619                            let inner = Arc::clone(&self.0);
8620                            let fut = async move {
8621                                <T as CocoonService>::register_call_hierarchy_provider(
8622                                        &inner,
8623                                        request,
8624                                    )
8625                                    .await
8626                            };
8627                            Box::pin(fut)
8628                        }
8629                    }
8630                    let accept_compression_encodings = self.accept_compression_encodings;
8631                    let send_compression_encodings = self.send_compression_encodings;
8632                    let max_decoding_message_size = self.max_decoding_message_size;
8633                    let max_encoding_message_size = self.max_encoding_message_size;
8634                    let inner = self.inner.clone();
8635                    let fut = async move {
8636                        let method = RegisterCallHierarchyProviderSvc(inner);
8637                        let codec = tonic_prost::ProstCodec::default();
8638                        let mut grpc = tonic::server::Grpc::new(codec)
8639                            .apply_compression_config(
8640                                accept_compression_encodings,
8641                                send_compression_encodings,
8642                            )
8643                            .apply_max_message_size_config(
8644                                max_decoding_message_size,
8645                                max_encoding_message_size,
8646                            );
8647                        let res = grpc.unary(method, req).await;
8648                        Ok(res)
8649                    };
8650                    Box::pin(fut)
8651                }
8652                "/Vine.CocoonService/ProvideCallHierarchyIncomingCalls" => {
8653                    #[allow(non_camel_case_types)]
8654                    struct ProvideCallHierarchyIncomingCallsSvc<T: CocoonService>(
8655                        pub Arc<T>,
8656                    );
8657                    impl<
8658                        T: CocoonService,
8659                    > tonic::server::UnaryService<super::ProvideCallHierarchyRequest>
8660                    for ProvideCallHierarchyIncomingCallsSvc<T> {
8661                        type Response = super::ProvideCallHierarchyResponse;
8662                        type Future = BoxFuture<
8663                            tonic::Response<Self::Response>,
8664                            tonic::Status,
8665                        >;
8666                        fn call(
8667                            &mut self,
8668                            request: tonic::Request<super::ProvideCallHierarchyRequest>,
8669                        ) -> Self::Future {
8670                            let inner = Arc::clone(&self.0);
8671                            let fut = async move {
8672                                <T as CocoonService>::provide_call_hierarchy_incoming_calls(
8673                                        &inner,
8674                                        request,
8675                                    )
8676                                    .await
8677                            };
8678                            Box::pin(fut)
8679                        }
8680                    }
8681                    let accept_compression_encodings = self.accept_compression_encodings;
8682                    let send_compression_encodings = self.send_compression_encodings;
8683                    let max_decoding_message_size = self.max_decoding_message_size;
8684                    let max_encoding_message_size = self.max_encoding_message_size;
8685                    let inner = self.inner.clone();
8686                    let fut = async move {
8687                        let method = ProvideCallHierarchyIncomingCallsSvc(inner);
8688                        let codec = tonic_prost::ProstCodec::default();
8689                        let mut grpc = tonic::server::Grpc::new(codec)
8690                            .apply_compression_config(
8691                                accept_compression_encodings,
8692                                send_compression_encodings,
8693                            )
8694                            .apply_max_message_size_config(
8695                                max_decoding_message_size,
8696                                max_encoding_message_size,
8697                            );
8698                        let res = grpc.unary(method, req).await;
8699                        Ok(res)
8700                    };
8701                    Box::pin(fut)
8702                }
8703                "/Vine.CocoonService/ProvideCallHierarchyOutgoingCalls" => {
8704                    #[allow(non_camel_case_types)]
8705                    struct ProvideCallHierarchyOutgoingCallsSvc<T: CocoonService>(
8706                        pub Arc<T>,
8707                    );
8708                    impl<
8709                        T: CocoonService,
8710                    > tonic::server::UnaryService<super::ProvideCallHierarchyRequest>
8711                    for ProvideCallHierarchyOutgoingCallsSvc<T> {
8712                        type Response = super::ProvideCallHierarchyResponse;
8713                        type Future = BoxFuture<
8714                            tonic::Response<Self::Response>,
8715                            tonic::Status,
8716                        >;
8717                        fn call(
8718                            &mut self,
8719                            request: tonic::Request<super::ProvideCallHierarchyRequest>,
8720                        ) -> Self::Future {
8721                            let inner = Arc::clone(&self.0);
8722                            let fut = async move {
8723                                <T as CocoonService>::provide_call_hierarchy_outgoing_calls(
8724                                        &inner,
8725                                        request,
8726                                    )
8727                                    .await
8728                            };
8729                            Box::pin(fut)
8730                        }
8731                    }
8732                    let accept_compression_encodings = self.accept_compression_encodings;
8733                    let send_compression_encodings = self.send_compression_encodings;
8734                    let max_decoding_message_size = self.max_decoding_message_size;
8735                    let max_encoding_message_size = self.max_encoding_message_size;
8736                    let inner = self.inner.clone();
8737                    let fut = async move {
8738                        let method = ProvideCallHierarchyOutgoingCallsSvc(inner);
8739                        let codec = tonic_prost::ProstCodec::default();
8740                        let mut grpc = tonic::server::Grpc::new(codec)
8741                            .apply_compression_config(
8742                                accept_compression_encodings,
8743                                send_compression_encodings,
8744                            )
8745                            .apply_max_message_size_config(
8746                                max_decoding_message_size,
8747                                max_encoding_message_size,
8748                            );
8749                        let res = grpc.unary(method, req).await;
8750                        Ok(res)
8751                    };
8752                    Box::pin(fut)
8753                }
8754                "/Vine.CocoonService/RegisterLinkedEditingRangeProvider" => {
8755                    #[allow(non_camel_case_types)]
8756                    struct RegisterLinkedEditingRangeProviderSvc<T: CocoonService>(
8757                        pub Arc<T>,
8758                    );
8759                    impl<
8760                        T: CocoonService,
8761                    > tonic::server::UnaryService<super::RegisterProviderRequest>
8762                    for RegisterLinkedEditingRangeProviderSvc<T> {
8763                        type Response = super::Empty;
8764                        type Future = BoxFuture<
8765                            tonic::Response<Self::Response>,
8766                            tonic::Status,
8767                        >;
8768                        fn call(
8769                            &mut self,
8770                            request: tonic::Request<super::RegisterProviderRequest>,
8771                        ) -> Self::Future {
8772                            let inner = Arc::clone(&self.0);
8773                            let fut = async move {
8774                                <T as CocoonService>::register_linked_editing_range_provider(
8775                                        &inner,
8776                                        request,
8777                                    )
8778                                    .await
8779                            };
8780                            Box::pin(fut)
8781                        }
8782                    }
8783                    let accept_compression_encodings = self.accept_compression_encodings;
8784                    let send_compression_encodings = self.send_compression_encodings;
8785                    let max_decoding_message_size = self.max_decoding_message_size;
8786                    let max_encoding_message_size = self.max_encoding_message_size;
8787                    let inner = self.inner.clone();
8788                    let fut = async move {
8789                        let method = RegisterLinkedEditingRangeProviderSvc(inner);
8790                        let codec = tonic_prost::ProstCodec::default();
8791                        let mut grpc = tonic::server::Grpc::new(codec)
8792                            .apply_compression_config(
8793                                accept_compression_encodings,
8794                                send_compression_encodings,
8795                            )
8796                            .apply_max_message_size_config(
8797                                max_decoding_message_size,
8798                                max_encoding_message_size,
8799                            );
8800                        let res = grpc.unary(method, req).await;
8801                        Ok(res)
8802                    };
8803                    Box::pin(fut)
8804                }
8805                "/Vine.CocoonService/ProvideLinkedEditingRanges" => {
8806                    #[allow(non_camel_case_types)]
8807                    struct ProvideLinkedEditingRangesSvc<T: CocoonService>(pub Arc<T>);
8808                    impl<
8809                        T: CocoonService,
8810                    > tonic::server::UnaryService<
8811                        super::ProvideLinkedEditingRangesRequest,
8812                    > for ProvideLinkedEditingRangesSvc<T> {
8813                        type Response = super::ProvideLinkedEditingRangesResponse;
8814                        type Future = BoxFuture<
8815                            tonic::Response<Self::Response>,
8816                            tonic::Status,
8817                        >;
8818                        fn call(
8819                            &mut self,
8820                            request: tonic::Request<
8821                                super::ProvideLinkedEditingRangesRequest,
8822                            >,
8823                        ) -> Self::Future {
8824                            let inner = Arc::clone(&self.0);
8825                            let fut = async move {
8826                                <T as CocoonService>::provide_linked_editing_ranges(
8827                                        &inner,
8828                                        request,
8829                                    )
8830                                    .await
8831                            };
8832                            Box::pin(fut)
8833                        }
8834                    }
8835                    let accept_compression_encodings = self.accept_compression_encodings;
8836                    let send_compression_encodings = self.send_compression_encodings;
8837                    let max_decoding_message_size = self.max_decoding_message_size;
8838                    let max_encoding_message_size = self.max_encoding_message_size;
8839                    let inner = self.inner.clone();
8840                    let fut = async move {
8841                        let method = ProvideLinkedEditingRangesSvc(inner);
8842                        let codec = tonic_prost::ProstCodec::default();
8843                        let mut grpc = tonic::server::Grpc::new(codec)
8844                            .apply_compression_config(
8845                                accept_compression_encodings,
8846                                send_compression_encodings,
8847                            )
8848                            .apply_max_message_size_config(
8849                                max_decoding_message_size,
8850                                max_encoding_message_size,
8851                            );
8852                        let res = grpc.unary(method, req).await;
8853                        Ok(res)
8854                    };
8855                    Box::pin(fut)
8856                }
8857                "/Vine.CocoonService/RegisterInlineCompletionItemProvider" => {
8858                    #[allow(non_camel_case_types)]
8859                    struct RegisterInlineCompletionItemProviderSvc<T: CocoonService>(
8860                        pub Arc<T>,
8861                    );
8862                    impl<
8863                        T: CocoonService,
8864                    > tonic::server::UnaryService<super::RegisterProviderRequest>
8865                    for RegisterInlineCompletionItemProviderSvc<T> {
8866                        type Response = super::Empty;
8867                        type Future = BoxFuture<
8868                            tonic::Response<Self::Response>,
8869                            tonic::Status,
8870                        >;
8871                        fn call(
8872                            &mut self,
8873                            request: tonic::Request<super::RegisterProviderRequest>,
8874                        ) -> Self::Future {
8875                            let inner = Arc::clone(&self.0);
8876                            let fut = async move {
8877                                <T as CocoonService>::register_inline_completion_item_provider(
8878                                        &inner,
8879                                        request,
8880                                    )
8881                                    .await
8882                            };
8883                            Box::pin(fut)
8884                        }
8885                    }
8886                    let accept_compression_encodings = self.accept_compression_encodings;
8887                    let send_compression_encodings = self.send_compression_encodings;
8888                    let max_decoding_message_size = self.max_decoding_message_size;
8889                    let max_encoding_message_size = self.max_encoding_message_size;
8890                    let inner = self.inner.clone();
8891                    let fut = async move {
8892                        let method = RegisterInlineCompletionItemProviderSvc(inner);
8893                        let codec = tonic_prost::ProstCodec::default();
8894                        let mut grpc = tonic::server::Grpc::new(codec)
8895                            .apply_compression_config(
8896                                accept_compression_encodings,
8897                                send_compression_encodings,
8898                            )
8899                            .apply_max_message_size_config(
8900                                max_decoding_message_size,
8901                                max_encoding_message_size,
8902                            );
8903                        let res = grpc.unary(method, req).await;
8904                        Ok(res)
8905                    };
8906                    Box::pin(fut)
8907                }
8908                "/Vine.CocoonService/ProvideInlineCompletionItems" => {
8909                    #[allow(non_camel_case_types)]
8910                    struct ProvideInlineCompletionItemsSvc<T: CocoonService>(pub Arc<T>);
8911                    impl<
8912                        T: CocoonService,
8913                    > tonic::server::UnaryService<super::ProvideInlineCompletionRequest>
8914                    for ProvideInlineCompletionItemsSvc<T> {
8915                        type Response = super::ProvideInlineCompletionResponse;
8916                        type Future = BoxFuture<
8917                            tonic::Response<Self::Response>,
8918                            tonic::Status,
8919                        >;
8920                        fn call(
8921                            &mut self,
8922                            request: tonic::Request<
8923                                super::ProvideInlineCompletionRequest,
8924                            >,
8925                        ) -> Self::Future {
8926                            let inner = Arc::clone(&self.0);
8927                            let fut = async move {
8928                                <T as CocoonService>::provide_inline_completion_items(
8929                                        &inner,
8930                                        request,
8931                                    )
8932                                    .await
8933                            };
8934                            Box::pin(fut)
8935                        }
8936                    }
8937                    let accept_compression_encodings = self.accept_compression_encodings;
8938                    let send_compression_encodings = self.send_compression_encodings;
8939                    let max_decoding_message_size = self.max_decoding_message_size;
8940                    let max_encoding_message_size = self.max_encoding_message_size;
8941                    let inner = self.inner.clone();
8942                    let fut = async move {
8943                        let method = ProvideInlineCompletionItemsSvc(inner);
8944                        let codec = tonic_prost::ProstCodec::default();
8945                        let mut grpc = tonic::server::Grpc::new(codec)
8946                            .apply_compression_config(
8947                                accept_compression_encodings,
8948                                send_compression_encodings,
8949                            )
8950                            .apply_max_message_size_config(
8951                                max_decoding_message_size,
8952                                max_encoding_message_size,
8953                            );
8954                        let res = grpc.unary(method, req).await;
8955                        Ok(res)
8956                    };
8957                    Box::pin(fut)
8958                }
8959                "/Vine.CocoonService/ShowQuickPick" => {
8960                    #[allow(non_camel_case_types)]
8961                    struct ShowQuickPickSvc<T: CocoonService>(pub Arc<T>);
8962                    impl<
8963                        T: CocoonService,
8964                    > tonic::server::UnaryService<super::ShowQuickPickRequest>
8965                    for ShowQuickPickSvc<T> {
8966                        type Response = super::ShowQuickPickResponse;
8967                        type Future = BoxFuture<
8968                            tonic::Response<Self::Response>,
8969                            tonic::Status,
8970                        >;
8971                        fn call(
8972                            &mut self,
8973                            request: tonic::Request<super::ShowQuickPickRequest>,
8974                        ) -> Self::Future {
8975                            let inner = Arc::clone(&self.0);
8976                            let fut = async move {
8977                                <T as CocoonService>::show_quick_pick(&inner, request).await
8978                            };
8979                            Box::pin(fut)
8980                        }
8981                    }
8982                    let accept_compression_encodings = self.accept_compression_encodings;
8983                    let send_compression_encodings = self.send_compression_encodings;
8984                    let max_decoding_message_size = self.max_decoding_message_size;
8985                    let max_encoding_message_size = self.max_encoding_message_size;
8986                    let inner = self.inner.clone();
8987                    let fut = async move {
8988                        let method = ShowQuickPickSvc(inner);
8989                        let codec = tonic_prost::ProstCodec::default();
8990                        let mut grpc = tonic::server::Grpc::new(codec)
8991                            .apply_compression_config(
8992                                accept_compression_encodings,
8993                                send_compression_encodings,
8994                            )
8995                            .apply_max_message_size_config(
8996                                max_decoding_message_size,
8997                                max_encoding_message_size,
8998                            );
8999                        let res = grpc.unary(method, req).await;
9000                        Ok(res)
9001                    };
9002                    Box::pin(fut)
9003                }
9004                "/Vine.CocoonService/ShowInputBox" => {
9005                    #[allow(non_camel_case_types)]
9006                    struct ShowInputBoxSvc<T: CocoonService>(pub Arc<T>);
9007                    impl<
9008                        T: CocoonService,
9009                    > tonic::server::UnaryService<super::ShowInputBoxRequest>
9010                    for ShowInputBoxSvc<T> {
9011                        type Response = super::ShowInputBoxResponse;
9012                        type Future = BoxFuture<
9013                            tonic::Response<Self::Response>,
9014                            tonic::Status,
9015                        >;
9016                        fn call(
9017                            &mut self,
9018                            request: tonic::Request<super::ShowInputBoxRequest>,
9019                        ) -> Self::Future {
9020                            let inner = Arc::clone(&self.0);
9021                            let fut = async move {
9022                                <T as CocoonService>::show_input_box(&inner, request).await
9023                            };
9024                            Box::pin(fut)
9025                        }
9026                    }
9027                    let accept_compression_encodings = self.accept_compression_encodings;
9028                    let send_compression_encodings = self.send_compression_encodings;
9029                    let max_decoding_message_size = self.max_decoding_message_size;
9030                    let max_encoding_message_size = self.max_encoding_message_size;
9031                    let inner = self.inner.clone();
9032                    let fut = async move {
9033                        let method = ShowInputBoxSvc(inner);
9034                        let codec = tonic_prost::ProstCodec::default();
9035                        let mut grpc = tonic::server::Grpc::new(codec)
9036                            .apply_compression_config(
9037                                accept_compression_encodings,
9038                                send_compression_encodings,
9039                            )
9040                            .apply_max_message_size_config(
9041                                max_decoding_message_size,
9042                                max_encoding_message_size,
9043                            );
9044                        let res = grpc.unary(method, req).await;
9045                        Ok(res)
9046                    };
9047                    Box::pin(fut)
9048                }
9049                "/Vine.CocoonService/ShowProgress" => {
9050                    #[allow(non_camel_case_types)]
9051                    struct ShowProgressSvc<T: CocoonService>(pub Arc<T>);
9052                    impl<
9053                        T: CocoonService,
9054                    > tonic::server::UnaryService<super::ShowProgressRequest>
9055                    for ShowProgressSvc<T> {
9056                        type Response = super::ShowProgressResponse;
9057                        type Future = BoxFuture<
9058                            tonic::Response<Self::Response>,
9059                            tonic::Status,
9060                        >;
9061                        fn call(
9062                            &mut self,
9063                            request: tonic::Request<super::ShowProgressRequest>,
9064                        ) -> Self::Future {
9065                            let inner = Arc::clone(&self.0);
9066                            let fut = async move {
9067                                <T as CocoonService>::show_progress(&inner, request).await
9068                            };
9069                            Box::pin(fut)
9070                        }
9071                    }
9072                    let accept_compression_encodings = self.accept_compression_encodings;
9073                    let send_compression_encodings = self.send_compression_encodings;
9074                    let max_decoding_message_size = self.max_decoding_message_size;
9075                    let max_encoding_message_size = self.max_encoding_message_size;
9076                    let inner = self.inner.clone();
9077                    let fut = async move {
9078                        let method = ShowProgressSvc(inner);
9079                        let codec = tonic_prost::ProstCodec::default();
9080                        let mut grpc = tonic::server::Grpc::new(codec)
9081                            .apply_compression_config(
9082                                accept_compression_encodings,
9083                                send_compression_encodings,
9084                            )
9085                            .apply_max_message_size_config(
9086                                max_decoding_message_size,
9087                                max_encoding_message_size,
9088                            );
9089                        let res = grpc.unary(method, req).await;
9090                        Ok(res)
9091                    };
9092                    Box::pin(fut)
9093                }
9094                "/Vine.CocoonService/ReportProgress" => {
9095                    #[allow(non_camel_case_types)]
9096                    struct ReportProgressSvc<T: CocoonService>(pub Arc<T>);
9097                    impl<
9098                        T: CocoonService,
9099                    > tonic::server::UnaryService<super::ReportProgressRequest>
9100                    for ReportProgressSvc<T> {
9101                        type Response = super::Empty;
9102                        type Future = BoxFuture<
9103                            tonic::Response<Self::Response>,
9104                            tonic::Status,
9105                        >;
9106                        fn call(
9107                            &mut self,
9108                            request: tonic::Request<super::ReportProgressRequest>,
9109                        ) -> Self::Future {
9110                            let inner = Arc::clone(&self.0);
9111                            let fut = async move {
9112                                <T as CocoonService>::report_progress(&inner, request).await
9113                            };
9114                            Box::pin(fut)
9115                        }
9116                    }
9117                    let accept_compression_encodings = self.accept_compression_encodings;
9118                    let send_compression_encodings = self.send_compression_encodings;
9119                    let max_decoding_message_size = self.max_decoding_message_size;
9120                    let max_encoding_message_size = self.max_encoding_message_size;
9121                    let inner = self.inner.clone();
9122                    let fut = async move {
9123                        let method = ReportProgressSvc(inner);
9124                        let codec = tonic_prost::ProstCodec::default();
9125                        let mut grpc = tonic::server::Grpc::new(codec)
9126                            .apply_compression_config(
9127                                accept_compression_encodings,
9128                                send_compression_encodings,
9129                            )
9130                            .apply_max_message_size_config(
9131                                max_decoding_message_size,
9132                                max_encoding_message_size,
9133                            );
9134                        let res = grpc.unary(method, req).await;
9135                        Ok(res)
9136                    };
9137                    Box::pin(fut)
9138                }
9139                "/Vine.CocoonService/PostWebviewMessage" => {
9140                    #[allow(non_camel_case_types)]
9141                    struct PostWebviewMessageSvc<T: CocoonService>(pub Arc<T>);
9142                    impl<
9143                        T: CocoonService,
9144                    > tonic::server::UnaryService<super::PostWebviewMessageRequest>
9145                    for PostWebviewMessageSvc<T> {
9146                        type Response = super::Empty;
9147                        type Future = BoxFuture<
9148                            tonic::Response<Self::Response>,
9149                            tonic::Status,
9150                        >;
9151                        fn call(
9152                            &mut self,
9153                            request: tonic::Request<super::PostWebviewMessageRequest>,
9154                        ) -> Self::Future {
9155                            let inner = Arc::clone(&self.0);
9156                            let fut = async move {
9157                                <T as CocoonService>::post_webview_message(&inner, request)
9158                                    .await
9159                            };
9160                            Box::pin(fut)
9161                        }
9162                    }
9163                    let accept_compression_encodings = self.accept_compression_encodings;
9164                    let send_compression_encodings = self.send_compression_encodings;
9165                    let max_decoding_message_size = self.max_decoding_message_size;
9166                    let max_encoding_message_size = self.max_encoding_message_size;
9167                    let inner = self.inner.clone();
9168                    let fut = async move {
9169                        let method = PostWebviewMessageSvc(inner);
9170                        let codec = tonic_prost::ProstCodec::default();
9171                        let mut grpc = tonic::server::Grpc::new(codec)
9172                            .apply_compression_config(
9173                                accept_compression_encodings,
9174                                send_compression_encodings,
9175                            )
9176                            .apply_max_message_size_config(
9177                                max_decoding_message_size,
9178                                max_encoding_message_size,
9179                            );
9180                        let res = grpc.unary(method, req).await;
9181                        Ok(res)
9182                    };
9183                    Box::pin(fut)
9184                }
9185                "/Vine.CocoonService/DisposeWebviewPanel" => {
9186                    #[allow(non_camel_case_types)]
9187                    struct DisposeWebviewPanelSvc<T: CocoonService>(pub Arc<T>);
9188                    impl<
9189                        T: CocoonService,
9190                    > tonic::server::UnaryService<super::DisposeWebviewPanelRequest>
9191                    for DisposeWebviewPanelSvc<T> {
9192                        type Response = super::Empty;
9193                        type Future = BoxFuture<
9194                            tonic::Response<Self::Response>,
9195                            tonic::Status,
9196                        >;
9197                        fn call(
9198                            &mut self,
9199                            request: tonic::Request<super::DisposeWebviewPanelRequest>,
9200                        ) -> Self::Future {
9201                            let inner = Arc::clone(&self.0);
9202                            let fut = async move {
9203                                <T as CocoonService>::dispose_webview_panel(&inner, request)
9204                                    .await
9205                            };
9206                            Box::pin(fut)
9207                        }
9208                    }
9209                    let accept_compression_encodings = self.accept_compression_encodings;
9210                    let send_compression_encodings = self.send_compression_encodings;
9211                    let max_decoding_message_size = self.max_decoding_message_size;
9212                    let max_encoding_message_size = self.max_encoding_message_size;
9213                    let inner = self.inner.clone();
9214                    let fut = async move {
9215                        let method = DisposeWebviewPanelSvc(inner);
9216                        let codec = tonic_prost::ProstCodec::default();
9217                        let mut grpc = tonic::server::Grpc::new(codec)
9218                            .apply_compression_config(
9219                                accept_compression_encodings,
9220                                send_compression_encodings,
9221                            )
9222                            .apply_max_message_size_config(
9223                                max_decoding_message_size,
9224                                max_encoding_message_size,
9225                            );
9226                        let res = grpc.unary(method, req).await;
9227                        Ok(res)
9228                    };
9229                    Box::pin(fut)
9230                }
9231                "/Vine.CocoonService/OpenExternal" => {
9232                    #[allow(non_camel_case_types)]
9233                    struct OpenExternalSvc<T: CocoonService>(pub Arc<T>);
9234                    impl<
9235                        T: CocoonService,
9236                    > tonic::server::UnaryService<super::OpenExternalRequest>
9237                    for OpenExternalSvc<T> {
9238                        type Response = super::Empty;
9239                        type Future = BoxFuture<
9240                            tonic::Response<Self::Response>,
9241                            tonic::Status,
9242                        >;
9243                        fn call(
9244                            &mut self,
9245                            request: tonic::Request<super::OpenExternalRequest>,
9246                        ) -> Self::Future {
9247                            let inner = Arc::clone(&self.0);
9248                            let fut = async move {
9249                                <T as CocoonService>::open_external(&inner, request).await
9250                            };
9251                            Box::pin(fut)
9252                        }
9253                    }
9254                    let accept_compression_encodings = self.accept_compression_encodings;
9255                    let send_compression_encodings = self.send_compression_encodings;
9256                    let max_decoding_message_size = self.max_decoding_message_size;
9257                    let max_encoding_message_size = self.max_encoding_message_size;
9258                    let inner = self.inner.clone();
9259                    let fut = async move {
9260                        let method = OpenExternalSvc(inner);
9261                        let codec = tonic_prost::ProstCodec::default();
9262                        let mut grpc = tonic::server::Grpc::new(codec)
9263                            .apply_compression_config(
9264                                accept_compression_encodings,
9265                                send_compression_encodings,
9266                            )
9267                            .apply_max_message_size_config(
9268                                max_decoding_message_size,
9269                                max_encoding_message_size,
9270                            );
9271                        let res = grpc.unary(method, req).await;
9272                        Ok(res)
9273                    };
9274                    Box::pin(fut)
9275                }
9276                "/Vine.CocoonService/DeleteFile" => {
9277                    #[allow(non_camel_case_types)]
9278                    struct DeleteFileSvc<T: CocoonService>(pub Arc<T>);
9279                    impl<
9280                        T: CocoonService,
9281                    > tonic::server::UnaryService<super::DeleteFileRequest>
9282                    for DeleteFileSvc<T> {
9283                        type Response = super::Empty;
9284                        type Future = BoxFuture<
9285                            tonic::Response<Self::Response>,
9286                            tonic::Status,
9287                        >;
9288                        fn call(
9289                            &mut self,
9290                            request: tonic::Request<super::DeleteFileRequest>,
9291                        ) -> Self::Future {
9292                            let inner = Arc::clone(&self.0);
9293                            let fut = async move {
9294                                <T as CocoonService>::delete_file(&inner, request).await
9295                            };
9296                            Box::pin(fut)
9297                        }
9298                    }
9299                    let accept_compression_encodings = self.accept_compression_encodings;
9300                    let send_compression_encodings = self.send_compression_encodings;
9301                    let max_decoding_message_size = self.max_decoding_message_size;
9302                    let max_encoding_message_size = self.max_encoding_message_size;
9303                    let inner = self.inner.clone();
9304                    let fut = async move {
9305                        let method = DeleteFileSvc(inner);
9306                        let codec = tonic_prost::ProstCodec::default();
9307                        let mut grpc = tonic::server::Grpc::new(codec)
9308                            .apply_compression_config(
9309                                accept_compression_encodings,
9310                                send_compression_encodings,
9311                            )
9312                            .apply_max_message_size_config(
9313                                max_decoding_message_size,
9314                                max_encoding_message_size,
9315                            );
9316                        let res = grpc.unary(method, req).await;
9317                        Ok(res)
9318                    };
9319                    Box::pin(fut)
9320                }
9321                "/Vine.CocoonService/RenameFile" => {
9322                    #[allow(non_camel_case_types)]
9323                    struct RenameFileSvc<T: CocoonService>(pub Arc<T>);
9324                    impl<
9325                        T: CocoonService,
9326                    > tonic::server::UnaryService<super::RenameFileRequest>
9327                    for RenameFileSvc<T> {
9328                        type Response = super::Empty;
9329                        type Future = BoxFuture<
9330                            tonic::Response<Self::Response>,
9331                            tonic::Status,
9332                        >;
9333                        fn call(
9334                            &mut self,
9335                            request: tonic::Request<super::RenameFileRequest>,
9336                        ) -> Self::Future {
9337                            let inner = Arc::clone(&self.0);
9338                            let fut = async move {
9339                                <T as CocoonService>::rename_file(&inner, request).await
9340                            };
9341                            Box::pin(fut)
9342                        }
9343                    }
9344                    let accept_compression_encodings = self.accept_compression_encodings;
9345                    let send_compression_encodings = self.send_compression_encodings;
9346                    let max_decoding_message_size = self.max_decoding_message_size;
9347                    let max_encoding_message_size = self.max_encoding_message_size;
9348                    let inner = self.inner.clone();
9349                    let fut = async move {
9350                        let method = RenameFileSvc(inner);
9351                        let codec = tonic_prost::ProstCodec::default();
9352                        let mut grpc = tonic::server::Grpc::new(codec)
9353                            .apply_compression_config(
9354                                accept_compression_encodings,
9355                                send_compression_encodings,
9356                            )
9357                            .apply_max_message_size_config(
9358                                max_decoding_message_size,
9359                                max_encoding_message_size,
9360                            );
9361                        let res = grpc.unary(method, req).await;
9362                        Ok(res)
9363                    };
9364                    Box::pin(fut)
9365                }
9366                "/Vine.CocoonService/CopyFile" => {
9367                    #[allow(non_camel_case_types)]
9368                    struct CopyFileSvc<T: CocoonService>(pub Arc<T>);
9369                    impl<
9370                        T: CocoonService,
9371                    > tonic::server::UnaryService<super::CopyFileRequest>
9372                    for CopyFileSvc<T> {
9373                        type Response = super::Empty;
9374                        type Future = BoxFuture<
9375                            tonic::Response<Self::Response>,
9376                            tonic::Status,
9377                        >;
9378                        fn call(
9379                            &mut self,
9380                            request: tonic::Request<super::CopyFileRequest>,
9381                        ) -> Self::Future {
9382                            let inner = Arc::clone(&self.0);
9383                            let fut = async move {
9384                                <T as CocoonService>::copy_file(&inner, request).await
9385                            };
9386                            Box::pin(fut)
9387                        }
9388                    }
9389                    let accept_compression_encodings = self.accept_compression_encodings;
9390                    let send_compression_encodings = self.send_compression_encodings;
9391                    let max_decoding_message_size = self.max_decoding_message_size;
9392                    let max_encoding_message_size = self.max_encoding_message_size;
9393                    let inner = self.inner.clone();
9394                    let fut = async move {
9395                        let method = CopyFileSvc(inner);
9396                        let codec = tonic_prost::ProstCodec::default();
9397                        let mut grpc = tonic::server::Grpc::new(codec)
9398                            .apply_compression_config(
9399                                accept_compression_encodings,
9400                                send_compression_encodings,
9401                            )
9402                            .apply_max_message_size_config(
9403                                max_decoding_message_size,
9404                                max_encoding_message_size,
9405                            );
9406                        let res = grpc.unary(method, req).await;
9407                        Ok(res)
9408                    };
9409                    Box::pin(fut)
9410                }
9411                "/Vine.CocoonService/CreateDirectory" => {
9412                    #[allow(non_camel_case_types)]
9413                    struct CreateDirectorySvc<T: CocoonService>(pub Arc<T>);
9414                    impl<
9415                        T: CocoonService,
9416                    > tonic::server::UnaryService<super::CreateDirectoryRequest>
9417                    for CreateDirectorySvc<T> {
9418                        type Response = super::Empty;
9419                        type Future = BoxFuture<
9420                            tonic::Response<Self::Response>,
9421                            tonic::Status,
9422                        >;
9423                        fn call(
9424                            &mut self,
9425                            request: tonic::Request<super::CreateDirectoryRequest>,
9426                        ) -> Self::Future {
9427                            let inner = Arc::clone(&self.0);
9428                            let fut = async move {
9429                                <T as CocoonService>::create_directory(&inner, request)
9430                                    .await
9431                            };
9432                            Box::pin(fut)
9433                        }
9434                    }
9435                    let accept_compression_encodings = self.accept_compression_encodings;
9436                    let send_compression_encodings = self.send_compression_encodings;
9437                    let max_decoding_message_size = self.max_decoding_message_size;
9438                    let max_encoding_message_size = self.max_encoding_message_size;
9439                    let inner = self.inner.clone();
9440                    let fut = async move {
9441                        let method = CreateDirectorySvc(inner);
9442                        let codec = tonic_prost::ProstCodec::default();
9443                        let mut grpc = tonic::server::Grpc::new(codec)
9444                            .apply_compression_config(
9445                                accept_compression_encodings,
9446                                send_compression_encodings,
9447                            )
9448                            .apply_max_message_size_config(
9449                                max_decoding_message_size,
9450                                max_encoding_message_size,
9451                            );
9452                        let res = grpc.unary(method, req).await;
9453                        Ok(res)
9454                    };
9455                    Box::pin(fut)
9456                }
9457                "/Vine.CocoonService/CreateOutputChannel" => {
9458                    #[allow(non_camel_case_types)]
9459                    struct CreateOutputChannelSvc<T: CocoonService>(pub Arc<T>);
9460                    impl<
9461                        T: CocoonService,
9462                    > tonic::server::UnaryService<super::CreateOutputChannelRequest>
9463                    for CreateOutputChannelSvc<T> {
9464                        type Response = super::CreateOutputChannelResponse;
9465                        type Future = BoxFuture<
9466                            tonic::Response<Self::Response>,
9467                            tonic::Status,
9468                        >;
9469                        fn call(
9470                            &mut self,
9471                            request: tonic::Request<super::CreateOutputChannelRequest>,
9472                        ) -> Self::Future {
9473                            let inner = Arc::clone(&self.0);
9474                            let fut = async move {
9475                                <T as CocoonService>::create_output_channel(&inner, request)
9476                                    .await
9477                            };
9478                            Box::pin(fut)
9479                        }
9480                    }
9481                    let accept_compression_encodings = self.accept_compression_encodings;
9482                    let send_compression_encodings = self.send_compression_encodings;
9483                    let max_decoding_message_size = self.max_decoding_message_size;
9484                    let max_encoding_message_size = self.max_encoding_message_size;
9485                    let inner = self.inner.clone();
9486                    let fut = async move {
9487                        let method = CreateOutputChannelSvc(inner);
9488                        let codec = tonic_prost::ProstCodec::default();
9489                        let mut grpc = tonic::server::Grpc::new(codec)
9490                            .apply_compression_config(
9491                                accept_compression_encodings,
9492                                send_compression_encodings,
9493                            )
9494                            .apply_max_message_size_config(
9495                                max_decoding_message_size,
9496                                max_encoding_message_size,
9497                            );
9498                        let res = grpc.unary(method, req).await;
9499                        Ok(res)
9500                    };
9501                    Box::pin(fut)
9502                }
9503                "/Vine.CocoonService/AppendOutput" => {
9504                    #[allow(non_camel_case_types)]
9505                    struct AppendOutputSvc<T: CocoonService>(pub Arc<T>);
9506                    impl<
9507                        T: CocoonService,
9508                    > tonic::server::UnaryService<super::AppendOutputRequest>
9509                    for AppendOutputSvc<T> {
9510                        type Response = super::Empty;
9511                        type Future = BoxFuture<
9512                            tonic::Response<Self::Response>,
9513                            tonic::Status,
9514                        >;
9515                        fn call(
9516                            &mut self,
9517                            request: tonic::Request<super::AppendOutputRequest>,
9518                        ) -> Self::Future {
9519                            let inner = Arc::clone(&self.0);
9520                            let fut = async move {
9521                                <T as CocoonService>::append_output(&inner, request).await
9522                            };
9523                            Box::pin(fut)
9524                        }
9525                    }
9526                    let accept_compression_encodings = self.accept_compression_encodings;
9527                    let send_compression_encodings = self.send_compression_encodings;
9528                    let max_decoding_message_size = self.max_decoding_message_size;
9529                    let max_encoding_message_size = self.max_encoding_message_size;
9530                    let inner = self.inner.clone();
9531                    let fut = async move {
9532                        let method = AppendOutputSvc(inner);
9533                        let codec = tonic_prost::ProstCodec::default();
9534                        let mut grpc = tonic::server::Grpc::new(codec)
9535                            .apply_compression_config(
9536                                accept_compression_encodings,
9537                                send_compression_encodings,
9538                            )
9539                            .apply_max_message_size_config(
9540                                max_decoding_message_size,
9541                                max_encoding_message_size,
9542                            );
9543                        let res = grpc.unary(method, req).await;
9544                        Ok(res)
9545                    };
9546                    Box::pin(fut)
9547                }
9548                "/Vine.CocoonService/ClearOutput" => {
9549                    #[allow(non_camel_case_types)]
9550                    struct ClearOutputSvc<T: CocoonService>(pub Arc<T>);
9551                    impl<
9552                        T: CocoonService,
9553                    > tonic::server::UnaryService<super::ClearOutputRequest>
9554                    for ClearOutputSvc<T> {
9555                        type Response = super::Empty;
9556                        type Future = BoxFuture<
9557                            tonic::Response<Self::Response>,
9558                            tonic::Status,
9559                        >;
9560                        fn call(
9561                            &mut self,
9562                            request: tonic::Request<super::ClearOutputRequest>,
9563                        ) -> Self::Future {
9564                            let inner = Arc::clone(&self.0);
9565                            let fut = async move {
9566                                <T as CocoonService>::clear_output(&inner, request).await
9567                            };
9568                            Box::pin(fut)
9569                        }
9570                    }
9571                    let accept_compression_encodings = self.accept_compression_encodings;
9572                    let send_compression_encodings = self.send_compression_encodings;
9573                    let max_decoding_message_size = self.max_decoding_message_size;
9574                    let max_encoding_message_size = self.max_encoding_message_size;
9575                    let inner = self.inner.clone();
9576                    let fut = async move {
9577                        let method = ClearOutputSvc(inner);
9578                        let codec = tonic_prost::ProstCodec::default();
9579                        let mut grpc = tonic::server::Grpc::new(codec)
9580                            .apply_compression_config(
9581                                accept_compression_encodings,
9582                                send_compression_encodings,
9583                            )
9584                            .apply_max_message_size_config(
9585                                max_decoding_message_size,
9586                                max_encoding_message_size,
9587                            );
9588                        let res = grpc.unary(method, req).await;
9589                        Ok(res)
9590                    };
9591                    Box::pin(fut)
9592                }
9593                "/Vine.CocoonService/ShowOutput" => {
9594                    #[allow(non_camel_case_types)]
9595                    struct ShowOutputSvc<T: CocoonService>(pub Arc<T>);
9596                    impl<
9597                        T: CocoonService,
9598                    > tonic::server::UnaryService<super::ShowOutputRequest>
9599                    for ShowOutputSvc<T> {
9600                        type Response = super::Empty;
9601                        type Future = BoxFuture<
9602                            tonic::Response<Self::Response>,
9603                            tonic::Status,
9604                        >;
9605                        fn call(
9606                            &mut self,
9607                            request: tonic::Request<super::ShowOutputRequest>,
9608                        ) -> Self::Future {
9609                            let inner = Arc::clone(&self.0);
9610                            let fut = async move {
9611                                <T as CocoonService>::show_output(&inner, request).await
9612                            };
9613                            Box::pin(fut)
9614                        }
9615                    }
9616                    let accept_compression_encodings = self.accept_compression_encodings;
9617                    let send_compression_encodings = self.send_compression_encodings;
9618                    let max_decoding_message_size = self.max_decoding_message_size;
9619                    let max_encoding_message_size = self.max_encoding_message_size;
9620                    let inner = self.inner.clone();
9621                    let fut = async move {
9622                        let method = ShowOutputSvc(inner);
9623                        let codec = tonic_prost::ProstCodec::default();
9624                        let mut grpc = tonic::server::Grpc::new(codec)
9625                            .apply_compression_config(
9626                                accept_compression_encodings,
9627                                send_compression_encodings,
9628                            )
9629                            .apply_max_message_size_config(
9630                                max_decoding_message_size,
9631                                max_encoding_message_size,
9632                            );
9633                        let res = grpc.unary(method, req).await;
9634                        Ok(res)
9635                    };
9636                    Box::pin(fut)
9637                }
9638                "/Vine.CocoonService/DisposeOutput" => {
9639                    #[allow(non_camel_case_types)]
9640                    struct DisposeOutputSvc<T: CocoonService>(pub Arc<T>);
9641                    impl<
9642                        T: CocoonService,
9643                    > tonic::server::UnaryService<super::DisposeOutputRequest>
9644                    for DisposeOutputSvc<T> {
9645                        type Response = super::Empty;
9646                        type Future = BoxFuture<
9647                            tonic::Response<Self::Response>,
9648                            tonic::Status,
9649                        >;
9650                        fn call(
9651                            &mut self,
9652                            request: tonic::Request<super::DisposeOutputRequest>,
9653                        ) -> Self::Future {
9654                            let inner = Arc::clone(&self.0);
9655                            let fut = async move {
9656                                <T as CocoonService>::dispose_output(&inner, request).await
9657                            };
9658                            Box::pin(fut)
9659                        }
9660                    }
9661                    let accept_compression_encodings = self.accept_compression_encodings;
9662                    let send_compression_encodings = self.send_compression_encodings;
9663                    let max_decoding_message_size = self.max_decoding_message_size;
9664                    let max_encoding_message_size = self.max_encoding_message_size;
9665                    let inner = self.inner.clone();
9666                    let fut = async move {
9667                        let method = DisposeOutputSvc(inner);
9668                        let codec = tonic_prost::ProstCodec::default();
9669                        let mut grpc = tonic::server::Grpc::new(codec)
9670                            .apply_compression_config(
9671                                accept_compression_encodings,
9672                                send_compression_encodings,
9673                            )
9674                            .apply_max_message_size_config(
9675                                max_decoding_message_size,
9676                                max_encoding_message_size,
9677                            );
9678                        let res = grpc.unary(method, req).await;
9679                        Ok(res)
9680                    };
9681                    Box::pin(fut)
9682                }
9683                "/Vine.CocoonService/RegisterTaskProvider" => {
9684                    #[allow(non_camel_case_types)]
9685                    struct RegisterTaskProviderSvc<T: CocoonService>(pub Arc<T>);
9686                    impl<
9687                        T: CocoonService,
9688                    > tonic::server::UnaryService<super::RegisterTaskProviderRequest>
9689                    for RegisterTaskProviderSvc<T> {
9690                        type Response = super::Empty;
9691                        type Future = BoxFuture<
9692                            tonic::Response<Self::Response>,
9693                            tonic::Status,
9694                        >;
9695                        fn call(
9696                            &mut self,
9697                            request: tonic::Request<super::RegisterTaskProviderRequest>,
9698                        ) -> Self::Future {
9699                            let inner = Arc::clone(&self.0);
9700                            let fut = async move {
9701                                <T as CocoonService>::register_task_provider(
9702                                        &inner,
9703                                        request,
9704                                    )
9705                                    .await
9706                            };
9707                            Box::pin(fut)
9708                        }
9709                    }
9710                    let accept_compression_encodings = self.accept_compression_encodings;
9711                    let send_compression_encodings = self.send_compression_encodings;
9712                    let max_decoding_message_size = self.max_decoding_message_size;
9713                    let max_encoding_message_size = self.max_encoding_message_size;
9714                    let inner = self.inner.clone();
9715                    let fut = async move {
9716                        let method = RegisterTaskProviderSvc(inner);
9717                        let codec = tonic_prost::ProstCodec::default();
9718                        let mut grpc = tonic::server::Grpc::new(codec)
9719                            .apply_compression_config(
9720                                accept_compression_encodings,
9721                                send_compression_encodings,
9722                            )
9723                            .apply_max_message_size_config(
9724                                max_decoding_message_size,
9725                                max_encoding_message_size,
9726                            );
9727                        let res = grpc.unary(method, req).await;
9728                        Ok(res)
9729                    };
9730                    Box::pin(fut)
9731                }
9732                "/Vine.CocoonService/ExecuteTask" => {
9733                    #[allow(non_camel_case_types)]
9734                    struct ExecuteTaskSvc<T: CocoonService>(pub Arc<T>);
9735                    impl<
9736                        T: CocoonService,
9737                    > tonic::server::UnaryService<super::ExecuteTaskRequest>
9738                    for ExecuteTaskSvc<T> {
9739                        type Response = super::ExecuteTaskResponse;
9740                        type Future = BoxFuture<
9741                            tonic::Response<Self::Response>,
9742                            tonic::Status,
9743                        >;
9744                        fn call(
9745                            &mut self,
9746                            request: tonic::Request<super::ExecuteTaskRequest>,
9747                        ) -> Self::Future {
9748                            let inner = Arc::clone(&self.0);
9749                            let fut = async move {
9750                                <T as CocoonService>::execute_task(&inner, request).await
9751                            };
9752                            Box::pin(fut)
9753                        }
9754                    }
9755                    let accept_compression_encodings = self.accept_compression_encodings;
9756                    let send_compression_encodings = self.send_compression_encodings;
9757                    let max_decoding_message_size = self.max_decoding_message_size;
9758                    let max_encoding_message_size = self.max_encoding_message_size;
9759                    let inner = self.inner.clone();
9760                    let fut = async move {
9761                        let method = ExecuteTaskSvc(inner);
9762                        let codec = tonic_prost::ProstCodec::default();
9763                        let mut grpc = tonic::server::Grpc::new(codec)
9764                            .apply_compression_config(
9765                                accept_compression_encodings,
9766                                send_compression_encodings,
9767                            )
9768                            .apply_max_message_size_config(
9769                                max_decoding_message_size,
9770                                max_encoding_message_size,
9771                            );
9772                        let res = grpc.unary(method, req).await;
9773                        Ok(res)
9774                    };
9775                    Box::pin(fut)
9776                }
9777                "/Vine.CocoonService/TerminateTask" => {
9778                    #[allow(non_camel_case_types)]
9779                    struct TerminateTaskSvc<T: CocoonService>(pub Arc<T>);
9780                    impl<
9781                        T: CocoonService,
9782                    > tonic::server::UnaryService<super::TerminateTaskRequest>
9783                    for TerminateTaskSvc<T> {
9784                        type Response = super::Empty;
9785                        type Future = BoxFuture<
9786                            tonic::Response<Self::Response>,
9787                            tonic::Status,
9788                        >;
9789                        fn call(
9790                            &mut self,
9791                            request: tonic::Request<super::TerminateTaskRequest>,
9792                        ) -> Self::Future {
9793                            let inner = Arc::clone(&self.0);
9794                            let fut = async move {
9795                                <T as CocoonService>::terminate_task(&inner, request).await
9796                            };
9797                            Box::pin(fut)
9798                        }
9799                    }
9800                    let accept_compression_encodings = self.accept_compression_encodings;
9801                    let send_compression_encodings = self.send_compression_encodings;
9802                    let max_decoding_message_size = self.max_decoding_message_size;
9803                    let max_encoding_message_size = self.max_encoding_message_size;
9804                    let inner = self.inner.clone();
9805                    let fut = async move {
9806                        let method = TerminateTaskSvc(inner);
9807                        let codec = tonic_prost::ProstCodec::default();
9808                        let mut grpc = tonic::server::Grpc::new(codec)
9809                            .apply_compression_config(
9810                                accept_compression_encodings,
9811                                send_compression_encodings,
9812                            )
9813                            .apply_max_message_size_config(
9814                                max_decoding_message_size,
9815                                max_encoding_message_size,
9816                            );
9817                        let res = grpc.unary(method, req).await;
9818                        Ok(res)
9819                    };
9820                    Box::pin(fut)
9821                }
9822                "/Vine.CocoonService/GetAuthenticationSession" => {
9823                    #[allow(non_camel_case_types)]
9824                    struct GetAuthenticationSessionSvc<T: CocoonService>(pub Arc<T>);
9825                    impl<
9826                        T: CocoonService,
9827                    > tonic::server::UnaryService<super::GetAuthenticationSessionRequest>
9828                    for GetAuthenticationSessionSvc<T> {
9829                        type Response = super::GetAuthenticationSessionResponse;
9830                        type Future = BoxFuture<
9831                            tonic::Response<Self::Response>,
9832                            tonic::Status,
9833                        >;
9834                        fn call(
9835                            &mut self,
9836                            request: tonic::Request<
9837                                super::GetAuthenticationSessionRequest,
9838                            >,
9839                        ) -> Self::Future {
9840                            let inner = Arc::clone(&self.0);
9841                            let fut = async move {
9842                                <T as CocoonService>::get_authentication_session(
9843                                        &inner,
9844                                        request,
9845                                    )
9846                                    .await
9847                            };
9848                            Box::pin(fut)
9849                        }
9850                    }
9851                    let accept_compression_encodings = self.accept_compression_encodings;
9852                    let send_compression_encodings = self.send_compression_encodings;
9853                    let max_decoding_message_size = self.max_decoding_message_size;
9854                    let max_encoding_message_size = self.max_encoding_message_size;
9855                    let inner = self.inner.clone();
9856                    let fut = async move {
9857                        let method = GetAuthenticationSessionSvc(inner);
9858                        let codec = tonic_prost::ProstCodec::default();
9859                        let mut grpc = tonic::server::Grpc::new(codec)
9860                            .apply_compression_config(
9861                                accept_compression_encodings,
9862                                send_compression_encodings,
9863                            )
9864                            .apply_max_message_size_config(
9865                                max_decoding_message_size,
9866                                max_encoding_message_size,
9867                            );
9868                        let res = grpc.unary(method, req).await;
9869                        Ok(res)
9870                    };
9871                    Box::pin(fut)
9872                }
9873                "/Vine.CocoonService/RegisterAuthenticationProvider" => {
9874                    #[allow(non_camel_case_types)]
9875                    struct RegisterAuthenticationProviderSvc<T: CocoonService>(
9876                        pub Arc<T>,
9877                    );
9878                    impl<
9879                        T: CocoonService,
9880                    > tonic::server::UnaryService<
9881                        super::RegisterAuthenticationProviderRequest,
9882                    > for RegisterAuthenticationProviderSvc<T> {
9883                        type Response = super::Empty;
9884                        type Future = BoxFuture<
9885                            tonic::Response<Self::Response>,
9886                            tonic::Status,
9887                        >;
9888                        fn call(
9889                            &mut self,
9890                            request: tonic::Request<
9891                                super::RegisterAuthenticationProviderRequest,
9892                            >,
9893                        ) -> Self::Future {
9894                            let inner = Arc::clone(&self.0);
9895                            let fut = async move {
9896                                <T as CocoonService>::register_authentication_provider(
9897                                        &inner,
9898                                        request,
9899                                    )
9900                                    .await
9901                            };
9902                            Box::pin(fut)
9903                        }
9904                    }
9905                    let accept_compression_encodings = self.accept_compression_encodings;
9906                    let send_compression_encodings = self.send_compression_encodings;
9907                    let max_decoding_message_size = self.max_decoding_message_size;
9908                    let max_encoding_message_size = self.max_encoding_message_size;
9909                    let inner = self.inner.clone();
9910                    let fut = async move {
9911                        let method = RegisterAuthenticationProviderSvc(inner);
9912                        let codec = tonic_prost::ProstCodec::default();
9913                        let mut grpc = tonic::server::Grpc::new(codec)
9914                            .apply_compression_config(
9915                                accept_compression_encodings,
9916                                send_compression_encodings,
9917                            )
9918                            .apply_max_message_size_config(
9919                                max_decoding_message_size,
9920                                max_encoding_message_size,
9921                            );
9922                        let res = grpc.unary(method, req).await;
9923                        Ok(res)
9924                    };
9925                    Box::pin(fut)
9926                }
9927                "/Vine.CocoonService/StopDebugging" => {
9928                    #[allow(non_camel_case_types)]
9929                    struct StopDebuggingSvc<T: CocoonService>(pub Arc<T>);
9930                    impl<
9931                        T: CocoonService,
9932                    > tonic::server::UnaryService<super::StopDebuggingRequest>
9933                    for StopDebuggingSvc<T> {
9934                        type Response = super::Empty;
9935                        type Future = BoxFuture<
9936                            tonic::Response<Self::Response>,
9937                            tonic::Status,
9938                        >;
9939                        fn call(
9940                            &mut self,
9941                            request: tonic::Request<super::StopDebuggingRequest>,
9942                        ) -> Self::Future {
9943                            let inner = Arc::clone(&self.0);
9944                            let fut = async move {
9945                                <T as CocoonService>::stop_debugging(&inner, request).await
9946                            };
9947                            Box::pin(fut)
9948                        }
9949                    }
9950                    let accept_compression_encodings = self.accept_compression_encodings;
9951                    let send_compression_encodings = self.send_compression_encodings;
9952                    let max_decoding_message_size = self.max_decoding_message_size;
9953                    let max_encoding_message_size = self.max_encoding_message_size;
9954                    let inner = self.inner.clone();
9955                    let fut = async move {
9956                        let method = StopDebuggingSvc(inner);
9957                        let codec = tonic_prost::ProstCodec::default();
9958                        let mut grpc = tonic::server::Grpc::new(codec)
9959                            .apply_compression_config(
9960                                accept_compression_encodings,
9961                                send_compression_encodings,
9962                            )
9963                            .apply_max_message_size_config(
9964                                max_decoding_message_size,
9965                                max_encoding_message_size,
9966                            );
9967                        let res = grpc.unary(method, req).await;
9968                        Ok(res)
9969                    };
9970                    Box::pin(fut)
9971                }
9972                "/Vine.CocoonService/GetExtension" => {
9973                    #[allow(non_camel_case_types)]
9974                    struct GetExtensionSvc<T: CocoonService>(pub Arc<T>);
9975                    impl<
9976                        T: CocoonService,
9977                    > tonic::server::UnaryService<super::GetExtensionRequest>
9978                    for GetExtensionSvc<T> {
9979                        type Response = super::GetExtensionResponse;
9980                        type Future = BoxFuture<
9981                            tonic::Response<Self::Response>,
9982                            tonic::Status,
9983                        >;
9984                        fn call(
9985                            &mut self,
9986                            request: tonic::Request<super::GetExtensionRequest>,
9987                        ) -> Self::Future {
9988                            let inner = Arc::clone(&self.0);
9989                            let fut = async move {
9990                                <T as CocoonService>::get_extension(&inner, request).await
9991                            };
9992                            Box::pin(fut)
9993                        }
9994                    }
9995                    let accept_compression_encodings = self.accept_compression_encodings;
9996                    let send_compression_encodings = self.send_compression_encodings;
9997                    let max_decoding_message_size = self.max_decoding_message_size;
9998                    let max_encoding_message_size = self.max_encoding_message_size;
9999                    let inner = self.inner.clone();
10000                    let fut = async move {
10001                        let method = GetExtensionSvc(inner);
10002                        let codec = tonic_prost::ProstCodec::default();
10003                        let mut grpc = tonic::server::Grpc::new(codec)
10004                            .apply_compression_config(
10005                                accept_compression_encodings,
10006                                send_compression_encodings,
10007                            )
10008                            .apply_max_message_size_config(
10009                                max_decoding_message_size,
10010                                max_encoding_message_size,
10011                            );
10012                        let res = grpc.unary(method, req).await;
10013                        Ok(res)
10014                    };
10015                    Box::pin(fut)
10016                }
10017                "/Vine.CocoonService/GetAllExtensions" => {
10018                    #[allow(non_camel_case_types)]
10019                    struct GetAllExtensionsSvc<T: CocoonService>(pub Arc<T>);
10020                    impl<T: CocoonService> tonic::server::UnaryService<super::Empty>
10021                    for GetAllExtensionsSvc<T> {
10022                        type Response = super::GetAllExtensionsResponse;
10023                        type Future = BoxFuture<
10024                            tonic::Response<Self::Response>,
10025                            tonic::Status,
10026                        >;
10027                        fn call(
10028                            &mut self,
10029                            request: tonic::Request<super::Empty>,
10030                        ) -> Self::Future {
10031                            let inner = Arc::clone(&self.0);
10032                            let fut = async move {
10033                                <T as CocoonService>::get_all_extensions(&inner, request)
10034                                    .await
10035                            };
10036                            Box::pin(fut)
10037                        }
10038                    }
10039                    let accept_compression_encodings = self.accept_compression_encodings;
10040                    let send_compression_encodings = self.send_compression_encodings;
10041                    let max_decoding_message_size = self.max_decoding_message_size;
10042                    let max_encoding_message_size = self.max_encoding_message_size;
10043                    let inner = self.inner.clone();
10044                    let fut = async move {
10045                        let method = GetAllExtensionsSvc(inner);
10046                        let codec = tonic_prost::ProstCodec::default();
10047                        let mut grpc = tonic::server::Grpc::new(codec)
10048                            .apply_compression_config(
10049                                accept_compression_encodings,
10050                                send_compression_encodings,
10051                            )
10052                            .apply_max_message_size_config(
10053                                max_decoding_message_size,
10054                                max_encoding_message_size,
10055                            );
10056                        let res = grpc.unary(method, req).await;
10057                        Ok(res)
10058                    };
10059                    Box::pin(fut)
10060                }
10061                "/Vine.CocoonService/ResizeTerminal" => {
10062                    #[allow(non_camel_case_types)]
10063                    struct ResizeTerminalSvc<T: CocoonService>(pub Arc<T>);
10064                    impl<
10065                        T: CocoonService,
10066                    > tonic::server::UnaryService<super::ResizeTerminalRequest>
10067                    for ResizeTerminalSvc<T> {
10068                        type Response = super::Empty;
10069                        type Future = BoxFuture<
10070                            tonic::Response<Self::Response>,
10071                            tonic::Status,
10072                        >;
10073                        fn call(
10074                            &mut self,
10075                            request: tonic::Request<super::ResizeTerminalRequest>,
10076                        ) -> Self::Future {
10077                            let inner = Arc::clone(&self.0);
10078                            let fut = async move {
10079                                <T as CocoonService>::resize_terminal(&inner, request).await
10080                            };
10081                            Box::pin(fut)
10082                        }
10083                    }
10084                    let accept_compression_encodings = self.accept_compression_encodings;
10085                    let send_compression_encodings = self.send_compression_encodings;
10086                    let max_decoding_message_size = self.max_decoding_message_size;
10087                    let max_encoding_message_size = self.max_encoding_message_size;
10088                    let inner = self.inner.clone();
10089                    let fut = async move {
10090                        let method = ResizeTerminalSvc(inner);
10091                        let codec = tonic_prost::ProstCodec::default();
10092                        let mut grpc = tonic::server::Grpc::new(codec)
10093                            .apply_compression_config(
10094                                accept_compression_encodings,
10095                                send_compression_encodings,
10096                            )
10097                            .apply_max_message_size_config(
10098                                max_decoding_message_size,
10099                                max_encoding_message_size,
10100                            );
10101                        let res = grpc.unary(method, req).await;
10102                        Ok(res)
10103                    };
10104                    Box::pin(fut)
10105                }
10106                "/Vine.CocoonService/GetConfiguration" => {
10107                    #[allow(non_camel_case_types)]
10108                    struct GetConfigurationSvc<T: CocoonService>(pub Arc<T>);
10109                    impl<
10110                        T: CocoonService,
10111                    > tonic::server::UnaryService<super::GetConfigurationRequest>
10112                    for GetConfigurationSvc<T> {
10113                        type Response = super::GetConfigurationResponse;
10114                        type Future = BoxFuture<
10115                            tonic::Response<Self::Response>,
10116                            tonic::Status,
10117                        >;
10118                        fn call(
10119                            &mut self,
10120                            request: tonic::Request<super::GetConfigurationRequest>,
10121                        ) -> Self::Future {
10122                            let inner = Arc::clone(&self.0);
10123                            let fut = async move {
10124                                <T as CocoonService>::get_configuration(&inner, request)
10125                                    .await
10126                            };
10127                            Box::pin(fut)
10128                        }
10129                    }
10130                    let accept_compression_encodings = self.accept_compression_encodings;
10131                    let send_compression_encodings = self.send_compression_encodings;
10132                    let max_decoding_message_size = self.max_decoding_message_size;
10133                    let max_encoding_message_size = self.max_encoding_message_size;
10134                    let inner = self.inner.clone();
10135                    let fut = async move {
10136                        let method = GetConfigurationSvc(inner);
10137                        let codec = tonic_prost::ProstCodec::default();
10138                        let mut grpc = tonic::server::Grpc::new(codec)
10139                            .apply_compression_config(
10140                                accept_compression_encodings,
10141                                send_compression_encodings,
10142                            )
10143                            .apply_max_message_size_config(
10144                                max_decoding_message_size,
10145                                max_encoding_message_size,
10146                            );
10147                        let res = grpc.unary(method, req).await;
10148                        Ok(res)
10149                    };
10150                    Box::pin(fut)
10151                }
10152                "/Vine.CocoonService/ShowTextDocument" => {
10153                    #[allow(non_camel_case_types)]
10154                    struct ShowTextDocumentSvc<T: CocoonService>(pub Arc<T>);
10155                    impl<
10156                        T: CocoonService,
10157                    > tonic::server::UnaryService<super::ShowTextDocumentRequest>
10158                    for ShowTextDocumentSvc<T> {
10159                        type Response = super::ShowTextDocumentResponse;
10160                        type Future = BoxFuture<
10161                            tonic::Response<Self::Response>,
10162                            tonic::Status,
10163                        >;
10164                        fn call(
10165                            &mut self,
10166                            request: tonic::Request<super::ShowTextDocumentRequest>,
10167                        ) -> Self::Future {
10168                            let inner = Arc::clone(&self.0);
10169                            let fut = async move {
10170                                <T as CocoonService>::show_text_document(&inner, request)
10171                                    .await
10172                            };
10173                            Box::pin(fut)
10174                        }
10175                    }
10176                    let accept_compression_encodings = self.accept_compression_encodings;
10177                    let send_compression_encodings = self.send_compression_encodings;
10178                    let max_decoding_message_size = self.max_decoding_message_size;
10179                    let max_encoding_message_size = self.max_encoding_message_size;
10180                    let inner = self.inner.clone();
10181                    let fut = async move {
10182                        let method = ShowTextDocumentSvc(inner);
10183                        let codec = tonic_prost::ProstCodec::default();
10184                        let mut grpc = tonic::server::Grpc::new(codec)
10185                            .apply_compression_config(
10186                                accept_compression_encodings,
10187                                send_compression_encodings,
10188                            )
10189                            .apply_max_message_size_config(
10190                                max_decoding_message_size,
10191                                max_encoding_message_size,
10192                            );
10193                        let res = grpc.unary(method, req).await;
10194                        Ok(res)
10195                    };
10196                    Box::pin(fut)
10197                }
10198                "/Vine.CocoonService/ShowInformationMessage" => {
10199                    #[allow(non_camel_case_types)]
10200                    struct ShowInformationMessageSvc<T: CocoonService>(pub Arc<T>);
10201                    impl<
10202                        T: CocoonService,
10203                    > tonic::server::UnaryService<super::ShowMessageRequest>
10204                    for ShowInformationMessageSvc<T> {
10205                        type Response = super::ShowMessageResponse;
10206                        type Future = BoxFuture<
10207                            tonic::Response<Self::Response>,
10208                            tonic::Status,
10209                        >;
10210                        fn call(
10211                            &mut self,
10212                            request: tonic::Request<super::ShowMessageRequest>,
10213                        ) -> Self::Future {
10214                            let inner = Arc::clone(&self.0);
10215                            let fut = async move {
10216                                <T as CocoonService>::show_information_message(
10217                                        &inner,
10218                                        request,
10219                                    )
10220                                    .await
10221                            };
10222                            Box::pin(fut)
10223                        }
10224                    }
10225                    let accept_compression_encodings = self.accept_compression_encodings;
10226                    let send_compression_encodings = self.send_compression_encodings;
10227                    let max_decoding_message_size = self.max_decoding_message_size;
10228                    let max_encoding_message_size = self.max_encoding_message_size;
10229                    let inner = self.inner.clone();
10230                    let fut = async move {
10231                        let method = ShowInformationMessageSvc(inner);
10232                        let codec = tonic_prost::ProstCodec::default();
10233                        let mut grpc = tonic::server::Grpc::new(codec)
10234                            .apply_compression_config(
10235                                accept_compression_encodings,
10236                                send_compression_encodings,
10237                            )
10238                            .apply_max_message_size_config(
10239                                max_decoding_message_size,
10240                                max_encoding_message_size,
10241                            );
10242                        let res = grpc.unary(method, req).await;
10243                        Ok(res)
10244                    };
10245                    Box::pin(fut)
10246                }
10247                "/Vine.CocoonService/ShowWarningMessage" => {
10248                    #[allow(non_camel_case_types)]
10249                    struct ShowWarningMessageSvc<T: CocoonService>(pub Arc<T>);
10250                    impl<
10251                        T: CocoonService,
10252                    > tonic::server::UnaryService<super::ShowMessageRequest>
10253                    for ShowWarningMessageSvc<T> {
10254                        type Response = super::ShowMessageResponse;
10255                        type Future = BoxFuture<
10256                            tonic::Response<Self::Response>,
10257                            tonic::Status,
10258                        >;
10259                        fn call(
10260                            &mut self,
10261                            request: tonic::Request<super::ShowMessageRequest>,
10262                        ) -> Self::Future {
10263                            let inner = Arc::clone(&self.0);
10264                            let fut = async move {
10265                                <T as CocoonService>::show_warning_message(&inner, request)
10266                                    .await
10267                            };
10268                            Box::pin(fut)
10269                        }
10270                    }
10271                    let accept_compression_encodings = self.accept_compression_encodings;
10272                    let send_compression_encodings = self.send_compression_encodings;
10273                    let max_decoding_message_size = self.max_decoding_message_size;
10274                    let max_encoding_message_size = self.max_encoding_message_size;
10275                    let inner = self.inner.clone();
10276                    let fut = async move {
10277                        let method = ShowWarningMessageSvc(inner);
10278                        let codec = tonic_prost::ProstCodec::default();
10279                        let mut grpc = tonic::server::Grpc::new(codec)
10280                            .apply_compression_config(
10281                                accept_compression_encodings,
10282                                send_compression_encodings,
10283                            )
10284                            .apply_max_message_size_config(
10285                                max_decoding_message_size,
10286                                max_encoding_message_size,
10287                            );
10288                        let res = grpc.unary(method, req).await;
10289                        Ok(res)
10290                    };
10291                    Box::pin(fut)
10292                }
10293                "/Vine.CocoonService/ShowErrorMessage" => {
10294                    #[allow(non_camel_case_types)]
10295                    struct ShowErrorMessageSvc<T: CocoonService>(pub Arc<T>);
10296                    impl<
10297                        T: CocoonService,
10298                    > tonic::server::UnaryService<super::ShowMessageRequest>
10299                    for ShowErrorMessageSvc<T> {
10300                        type Response = super::ShowMessageResponse;
10301                        type Future = BoxFuture<
10302                            tonic::Response<Self::Response>,
10303                            tonic::Status,
10304                        >;
10305                        fn call(
10306                            &mut self,
10307                            request: tonic::Request<super::ShowMessageRequest>,
10308                        ) -> Self::Future {
10309                            let inner = Arc::clone(&self.0);
10310                            let fut = async move {
10311                                <T as CocoonService>::show_error_message(&inner, request)
10312                                    .await
10313                            };
10314                            Box::pin(fut)
10315                        }
10316                    }
10317                    let accept_compression_encodings = self.accept_compression_encodings;
10318                    let send_compression_encodings = self.send_compression_encodings;
10319                    let max_decoding_message_size = self.max_decoding_message_size;
10320                    let max_encoding_message_size = self.max_encoding_message_size;
10321                    let inner = self.inner.clone();
10322                    let fut = async move {
10323                        let method = ShowErrorMessageSvc(inner);
10324                        let codec = tonic_prost::ProstCodec::default();
10325                        let mut grpc = tonic::server::Grpc::new(codec)
10326                            .apply_compression_config(
10327                                accept_compression_encodings,
10328                                send_compression_encodings,
10329                            )
10330                            .apply_max_message_size_config(
10331                                max_decoding_message_size,
10332                                max_encoding_message_size,
10333                            );
10334                        let res = grpc.unary(method, req).await;
10335                        Ok(res)
10336                    };
10337                    Box::pin(fut)
10338                }
10339                "/Vine.CocoonService/CreateStatusBarItem" => {
10340                    #[allow(non_camel_case_types)]
10341                    struct CreateStatusBarItemSvc<T: CocoonService>(pub Arc<T>);
10342                    impl<
10343                        T: CocoonService,
10344                    > tonic::server::UnaryService<super::CreateStatusBarItemRequest>
10345                    for CreateStatusBarItemSvc<T> {
10346                        type Response = super::CreateStatusBarItemResponse;
10347                        type Future = BoxFuture<
10348                            tonic::Response<Self::Response>,
10349                            tonic::Status,
10350                        >;
10351                        fn call(
10352                            &mut self,
10353                            request: tonic::Request<super::CreateStatusBarItemRequest>,
10354                        ) -> Self::Future {
10355                            let inner = Arc::clone(&self.0);
10356                            let fut = async move {
10357                                <T as CocoonService>::create_status_bar_item(
10358                                        &inner,
10359                                        request,
10360                                    )
10361                                    .await
10362                            };
10363                            Box::pin(fut)
10364                        }
10365                    }
10366                    let accept_compression_encodings = self.accept_compression_encodings;
10367                    let send_compression_encodings = self.send_compression_encodings;
10368                    let max_decoding_message_size = self.max_decoding_message_size;
10369                    let max_encoding_message_size = self.max_encoding_message_size;
10370                    let inner = self.inner.clone();
10371                    let fut = async move {
10372                        let method = CreateStatusBarItemSvc(inner);
10373                        let codec = tonic_prost::ProstCodec::default();
10374                        let mut grpc = tonic::server::Grpc::new(codec)
10375                            .apply_compression_config(
10376                                accept_compression_encodings,
10377                                send_compression_encodings,
10378                            )
10379                            .apply_max_message_size_config(
10380                                max_decoding_message_size,
10381                                max_encoding_message_size,
10382                            );
10383                        let res = grpc.unary(method, req).await;
10384                        Ok(res)
10385                    };
10386                    Box::pin(fut)
10387                }
10388                "/Vine.CocoonService/SetStatusBarText" => {
10389                    #[allow(non_camel_case_types)]
10390                    struct SetStatusBarTextSvc<T: CocoonService>(pub Arc<T>);
10391                    impl<
10392                        T: CocoonService,
10393                    > tonic::server::UnaryService<super::SetStatusBarTextRequest>
10394                    for SetStatusBarTextSvc<T> {
10395                        type Response = super::Empty;
10396                        type Future = BoxFuture<
10397                            tonic::Response<Self::Response>,
10398                            tonic::Status,
10399                        >;
10400                        fn call(
10401                            &mut self,
10402                            request: tonic::Request<super::SetStatusBarTextRequest>,
10403                        ) -> Self::Future {
10404                            let inner = Arc::clone(&self.0);
10405                            let fut = async move {
10406                                <T as CocoonService>::set_status_bar_text(&inner, request)
10407                                    .await
10408                            };
10409                            Box::pin(fut)
10410                        }
10411                    }
10412                    let accept_compression_encodings = self.accept_compression_encodings;
10413                    let send_compression_encodings = self.send_compression_encodings;
10414                    let max_decoding_message_size = self.max_decoding_message_size;
10415                    let max_encoding_message_size = self.max_encoding_message_size;
10416                    let inner = self.inner.clone();
10417                    let fut = async move {
10418                        let method = SetStatusBarTextSvc(inner);
10419                        let codec = tonic_prost::ProstCodec::default();
10420                        let mut grpc = tonic::server::Grpc::new(codec)
10421                            .apply_compression_config(
10422                                accept_compression_encodings,
10423                                send_compression_encodings,
10424                            )
10425                            .apply_max_message_size_config(
10426                                max_decoding_message_size,
10427                                max_encoding_message_size,
10428                            );
10429                        let res = grpc.unary(method, req).await;
10430                        Ok(res)
10431                    };
10432                    Box::pin(fut)
10433                }
10434                "/Vine.CocoonService/CreateWebviewPanel" => {
10435                    #[allow(non_camel_case_types)]
10436                    struct CreateWebviewPanelSvc<T: CocoonService>(pub Arc<T>);
10437                    impl<
10438                        T: CocoonService,
10439                    > tonic::server::UnaryService<super::CreateWebviewPanelRequest>
10440                    for CreateWebviewPanelSvc<T> {
10441                        type Response = super::CreateWebviewPanelResponse;
10442                        type Future = BoxFuture<
10443                            tonic::Response<Self::Response>,
10444                            tonic::Status,
10445                        >;
10446                        fn call(
10447                            &mut self,
10448                            request: tonic::Request<super::CreateWebviewPanelRequest>,
10449                        ) -> Self::Future {
10450                            let inner = Arc::clone(&self.0);
10451                            let fut = async move {
10452                                <T as CocoonService>::create_webview_panel(&inner, request)
10453                                    .await
10454                            };
10455                            Box::pin(fut)
10456                        }
10457                    }
10458                    let accept_compression_encodings = self.accept_compression_encodings;
10459                    let send_compression_encodings = self.send_compression_encodings;
10460                    let max_decoding_message_size = self.max_decoding_message_size;
10461                    let max_encoding_message_size = self.max_encoding_message_size;
10462                    let inner = self.inner.clone();
10463                    let fut = async move {
10464                        let method = CreateWebviewPanelSvc(inner);
10465                        let codec = tonic_prost::ProstCodec::default();
10466                        let mut grpc = tonic::server::Grpc::new(codec)
10467                            .apply_compression_config(
10468                                accept_compression_encodings,
10469                                send_compression_encodings,
10470                            )
10471                            .apply_max_message_size_config(
10472                                max_decoding_message_size,
10473                                max_encoding_message_size,
10474                            );
10475                        let res = grpc.unary(method, req).await;
10476                        Ok(res)
10477                    };
10478                    Box::pin(fut)
10479                }
10480                "/Vine.CocoonService/SetWebviewHTML" => {
10481                    #[allow(non_camel_case_types)]
10482                    struct SetWebviewHTMLSvc<T: CocoonService>(pub Arc<T>);
10483                    impl<
10484                        T: CocoonService,
10485                    > tonic::server::UnaryService<super::SetWebviewHtmlRequest>
10486                    for SetWebviewHTMLSvc<T> {
10487                        type Response = super::Empty;
10488                        type Future = BoxFuture<
10489                            tonic::Response<Self::Response>,
10490                            tonic::Status,
10491                        >;
10492                        fn call(
10493                            &mut self,
10494                            request: tonic::Request<super::SetWebviewHtmlRequest>,
10495                        ) -> Self::Future {
10496                            let inner = Arc::clone(&self.0);
10497                            let fut = async move {
10498                                <T as CocoonService>::set_webview_html(&inner, request)
10499                                    .await
10500                            };
10501                            Box::pin(fut)
10502                        }
10503                    }
10504                    let accept_compression_encodings = self.accept_compression_encodings;
10505                    let send_compression_encodings = self.send_compression_encodings;
10506                    let max_decoding_message_size = self.max_decoding_message_size;
10507                    let max_encoding_message_size = self.max_encoding_message_size;
10508                    let inner = self.inner.clone();
10509                    let fut = async move {
10510                        let method = SetWebviewHTMLSvc(inner);
10511                        let codec = tonic_prost::ProstCodec::default();
10512                        let mut grpc = tonic::server::Grpc::new(codec)
10513                            .apply_compression_config(
10514                                accept_compression_encodings,
10515                                send_compression_encodings,
10516                            )
10517                            .apply_max_message_size_config(
10518                                max_decoding_message_size,
10519                                max_encoding_message_size,
10520                            );
10521                        let res = grpc.unary(method, req).await;
10522                        Ok(res)
10523                    };
10524                    Box::pin(fut)
10525                }
10526                "/Vine.CocoonService/OnDidReceiveMessage" => {
10527                    #[allow(non_camel_case_types)]
10528                    struct OnDidReceiveMessageSvc<T: CocoonService>(pub Arc<T>);
10529                    impl<
10530                        T: CocoonService,
10531                    > tonic::server::UnaryService<super::OnDidReceiveMessageRequest>
10532                    for OnDidReceiveMessageSvc<T> {
10533                        type Response = super::Empty;
10534                        type Future = BoxFuture<
10535                            tonic::Response<Self::Response>,
10536                            tonic::Status,
10537                        >;
10538                        fn call(
10539                            &mut self,
10540                            request: tonic::Request<super::OnDidReceiveMessageRequest>,
10541                        ) -> Self::Future {
10542                            let inner = Arc::clone(&self.0);
10543                            let fut = async move {
10544                                <T as CocoonService>::on_did_receive_message(
10545                                        &inner,
10546                                        request,
10547                                    )
10548                                    .await
10549                            };
10550                            Box::pin(fut)
10551                        }
10552                    }
10553                    let accept_compression_encodings = self.accept_compression_encodings;
10554                    let send_compression_encodings = self.send_compression_encodings;
10555                    let max_decoding_message_size = self.max_decoding_message_size;
10556                    let max_encoding_message_size = self.max_encoding_message_size;
10557                    let inner = self.inner.clone();
10558                    let fut = async move {
10559                        let method = OnDidReceiveMessageSvc(inner);
10560                        let codec = tonic_prost::ProstCodec::default();
10561                        let mut grpc = tonic::server::Grpc::new(codec)
10562                            .apply_compression_config(
10563                                accept_compression_encodings,
10564                                send_compression_encodings,
10565                            )
10566                            .apply_max_message_size_config(
10567                                max_decoding_message_size,
10568                                max_encoding_message_size,
10569                            );
10570                        let res = grpc.unary(method, req).await;
10571                        Ok(res)
10572                    };
10573                    Box::pin(fut)
10574                }
10575                "/Vine.CocoonService/ReadFile" => {
10576                    #[allow(non_camel_case_types)]
10577                    struct ReadFileSvc<T: CocoonService>(pub Arc<T>);
10578                    impl<
10579                        T: CocoonService,
10580                    > tonic::server::UnaryService<super::ReadFileRequest>
10581                    for ReadFileSvc<T> {
10582                        type Response = super::ReadFileResponse;
10583                        type Future = BoxFuture<
10584                            tonic::Response<Self::Response>,
10585                            tonic::Status,
10586                        >;
10587                        fn call(
10588                            &mut self,
10589                            request: tonic::Request<super::ReadFileRequest>,
10590                        ) -> Self::Future {
10591                            let inner = Arc::clone(&self.0);
10592                            let fut = async move {
10593                                <T as CocoonService>::read_file(&inner, request).await
10594                            };
10595                            Box::pin(fut)
10596                        }
10597                    }
10598                    let accept_compression_encodings = self.accept_compression_encodings;
10599                    let send_compression_encodings = self.send_compression_encodings;
10600                    let max_decoding_message_size = self.max_decoding_message_size;
10601                    let max_encoding_message_size = self.max_encoding_message_size;
10602                    let inner = self.inner.clone();
10603                    let fut = async move {
10604                        let method = ReadFileSvc(inner);
10605                        let codec = tonic_prost::ProstCodec::default();
10606                        let mut grpc = tonic::server::Grpc::new(codec)
10607                            .apply_compression_config(
10608                                accept_compression_encodings,
10609                                send_compression_encodings,
10610                            )
10611                            .apply_max_message_size_config(
10612                                max_decoding_message_size,
10613                                max_encoding_message_size,
10614                            );
10615                        let res = grpc.unary(method, req).await;
10616                        Ok(res)
10617                    };
10618                    Box::pin(fut)
10619                }
10620                "/Vine.CocoonService/WriteFile" => {
10621                    #[allow(non_camel_case_types)]
10622                    struct WriteFileSvc<T: CocoonService>(pub Arc<T>);
10623                    impl<
10624                        T: CocoonService,
10625                    > tonic::server::UnaryService<super::WriteFileRequest>
10626                    for WriteFileSvc<T> {
10627                        type Response = super::Empty;
10628                        type Future = BoxFuture<
10629                            tonic::Response<Self::Response>,
10630                            tonic::Status,
10631                        >;
10632                        fn call(
10633                            &mut self,
10634                            request: tonic::Request<super::WriteFileRequest>,
10635                        ) -> Self::Future {
10636                            let inner = Arc::clone(&self.0);
10637                            let fut = async move {
10638                                <T as CocoonService>::write_file(&inner, request).await
10639                            };
10640                            Box::pin(fut)
10641                        }
10642                    }
10643                    let accept_compression_encodings = self.accept_compression_encodings;
10644                    let send_compression_encodings = self.send_compression_encodings;
10645                    let max_decoding_message_size = self.max_decoding_message_size;
10646                    let max_encoding_message_size = self.max_encoding_message_size;
10647                    let inner = self.inner.clone();
10648                    let fut = async move {
10649                        let method = WriteFileSvc(inner);
10650                        let codec = tonic_prost::ProstCodec::default();
10651                        let mut grpc = tonic::server::Grpc::new(codec)
10652                            .apply_compression_config(
10653                                accept_compression_encodings,
10654                                send_compression_encodings,
10655                            )
10656                            .apply_max_message_size_config(
10657                                max_decoding_message_size,
10658                                max_encoding_message_size,
10659                            );
10660                        let res = grpc.unary(method, req).await;
10661                        Ok(res)
10662                    };
10663                    Box::pin(fut)
10664                }
10665                "/Vine.CocoonService/Stat" => {
10666                    #[allow(non_camel_case_types)]
10667                    struct StatSvc<T: CocoonService>(pub Arc<T>);
10668                    impl<
10669                        T: CocoonService,
10670                    > tonic::server::UnaryService<super::StatRequest> for StatSvc<T> {
10671                        type Response = super::StatResponse;
10672                        type Future = BoxFuture<
10673                            tonic::Response<Self::Response>,
10674                            tonic::Status,
10675                        >;
10676                        fn call(
10677                            &mut self,
10678                            request: tonic::Request<super::StatRequest>,
10679                        ) -> Self::Future {
10680                            let inner = Arc::clone(&self.0);
10681                            let fut = async move {
10682                                <T as CocoonService>::stat(&inner, request).await
10683                            };
10684                            Box::pin(fut)
10685                        }
10686                    }
10687                    let accept_compression_encodings = self.accept_compression_encodings;
10688                    let send_compression_encodings = self.send_compression_encodings;
10689                    let max_decoding_message_size = self.max_decoding_message_size;
10690                    let max_encoding_message_size = self.max_encoding_message_size;
10691                    let inner = self.inner.clone();
10692                    let fut = async move {
10693                        let method = StatSvc(inner);
10694                        let codec = tonic_prost::ProstCodec::default();
10695                        let mut grpc = tonic::server::Grpc::new(codec)
10696                            .apply_compression_config(
10697                                accept_compression_encodings,
10698                                send_compression_encodings,
10699                            )
10700                            .apply_max_message_size_config(
10701                                max_decoding_message_size,
10702                                max_encoding_message_size,
10703                            );
10704                        let res = grpc.unary(method, req).await;
10705                        Ok(res)
10706                    };
10707                    Box::pin(fut)
10708                }
10709                "/Vine.CocoonService/Readdir" => {
10710                    #[allow(non_camel_case_types)]
10711                    struct ReaddirSvc<T: CocoonService>(pub Arc<T>);
10712                    impl<
10713                        T: CocoonService,
10714                    > tonic::server::UnaryService<super::ReaddirRequest>
10715                    for ReaddirSvc<T> {
10716                        type Response = super::ReaddirResponse;
10717                        type Future = BoxFuture<
10718                            tonic::Response<Self::Response>,
10719                            tonic::Status,
10720                        >;
10721                        fn call(
10722                            &mut self,
10723                            request: tonic::Request<super::ReaddirRequest>,
10724                        ) -> Self::Future {
10725                            let inner = Arc::clone(&self.0);
10726                            let fut = async move {
10727                                <T as CocoonService>::readdir(&inner, request).await
10728                            };
10729                            Box::pin(fut)
10730                        }
10731                    }
10732                    let accept_compression_encodings = self.accept_compression_encodings;
10733                    let send_compression_encodings = self.send_compression_encodings;
10734                    let max_decoding_message_size = self.max_decoding_message_size;
10735                    let max_encoding_message_size = self.max_encoding_message_size;
10736                    let inner = self.inner.clone();
10737                    let fut = async move {
10738                        let method = ReaddirSvc(inner);
10739                        let codec = tonic_prost::ProstCodec::default();
10740                        let mut grpc = tonic::server::Grpc::new(codec)
10741                            .apply_compression_config(
10742                                accept_compression_encodings,
10743                                send_compression_encodings,
10744                            )
10745                            .apply_max_message_size_config(
10746                                max_decoding_message_size,
10747                                max_encoding_message_size,
10748                            );
10749                        let res = grpc.unary(method, req).await;
10750                        Ok(res)
10751                    };
10752                    Box::pin(fut)
10753                }
10754                "/Vine.CocoonService/WatchFile" => {
10755                    #[allow(non_camel_case_types)]
10756                    struct WatchFileSvc<T: CocoonService>(pub Arc<T>);
10757                    impl<
10758                        T: CocoonService,
10759                    > tonic::server::UnaryService<super::WatchFileRequest>
10760                    for WatchFileSvc<T> {
10761                        type Response = super::Empty;
10762                        type Future = BoxFuture<
10763                            tonic::Response<Self::Response>,
10764                            tonic::Status,
10765                        >;
10766                        fn call(
10767                            &mut self,
10768                            request: tonic::Request<super::WatchFileRequest>,
10769                        ) -> Self::Future {
10770                            let inner = Arc::clone(&self.0);
10771                            let fut = async move {
10772                                <T as CocoonService>::watch_file(&inner, request).await
10773                            };
10774                            Box::pin(fut)
10775                        }
10776                    }
10777                    let accept_compression_encodings = self.accept_compression_encodings;
10778                    let send_compression_encodings = self.send_compression_encodings;
10779                    let max_decoding_message_size = self.max_decoding_message_size;
10780                    let max_encoding_message_size = self.max_encoding_message_size;
10781                    let inner = self.inner.clone();
10782                    let fut = async move {
10783                        let method = WatchFileSvc(inner);
10784                        let codec = tonic_prost::ProstCodec::default();
10785                        let mut grpc = tonic::server::Grpc::new(codec)
10786                            .apply_compression_config(
10787                                accept_compression_encodings,
10788                                send_compression_encodings,
10789                            )
10790                            .apply_max_message_size_config(
10791                                max_decoding_message_size,
10792                                max_encoding_message_size,
10793                            );
10794                        let res = grpc.unary(method, req).await;
10795                        Ok(res)
10796                    };
10797                    Box::pin(fut)
10798                }
10799                "/Vine.CocoonService/FindFiles" => {
10800                    #[allow(non_camel_case_types)]
10801                    struct FindFilesSvc<T: CocoonService>(pub Arc<T>);
10802                    impl<
10803                        T: CocoonService,
10804                    > tonic::server::UnaryService<super::FindFilesRequest>
10805                    for FindFilesSvc<T> {
10806                        type Response = super::FindFilesResponse;
10807                        type Future = BoxFuture<
10808                            tonic::Response<Self::Response>,
10809                            tonic::Status,
10810                        >;
10811                        fn call(
10812                            &mut self,
10813                            request: tonic::Request<super::FindFilesRequest>,
10814                        ) -> Self::Future {
10815                            let inner = Arc::clone(&self.0);
10816                            let fut = async move {
10817                                <T as CocoonService>::find_files(&inner, request).await
10818                            };
10819                            Box::pin(fut)
10820                        }
10821                    }
10822                    let accept_compression_encodings = self.accept_compression_encodings;
10823                    let send_compression_encodings = self.send_compression_encodings;
10824                    let max_decoding_message_size = self.max_decoding_message_size;
10825                    let max_encoding_message_size = self.max_encoding_message_size;
10826                    let inner = self.inner.clone();
10827                    let fut = async move {
10828                        let method = FindFilesSvc(inner);
10829                        let codec = tonic_prost::ProstCodec::default();
10830                        let mut grpc = tonic::server::Grpc::new(codec)
10831                            .apply_compression_config(
10832                                accept_compression_encodings,
10833                                send_compression_encodings,
10834                            )
10835                            .apply_max_message_size_config(
10836                                max_decoding_message_size,
10837                                max_encoding_message_size,
10838                            );
10839                        let res = grpc.unary(method, req).await;
10840                        Ok(res)
10841                    };
10842                    Box::pin(fut)
10843                }
10844                "/Vine.CocoonService/FindTextInFiles" => {
10845                    #[allow(non_camel_case_types)]
10846                    struct FindTextInFilesSvc<T: CocoonService>(pub Arc<T>);
10847                    impl<
10848                        T: CocoonService,
10849                    > tonic::server::UnaryService<super::FindTextInFilesRequest>
10850                    for FindTextInFilesSvc<T> {
10851                        type Response = super::FindTextInFilesResponse;
10852                        type Future = BoxFuture<
10853                            tonic::Response<Self::Response>,
10854                            tonic::Status,
10855                        >;
10856                        fn call(
10857                            &mut self,
10858                            request: tonic::Request<super::FindTextInFilesRequest>,
10859                        ) -> Self::Future {
10860                            let inner = Arc::clone(&self.0);
10861                            let fut = async move {
10862                                <T as CocoonService>::find_text_in_files(&inner, request)
10863                                    .await
10864                            };
10865                            Box::pin(fut)
10866                        }
10867                    }
10868                    let accept_compression_encodings = self.accept_compression_encodings;
10869                    let send_compression_encodings = self.send_compression_encodings;
10870                    let max_decoding_message_size = self.max_decoding_message_size;
10871                    let max_encoding_message_size = self.max_encoding_message_size;
10872                    let inner = self.inner.clone();
10873                    let fut = async move {
10874                        let method = FindTextInFilesSvc(inner);
10875                        let codec = tonic_prost::ProstCodec::default();
10876                        let mut grpc = tonic::server::Grpc::new(codec)
10877                            .apply_compression_config(
10878                                accept_compression_encodings,
10879                                send_compression_encodings,
10880                            )
10881                            .apply_max_message_size_config(
10882                                max_decoding_message_size,
10883                                max_encoding_message_size,
10884                            );
10885                        let res = grpc.unary(method, req).await;
10886                        Ok(res)
10887                    };
10888                    Box::pin(fut)
10889                }
10890                "/Vine.CocoonService/OpenDocument" => {
10891                    #[allow(non_camel_case_types)]
10892                    struct OpenDocumentSvc<T: CocoonService>(pub Arc<T>);
10893                    impl<
10894                        T: CocoonService,
10895                    > tonic::server::UnaryService<super::OpenDocumentRequest>
10896                    for OpenDocumentSvc<T> {
10897                        type Response = super::OpenDocumentResponse;
10898                        type Future = BoxFuture<
10899                            tonic::Response<Self::Response>,
10900                            tonic::Status,
10901                        >;
10902                        fn call(
10903                            &mut self,
10904                            request: tonic::Request<super::OpenDocumentRequest>,
10905                        ) -> Self::Future {
10906                            let inner = Arc::clone(&self.0);
10907                            let fut = async move {
10908                                <T as CocoonService>::open_document(&inner, request).await
10909                            };
10910                            Box::pin(fut)
10911                        }
10912                    }
10913                    let accept_compression_encodings = self.accept_compression_encodings;
10914                    let send_compression_encodings = self.send_compression_encodings;
10915                    let max_decoding_message_size = self.max_decoding_message_size;
10916                    let max_encoding_message_size = self.max_encoding_message_size;
10917                    let inner = self.inner.clone();
10918                    let fut = async move {
10919                        let method = OpenDocumentSvc(inner);
10920                        let codec = tonic_prost::ProstCodec::default();
10921                        let mut grpc = tonic::server::Grpc::new(codec)
10922                            .apply_compression_config(
10923                                accept_compression_encodings,
10924                                send_compression_encodings,
10925                            )
10926                            .apply_max_message_size_config(
10927                                max_decoding_message_size,
10928                                max_encoding_message_size,
10929                            );
10930                        let res = grpc.unary(method, req).await;
10931                        Ok(res)
10932                    };
10933                    Box::pin(fut)
10934                }
10935                "/Vine.CocoonService/SaveAll" => {
10936                    #[allow(non_camel_case_types)]
10937                    struct SaveAllSvc<T: CocoonService>(pub Arc<T>);
10938                    impl<
10939                        T: CocoonService,
10940                    > tonic::server::UnaryService<super::SaveAllRequest>
10941                    for SaveAllSvc<T> {
10942                        type Response = super::SaveAllResponse;
10943                        type Future = BoxFuture<
10944                            tonic::Response<Self::Response>,
10945                            tonic::Status,
10946                        >;
10947                        fn call(
10948                            &mut self,
10949                            request: tonic::Request<super::SaveAllRequest>,
10950                        ) -> Self::Future {
10951                            let inner = Arc::clone(&self.0);
10952                            let fut = async move {
10953                                <T as CocoonService>::save_all(&inner, request).await
10954                            };
10955                            Box::pin(fut)
10956                        }
10957                    }
10958                    let accept_compression_encodings = self.accept_compression_encodings;
10959                    let send_compression_encodings = self.send_compression_encodings;
10960                    let max_decoding_message_size = self.max_decoding_message_size;
10961                    let max_encoding_message_size = self.max_encoding_message_size;
10962                    let inner = self.inner.clone();
10963                    let fut = async move {
10964                        let method = SaveAllSvc(inner);
10965                        let codec = tonic_prost::ProstCodec::default();
10966                        let mut grpc = tonic::server::Grpc::new(codec)
10967                            .apply_compression_config(
10968                                accept_compression_encodings,
10969                                send_compression_encodings,
10970                            )
10971                            .apply_max_message_size_config(
10972                                max_decoding_message_size,
10973                                max_encoding_message_size,
10974                            );
10975                        let res = grpc.unary(method, req).await;
10976                        Ok(res)
10977                    };
10978                    Box::pin(fut)
10979                }
10980                "/Vine.CocoonService/ApplyEdit" => {
10981                    #[allow(non_camel_case_types)]
10982                    struct ApplyEditSvc<T: CocoonService>(pub Arc<T>);
10983                    impl<
10984                        T: CocoonService,
10985                    > tonic::server::UnaryService<super::ApplyEditRequest>
10986                    for ApplyEditSvc<T> {
10987                        type Response = super::ApplyEditResponse;
10988                        type Future = BoxFuture<
10989                            tonic::Response<Self::Response>,
10990                            tonic::Status,
10991                        >;
10992                        fn call(
10993                            &mut self,
10994                            request: tonic::Request<super::ApplyEditRequest>,
10995                        ) -> Self::Future {
10996                            let inner = Arc::clone(&self.0);
10997                            let fut = async move {
10998                                <T as CocoonService>::apply_edit(&inner, request).await
10999                            };
11000                            Box::pin(fut)
11001                        }
11002                    }
11003                    let accept_compression_encodings = self.accept_compression_encodings;
11004                    let send_compression_encodings = self.send_compression_encodings;
11005                    let max_decoding_message_size = self.max_decoding_message_size;
11006                    let max_encoding_message_size = self.max_encoding_message_size;
11007                    let inner = self.inner.clone();
11008                    let fut = async move {
11009                        let method = ApplyEditSvc(inner);
11010                        let codec = tonic_prost::ProstCodec::default();
11011                        let mut grpc = tonic::server::Grpc::new(codec)
11012                            .apply_compression_config(
11013                                accept_compression_encodings,
11014                                send_compression_encodings,
11015                            )
11016                            .apply_max_message_size_config(
11017                                max_decoding_message_size,
11018                                max_encoding_message_size,
11019                            );
11020                        let res = grpc.unary(method, req).await;
11021                        Ok(res)
11022                    };
11023                    Box::pin(fut)
11024                }
11025                "/Vine.CocoonService/UpdateConfiguration" => {
11026                    #[allow(non_camel_case_types)]
11027                    struct UpdateConfigurationSvc<T: CocoonService>(pub Arc<T>);
11028                    impl<
11029                        T: CocoonService,
11030                    > tonic::server::UnaryService<super::UpdateConfigurationRequest>
11031                    for UpdateConfigurationSvc<T> {
11032                        type Response = super::Empty;
11033                        type Future = BoxFuture<
11034                            tonic::Response<Self::Response>,
11035                            tonic::Status,
11036                        >;
11037                        fn call(
11038                            &mut self,
11039                            request: tonic::Request<super::UpdateConfigurationRequest>,
11040                        ) -> Self::Future {
11041                            let inner = Arc::clone(&self.0);
11042                            let fut = async move {
11043                                <T as CocoonService>::update_configuration(&inner, request)
11044                                    .await
11045                            };
11046                            Box::pin(fut)
11047                        }
11048                    }
11049                    let accept_compression_encodings = self.accept_compression_encodings;
11050                    let send_compression_encodings = self.send_compression_encodings;
11051                    let max_decoding_message_size = self.max_decoding_message_size;
11052                    let max_encoding_message_size = self.max_encoding_message_size;
11053                    let inner = self.inner.clone();
11054                    let fut = async move {
11055                        let method = UpdateConfigurationSvc(inner);
11056                        let codec = tonic_prost::ProstCodec::default();
11057                        let mut grpc = tonic::server::Grpc::new(codec)
11058                            .apply_compression_config(
11059                                accept_compression_encodings,
11060                                send_compression_encodings,
11061                            )
11062                            .apply_max_message_size_config(
11063                                max_decoding_message_size,
11064                                max_encoding_message_size,
11065                            );
11066                        let res = grpc.unary(method, req).await;
11067                        Ok(res)
11068                    };
11069                    Box::pin(fut)
11070                }
11071                "/Vine.CocoonService/UpdateWorkspaceFolders" => {
11072                    #[allow(non_camel_case_types)]
11073                    struct UpdateWorkspaceFoldersSvc<T: CocoonService>(pub Arc<T>);
11074                    impl<
11075                        T: CocoonService,
11076                    > tonic::server::UnaryService<super::UpdateWorkspaceFoldersRequest>
11077                    for UpdateWorkspaceFoldersSvc<T> {
11078                        type Response = super::Empty;
11079                        type Future = BoxFuture<
11080                            tonic::Response<Self::Response>,
11081                            tonic::Status,
11082                        >;
11083                        fn call(
11084                            &mut self,
11085                            request: tonic::Request<super::UpdateWorkspaceFoldersRequest>,
11086                        ) -> Self::Future {
11087                            let inner = Arc::clone(&self.0);
11088                            let fut = async move {
11089                                <T as CocoonService>::update_workspace_folders(
11090                                        &inner,
11091                                        request,
11092                                    )
11093                                    .await
11094                            };
11095                            Box::pin(fut)
11096                        }
11097                    }
11098                    let accept_compression_encodings = self.accept_compression_encodings;
11099                    let send_compression_encodings = self.send_compression_encodings;
11100                    let max_decoding_message_size = self.max_decoding_message_size;
11101                    let max_encoding_message_size = self.max_encoding_message_size;
11102                    let inner = self.inner.clone();
11103                    let fut = async move {
11104                        let method = UpdateWorkspaceFoldersSvc(inner);
11105                        let codec = tonic_prost::ProstCodec::default();
11106                        let mut grpc = tonic::server::Grpc::new(codec)
11107                            .apply_compression_config(
11108                                accept_compression_encodings,
11109                                send_compression_encodings,
11110                            )
11111                            .apply_max_message_size_config(
11112                                max_decoding_message_size,
11113                                max_encoding_message_size,
11114                            );
11115                        let res = grpc.unary(method, req).await;
11116                        Ok(res)
11117                    };
11118                    Box::pin(fut)
11119                }
11120                "/Vine.CocoonService/OpenTerminal" => {
11121                    #[allow(non_camel_case_types)]
11122                    struct OpenTerminalSvc<T: CocoonService>(pub Arc<T>);
11123                    impl<
11124                        T: CocoonService,
11125                    > tonic::server::UnaryService<super::OpenTerminalRequest>
11126                    for OpenTerminalSvc<T> {
11127                        type Response = super::Empty;
11128                        type Future = BoxFuture<
11129                            tonic::Response<Self::Response>,
11130                            tonic::Status,
11131                        >;
11132                        fn call(
11133                            &mut self,
11134                            request: tonic::Request<super::OpenTerminalRequest>,
11135                        ) -> Self::Future {
11136                            let inner = Arc::clone(&self.0);
11137                            let fut = async move {
11138                                <T as CocoonService>::open_terminal(&inner, request).await
11139                            };
11140                            Box::pin(fut)
11141                        }
11142                    }
11143                    let accept_compression_encodings = self.accept_compression_encodings;
11144                    let send_compression_encodings = self.send_compression_encodings;
11145                    let max_decoding_message_size = self.max_decoding_message_size;
11146                    let max_encoding_message_size = self.max_encoding_message_size;
11147                    let inner = self.inner.clone();
11148                    let fut = async move {
11149                        let method = OpenTerminalSvc(inner);
11150                        let codec = tonic_prost::ProstCodec::default();
11151                        let mut grpc = tonic::server::Grpc::new(codec)
11152                            .apply_compression_config(
11153                                accept_compression_encodings,
11154                                send_compression_encodings,
11155                            )
11156                            .apply_max_message_size_config(
11157                                max_decoding_message_size,
11158                                max_encoding_message_size,
11159                            );
11160                        let res = grpc.unary(method, req).await;
11161                        Ok(res)
11162                    };
11163                    Box::pin(fut)
11164                }
11165                "/Vine.CocoonService/TerminalInput" => {
11166                    #[allow(non_camel_case_types)]
11167                    struct TerminalInputSvc<T: CocoonService>(pub Arc<T>);
11168                    impl<
11169                        T: CocoonService,
11170                    > tonic::server::UnaryService<super::TerminalInputRequest>
11171                    for TerminalInputSvc<T> {
11172                        type Response = super::Empty;
11173                        type Future = BoxFuture<
11174                            tonic::Response<Self::Response>,
11175                            tonic::Status,
11176                        >;
11177                        fn call(
11178                            &mut self,
11179                            request: tonic::Request<super::TerminalInputRequest>,
11180                        ) -> Self::Future {
11181                            let inner = Arc::clone(&self.0);
11182                            let fut = async move {
11183                                <T as CocoonService>::terminal_input(&inner, request).await
11184                            };
11185                            Box::pin(fut)
11186                        }
11187                    }
11188                    let accept_compression_encodings = self.accept_compression_encodings;
11189                    let send_compression_encodings = self.send_compression_encodings;
11190                    let max_decoding_message_size = self.max_decoding_message_size;
11191                    let max_encoding_message_size = self.max_encoding_message_size;
11192                    let inner = self.inner.clone();
11193                    let fut = async move {
11194                        let method = TerminalInputSvc(inner);
11195                        let codec = tonic_prost::ProstCodec::default();
11196                        let mut grpc = tonic::server::Grpc::new(codec)
11197                            .apply_compression_config(
11198                                accept_compression_encodings,
11199                                send_compression_encodings,
11200                            )
11201                            .apply_max_message_size_config(
11202                                max_decoding_message_size,
11203                                max_encoding_message_size,
11204                            );
11205                        let res = grpc.unary(method, req).await;
11206                        Ok(res)
11207                    };
11208                    Box::pin(fut)
11209                }
11210                "/Vine.CocoonService/CloseTerminal" => {
11211                    #[allow(non_camel_case_types)]
11212                    struct CloseTerminalSvc<T: CocoonService>(pub Arc<T>);
11213                    impl<
11214                        T: CocoonService,
11215                    > tonic::server::UnaryService<super::CloseTerminalRequest>
11216                    for CloseTerminalSvc<T> {
11217                        type Response = super::Empty;
11218                        type Future = BoxFuture<
11219                            tonic::Response<Self::Response>,
11220                            tonic::Status,
11221                        >;
11222                        fn call(
11223                            &mut self,
11224                            request: tonic::Request<super::CloseTerminalRequest>,
11225                        ) -> Self::Future {
11226                            let inner = Arc::clone(&self.0);
11227                            let fut = async move {
11228                                <T as CocoonService>::close_terminal(&inner, request).await
11229                            };
11230                            Box::pin(fut)
11231                        }
11232                    }
11233                    let accept_compression_encodings = self.accept_compression_encodings;
11234                    let send_compression_encodings = self.send_compression_encodings;
11235                    let max_decoding_message_size = self.max_decoding_message_size;
11236                    let max_encoding_message_size = self.max_encoding_message_size;
11237                    let inner = self.inner.clone();
11238                    let fut = async move {
11239                        let method = CloseTerminalSvc(inner);
11240                        let codec = tonic_prost::ProstCodec::default();
11241                        let mut grpc = tonic::server::Grpc::new(codec)
11242                            .apply_compression_config(
11243                                accept_compression_encodings,
11244                                send_compression_encodings,
11245                            )
11246                            .apply_max_message_size_config(
11247                                max_decoding_message_size,
11248                                max_encoding_message_size,
11249                            );
11250                        let res = grpc.unary(method, req).await;
11251                        Ok(res)
11252                    };
11253                    Box::pin(fut)
11254                }
11255                "/Vine.CocoonService/AcceptTerminalOpened" => {
11256                    #[allow(non_camel_case_types)]
11257                    struct AcceptTerminalOpenedSvc<T: CocoonService>(pub Arc<T>);
11258                    impl<
11259                        T: CocoonService,
11260                    > tonic::server::UnaryService<super::TerminalOpenedNotification>
11261                    for AcceptTerminalOpenedSvc<T> {
11262                        type Response = super::Empty;
11263                        type Future = BoxFuture<
11264                            tonic::Response<Self::Response>,
11265                            tonic::Status,
11266                        >;
11267                        fn call(
11268                            &mut self,
11269                            request: tonic::Request<super::TerminalOpenedNotification>,
11270                        ) -> Self::Future {
11271                            let inner = Arc::clone(&self.0);
11272                            let fut = async move {
11273                                <T as CocoonService>::accept_terminal_opened(
11274                                        &inner,
11275                                        request,
11276                                    )
11277                                    .await
11278                            };
11279                            Box::pin(fut)
11280                        }
11281                    }
11282                    let accept_compression_encodings = self.accept_compression_encodings;
11283                    let send_compression_encodings = self.send_compression_encodings;
11284                    let max_decoding_message_size = self.max_decoding_message_size;
11285                    let max_encoding_message_size = self.max_encoding_message_size;
11286                    let inner = self.inner.clone();
11287                    let fut = async move {
11288                        let method = AcceptTerminalOpenedSvc(inner);
11289                        let codec = tonic_prost::ProstCodec::default();
11290                        let mut grpc = tonic::server::Grpc::new(codec)
11291                            .apply_compression_config(
11292                                accept_compression_encodings,
11293                                send_compression_encodings,
11294                            )
11295                            .apply_max_message_size_config(
11296                                max_decoding_message_size,
11297                                max_encoding_message_size,
11298                            );
11299                        let res = grpc.unary(method, req).await;
11300                        Ok(res)
11301                    };
11302                    Box::pin(fut)
11303                }
11304                "/Vine.CocoonService/AcceptTerminalClosed" => {
11305                    #[allow(non_camel_case_types)]
11306                    struct AcceptTerminalClosedSvc<T: CocoonService>(pub Arc<T>);
11307                    impl<
11308                        T: CocoonService,
11309                    > tonic::server::UnaryService<super::TerminalClosedNotification>
11310                    for AcceptTerminalClosedSvc<T> {
11311                        type Response = super::Empty;
11312                        type Future = BoxFuture<
11313                            tonic::Response<Self::Response>,
11314                            tonic::Status,
11315                        >;
11316                        fn call(
11317                            &mut self,
11318                            request: tonic::Request<super::TerminalClosedNotification>,
11319                        ) -> Self::Future {
11320                            let inner = Arc::clone(&self.0);
11321                            let fut = async move {
11322                                <T as CocoonService>::accept_terminal_closed(
11323                                        &inner,
11324                                        request,
11325                                    )
11326                                    .await
11327                            };
11328                            Box::pin(fut)
11329                        }
11330                    }
11331                    let accept_compression_encodings = self.accept_compression_encodings;
11332                    let send_compression_encodings = self.send_compression_encodings;
11333                    let max_decoding_message_size = self.max_decoding_message_size;
11334                    let max_encoding_message_size = self.max_encoding_message_size;
11335                    let inner = self.inner.clone();
11336                    let fut = async move {
11337                        let method = AcceptTerminalClosedSvc(inner);
11338                        let codec = tonic_prost::ProstCodec::default();
11339                        let mut grpc = tonic::server::Grpc::new(codec)
11340                            .apply_compression_config(
11341                                accept_compression_encodings,
11342                                send_compression_encodings,
11343                            )
11344                            .apply_max_message_size_config(
11345                                max_decoding_message_size,
11346                                max_encoding_message_size,
11347                            );
11348                        let res = grpc.unary(method, req).await;
11349                        Ok(res)
11350                    };
11351                    Box::pin(fut)
11352                }
11353                "/Vine.CocoonService/AcceptTerminalProcessId" => {
11354                    #[allow(non_camel_case_types)]
11355                    struct AcceptTerminalProcessIdSvc<T: CocoonService>(pub Arc<T>);
11356                    impl<
11357                        T: CocoonService,
11358                    > tonic::server::UnaryService<super::TerminalProcessIdNotification>
11359                    for AcceptTerminalProcessIdSvc<T> {
11360                        type Response = super::Empty;
11361                        type Future = BoxFuture<
11362                            tonic::Response<Self::Response>,
11363                            tonic::Status,
11364                        >;
11365                        fn call(
11366                            &mut self,
11367                            request: tonic::Request<super::TerminalProcessIdNotification>,
11368                        ) -> Self::Future {
11369                            let inner = Arc::clone(&self.0);
11370                            let fut = async move {
11371                                <T as CocoonService>::accept_terminal_process_id(
11372                                        &inner,
11373                                        request,
11374                                    )
11375                                    .await
11376                            };
11377                            Box::pin(fut)
11378                        }
11379                    }
11380                    let accept_compression_encodings = self.accept_compression_encodings;
11381                    let send_compression_encodings = self.send_compression_encodings;
11382                    let max_decoding_message_size = self.max_decoding_message_size;
11383                    let max_encoding_message_size = self.max_encoding_message_size;
11384                    let inner = self.inner.clone();
11385                    let fut = async move {
11386                        let method = AcceptTerminalProcessIdSvc(inner);
11387                        let codec = tonic_prost::ProstCodec::default();
11388                        let mut grpc = tonic::server::Grpc::new(codec)
11389                            .apply_compression_config(
11390                                accept_compression_encodings,
11391                                send_compression_encodings,
11392                            )
11393                            .apply_max_message_size_config(
11394                                max_decoding_message_size,
11395                                max_encoding_message_size,
11396                            );
11397                        let res = grpc.unary(method, req).await;
11398                        Ok(res)
11399                    };
11400                    Box::pin(fut)
11401                }
11402                "/Vine.CocoonService/AcceptTerminalProcessData" => {
11403                    #[allow(non_camel_case_types)]
11404                    struct AcceptTerminalProcessDataSvc<T: CocoonService>(pub Arc<T>);
11405                    impl<
11406                        T: CocoonService,
11407                    > tonic::server::UnaryService<super::TerminalDataNotification>
11408                    for AcceptTerminalProcessDataSvc<T> {
11409                        type Response = super::Empty;
11410                        type Future = BoxFuture<
11411                            tonic::Response<Self::Response>,
11412                            tonic::Status,
11413                        >;
11414                        fn call(
11415                            &mut self,
11416                            request: tonic::Request<super::TerminalDataNotification>,
11417                        ) -> Self::Future {
11418                            let inner = Arc::clone(&self.0);
11419                            let fut = async move {
11420                                <T as CocoonService>::accept_terminal_process_data(
11421                                        &inner,
11422                                        request,
11423                                    )
11424                                    .await
11425                            };
11426                            Box::pin(fut)
11427                        }
11428                    }
11429                    let accept_compression_encodings = self.accept_compression_encodings;
11430                    let send_compression_encodings = self.send_compression_encodings;
11431                    let max_decoding_message_size = self.max_decoding_message_size;
11432                    let max_encoding_message_size = self.max_encoding_message_size;
11433                    let inner = self.inner.clone();
11434                    let fut = async move {
11435                        let method = AcceptTerminalProcessDataSvc(inner);
11436                        let codec = tonic_prost::ProstCodec::default();
11437                        let mut grpc = tonic::server::Grpc::new(codec)
11438                            .apply_compression_config(
11439                                accept_compression_encodings,
11440                                send_compression_encodings,
11441                            )
11442                            .apply_max_message_size_config(
11443                                max_decoding_message_size,
11444                                max_encoding_message_size,
11445                            );
11446                        let res = grpc.unary(method, req).await;
11447                        Ok(res)
11448                    };
11449                    Box::pin(fut)
11450                }
11451                "/Vine.CocoonService/RegisterTreeViewProvider" => {
11452                    #[allow(non_camel_case_types)]
11453                    struct RegisterTreeViewProviderSvc<T: CocoonService>(pub Arc<T>);
11454                    impl<
11455                        T: CocoonService,
11456                    > tonic::server::UnaryService<super::RegisterTreeViewProviderRequest>
11457                    for RegisterTreeViewProviderSvc<T> {
11458                        type Response = super::Empty;
11459                        type Future = BoxFuture<
11460                            tonic::Response<Self::Response>,
11461                            tonic::Status,
11462                        >;
11463                        fn call(
11464                            &mut self,
11465                            request: tonic::Request<
11466                                super::RegisterTreeViewProviderRequest,
11467                            >,
11468                        ) -> Self::Future {
11469                            let inner = Arc::clone(&self.0);
11470                            let fut = async move {
11471                                <T as CocoonService>::register_tree_view_provider(
11472                                        &inner,
11473                                        request,
11474                                    )
11475                                    .await
11476                            };
11477                            Box::pin(fut)
11478                        }
11479                    }
11480                    let accept_compression_encodings = self.accept_compression_encodings;
11481                    let send_compression_encodings = self.send_compression_encodings;
11482                    let max_decoding_message_size = self.max_decoding_message_size;
11483                    let max_encoding_message_size = self.max_encoding_message_size;
11484                    let inner = self.inner.clone();
11485                    let fut = async move {
11486                        let method = RegisterTreeViewProviderSvc(inner);
11487                        let codec = tonic_prost::ProstCodec::default();
11488                        let mut grpc = tonic::server::Grpc::new(codec)
11489                            .apply_compression_config(
11490                                accept_compression_encodings,
11491                                send_compression_encodings,
11492                            )
11493                            .apply_max_message_size_config(
11494                                max_decoding_message_size,
11495                                max_encoding_message_size,
11496                            );
11497                        let res = grpc.unary(method, req).await;
11498                        Ok(res)
11499                    };
11500                    Box::pin(fut)
11501                }
11502                "/Vine.CocoonService/GetTreeChildren" => {
11503                    #[allow(non_camel_case_types)]
11504                    struct GetTreeChildrenSvc<T: CocoonService>(pub Arc<T>);
11505                    impl<
11506                        T: CocoonService,
11507                    > tonic::server::UnaryService<super::GetTreeChildrenRequest>
11508                    for GetTreeChildrenSvc<T> {
11509                        type Response = super::GetTreeChildrenResponse;
11510                        type Future = BoxFuture<
11511                            tonic::Response<Self::Response>,
11512                            tonic::Status,
11513                        >;
11514                        fn call(
11515                            &mut self,
11516                            request: tonic::Request<super::GetTreeChildrenRequest>,
11517                        ) -> Self::Future {
11518                            let inner = Arc::clone(&self.0);
11519                            let fut = async move {
11520                                <T as CocoonService>::get_tree_children(&inner, request)
11521                                    .await
11522                            };
11523                            Box::pin(fut)
11524                        }
11525                    }
11526                    let accept_compression_encodings = self.accept_compression_encodings;
11527                    let send_compression_encodings = self.send_compression_encodings;
11528                    let max_decoding_message_size = self.max_decoding_message_size;
11529                    let max_encoding_message_size = self.max_encoding_message_size;
11530                    let inner = self.inner.clone();
11531                    let fut = async move {
11532                        let method = GetTreeChildrenSvc(inner);
11533                        let codec = tonic_prost::ProstCodec::default();
11534                        let mut grpc = tonic::server::Grpc::new(codec)
11535                            .apply_compression_config(
11536                                accept_compression_encodings,
11537                                send_compression_encodings,
11538                            )
11539                            .apply_max_message_size_config(
11540                                max_decoding_message_size,
11541                                max_encoding_message_size,
11542                            );
11543                        let res = grpc.unary(method, req).await;
11544                        Ok(res)
11545                    };
11546                    Box::pin(fut)
11547                }
11548                "/Vine.CocoonService/RegisterSCMProvider" => {
11549                    #[allow(non_camel_case_types)]
11550                    struct RegisterSCMProviderSvc<T: CocoonService>(pub Arc<T>);
11551                    impl<
11552                        T: CocoonService,
11553                    > tonic::server::UnaryService<super::RegisterScmProviderRequest>
11554                    for RegisterSCMProviderSvc<T> {
11555                        type Response = super::Empty;
11556                        type Future = BoxFuture<
11557                            tonic::Response<Self::Response>,
11558                            tonic::Status,
11559                        >;
11560                        fn call(
11561                            &mut self,
11562                            request: tonic::Request<super::RegisterScmProviderRequest>,
11563                        ) -> Self::Future {
11564                            let inner = Arc::clone(&self.0);
11565                            let fut = async move {
11566                                <T as CocoonService>::register_scm_provider(&inner, request)
11567                                    .await
11568                            };
11569                            Box::pin(fut)
11570                        }
11571                    }
11572                    let accept_compression_encodings = self.accept_compression_encodings;
11573                    let send_compression_encodings = self.send_compression_encodings;
11574                    let max_decoding_message_size = self.max_decoding_message_size;
11575                    let max_encoding_message_size = self.max_encoding_message_size;
11576                    let inner = self.inner.clone();
11577                    let fut = async move {
11578                        let method = RegisterSCMProviderSvc(inner);
11579                        let codec = tonic_prost::ProstCodec::default();
11580                        let mut grpc = tonic::server::Grpc::new(codec)
11581                            .apply_compression_config(
11582                                accept_compression_encodings,
11583                                send_compression_encodings,
11584                            )
11585                            .apply_max_message_size_config(
11586                                max_decoding_message_size,
11587                                max_encoding_message_size,
11588                            );
11589                        let res = grpc.unary(method, req).await;
11590                        Ok(res)
11591                    };
11592                    Box::pin(fut)
11593                }
11594                "/Vine.CocoonService/UpdateSCMGroup" => {
11595                    #[allow(non_camel_case_types)]
11596                    struct UpdateSCMGroupSvc<T: CocoonService>(pub Arc<T>);
11597                    impl<
11598                        T: CocoonService,
11599                    > tonic::server::UnaryService<super::UpdateScmGroupRequest>
11600                    for UpdateSCMGroupSvc<T> {
11601                        type Response = super::Empty;
11602                        type Future = BoxFuture<
11603                            tonic::Response<Self::Response>,
11604                            tonic::Status,
11605                        >;
11606                        fn call(
11607                            &mut self,
11608                            request: tonic::Request<super::UpdateScmGroupRequest>,
11609                        ) -> Self::Future {
11610                            let inner = Arc::clone(&self.0);
11611                            let fut = async move {
11612                                <T as CocoonService>::update_scm_group(&inner, request)
11613                                    .await
11614                            };
11615                            Box::pin(fut)
11616                        }
11617                    }
11618                    let accept_compression_encodings = self.accept_compression_encodings;
11619                    let send_compression_encodings = self.send_compression_encodings;
11620                    let max_decoding_message_size = self.max_decoding_message_size;
11621                    let max_encoding_message_size = self.max_encoding_message_size;
11622                    let inner = self.inner.clone();
11623                    let fut = async move {
11624                        let method = UpdateSCMGroupSvc(inner);
11625                        let codec = tonic_prost::ProstCodec::default();
11626                        let mut grpc = tonic::server::Grpc::new(codec)
11627                            .apply_compression_config(
11628                                accept_compression_encodings,
11629                                send_compression_encodings,
11630                            )
11631                            .apply_max_message_size_config(
11632                                max_decoding_message_size,
11633                                max_encoding_message_size,
11634                            );
11635                        let res = grpc.unary(method, req).await;
11636                        Ok(res)
11637                    };
11638                    Box::pin(fut)
11639                }
11640                "/Vine.CocoonService/GitExec" => {
11641                    #[allow(non_camel_case_types)]
11642                    struct GitExecSvc<T: CocoonService>(pub Arc<T>);
11643                    impl<
11644                        T: CocoonService,
11645                    > tonic::server::UnaryService<super::GitExecRequest>
11646                    for GitExecSvc<T> {
11647                        type Response = super::GitExecResponse;
11648                        type Future = BoxFuture<
11649                            tonic::Response<Self::Response>,
11650                            tonic::Status,
11651                        >;
11652                        fn call(
11653                            &mut self,
11654                            request: tonic::Request<super::GitExecRequest>,
11655                        ) -> Self::Future {
11656                            let inner = Arc::clone(&self.0);
11657                            let fut = async move {
11658                                <T as CocoonService>::git_exec(&inner, request).await
11659                            };
11660                            Box::pin(fut)
11661                        }
11662                    }
11663                    let accept_compression_encodings = self.accept_compression_encodings;
11664                    let send_compression_encodings = self.send_compression_encodings;
11665                    let max_decoding_message_size = self.max_decoding_message_size;
11666                    let max_encoding_message_size = self.max_encoding_message_size;
11667                    let inner = self.inner.clone();
11668                    let fut = async move {
11669                        let method = GitExecSvc(inner);
11670                        let codec = tonic_prost::ProstCodec::default();
11671                        let mut grpc = tonic::server::Grpc::new(codec)
11672                            .apply_compression_config(
11673                                accept_compression_encodings,
11674                                send_compression_encodings,
11675                            )
11676                            .apply_max_message_size_config(
11677                                max_decoding_message_size,
11678                                max_encoding_message_size,
11679                            );
11680                        let res = grpc.unary(method, req).await;
11681                        Ok(res)
11682                    };
11683                    Box::pin(fut)
11684                }
11685                "/Vine.CocoonService/RegisterDebugAdapter" => {
11686                    #[allow(non_camel_case_types)]
11687                    struct RegisterDebugAdapterSvc<T: CocoonService>(pub Arc<T>);
11688                    impl<
11689                        T: CocoonService,
11690                    > tonic::server::UnaryService<super::RegisterDebugAdapterRequest>
11691                    for RegisterDebugAdapterSvc<T> {
11692                        type Response = super::Empty;
11693                        type Future = BoxFuture<
11694                            tonic::Response<Self::Response>,
11695                            tonic::Status,
11696                        >;
11697                        fn call(
11698                            &mut self,
11699                            request: tonic::Request<super::RegisterDebugAdapterRequest>,
11700                        ) -> Self::Future {
11701                            let inner = Arc::clone(&self.0);
11702                            let fut = async move {
11703                                <T as CocoonService>::register_debug_adapter(
11704                                        &inner,
11705                                        request,
11706                                    )
11707                                    .await
11708                            };
11709                            Box::pin(fut)
11710                        }
11711                    }
11712                    let accept_compression_encodings = self.accept_compression_encodings;
11713                    let send_compression_encodings = self.send_compression_encodings;
11714                    let max_decoding_message_size = self.max_decoding_message_size;
11715                    let max_encoding_message_size = self.max_encoding_message_size;
11716                    let inner = self.inner.clone();
11717                    let fut = async move {
11718                        let method = RegisterDebugAdapterSvc(inner);
11719                        let codec = tonic_prost::ProstCodec::default();
11720                        let mut grpc = tonic::server::Grpc::new(codec)
11721                            .apply_compression_config(
11722                                accept_compression_encodings,
11723                                send_compression_encodings,
11724                            )
11725                            .apply_max_message_size_config(
11726                                max_decoding_message_size,
11727                                max_encoding_message_size,
11728                            );
11729                        let res = grpc.unary(method, req).await;
11730                        Ok(res)
11731                    };
11732                    Box::pin(fut)
11733                }
11734                "/Vine.CocoonService/StartDebugging" => {
11735                    #[allow(non_camel_case_types)]
11736                    struct StartDebuggingSvc<T: CocoonService>(pub Arc<T>);
11737                    impl<
11738                        T: CocoonService,
11739                    > tonic::server::UnaryService<super::StartDebuggingRequest>
11740                    for StartDebuggingSvc<T> {
11741                        type Response = super::StartDebuggingResponse;
11742                        type Future = BoxFuture<
11743                            tonic::Response<Self::Response>,
11744                            tonic::Status,
11745                        >;
11746                        fn call(
11747                            &mut self,
11748                            request: tonic::Request<super::StartDebuggingRequest>,
11749                        ) -> Self::Future {
11750                            let inner = Arc::clone(&self.0);
11751                            let fut = async move {
11752                                <T as CocoonService>::start_debugging(&inner, request).await
11753                            };
11754                            Box::pin(fut)
11755                        }
11756                    }
11757                    let accept_compression_encodings = self.accept_compression_encodings;
11758                    let send_compression_encodings = self.send_compression_encodings;
11759                    let max_decoding_message_size = self.max_decoding_message_size;
11760                    let max_encoding_message_size = self.max_encoding_message_size;
11761                    let inner = self.inner.clone();
11762                    let fut = async move {
11763                        let method = StartDebuggingSvc(inner);
11764                        let codec = tonic_prost::ProstCodec::default();
11765                        let mut grpc = tonic::server::Grpc::new(codec)
11766                            .apply_compression_config(
11767                                accept_compression_encodings,
11768                                send_compression_encodings,
11769                            )
11770                            .apply_max_message_size_config(
11771                                max_decoding_message_size,
11772                                max_encoding_message_size,
11773                            );
11774                        let res = grpc.unary(method, req).await;
11775                        Ok(res)
11776                    };
11777                    Box::pin(fut)
11778                }
11779                "/Vine.CocoonService/ParticipateInSave" => {
11780                    #[allow(non_camel_case_types)]
11781                    struct ParticipateInSaveSvc<T: CocoonService>(pub Arc<T>);
11782                    impl<
11783                        T: CocoonService,
11784                    > tonic::server::UnaryService<super::ParticipateInSaveRequest>
11785                    for ParticipateInSaveSvc<T> {
11786                        type Response = super::ParticipateInSaveResponse;
11787                        type Future = BoxFuture<
11788                            tonic::Response<Self::Response>,
11789                            tonic::Status,
11790                        >;
11791                        fn call(
11792                            &mut self,
11793                            request: tonic::Request<super::ParticipateInSaveRequest>,
11794                        ) -> Self::Future {
11795                            let inner = Arc::clone(&self.0);
11796                            let fut = async move {
11797                                <T as CocoonService>::participate_in_save(&inner, request)
11798                                    .await
11799                            };
11800                            Box::pin(fut)
11801                        }
11802                    }
11803                    let accept_compression_encodings = self.accept_compression_encodings;
11804                    let send_compression_encodings = self.send_compression_encodings;
11805                    let max_decoding_message_size = self.max_decoding_message_size;
11806                    let max_encoding_message_size = self.max_encoding_message_size;
11807                    let inner = self.inner.clone();
11808                    let fut = async move {
11809                        let method = ParticipateInSaveSvc(inner);
11810                        let codec = tonic_prost::ProstCodec::default();
11811                        let mut grpc = tonic::server::Grpc::new(codec)
11812                            .apply_compression_config(
11813                                accept_compression_encodings,
11814                                send_compression_encodings,
11815                            )
11816                            .apply_max_message_size_config(
11817                                max_decoding_message_size,
11818                                max_encoding_message_size,
11819                            );
11820                        let res = grpc.unary(method, req).await;
11821                        Ok(res)
11822                    };
11823                    Box::pin(fut)
11824                }
11825                "/Vine.CocoonService/GetSecret" => {
11826                    #[allow(non_camel_case_types)]
11827                    struct GetSecretSvc<T: CocoonService>(pub Arc<T>);
11828                    impl<
11829                        T: CocoonService,
11830                    > tonic::server::UnaryService<super::GetSecretRequest>
11831                    for GetSecretSvc<T> {
11832                        type Response = super::GetSecretResponse;
11833                        type Future = BoxFuture<
11834                            tonic::Response<Self::Response>,
11835                            tonic::Status,
11836                        >;
11837                        fn call(
11838                            &mut self,
11839                            request: tonic::Request<super::GetSecretRequest>,
11840                        ) -> Self::Future {
11841                            let inner = Arc::clone(&self.0);
11842                            let fut = async move {
11843                                <T as CocoonService>::get_secret(&inner, request).await
11844                            };
11845                            Box::pin(fut)
11846                        }
11847                    }
11848                    let accept_compression_encodings = self.accept_compression_encodings;
11849                    let send_compression_encodings = self.send_compression_encodings;
11850                    let max_decoding_message_size = self.max_decoding_message_size;
11851                    let max_encoding_message_size = self.max_encoding_message_size;
11852                    let inner = self.inner.clone();
11853                    let fut = async move {
11854                        let method = GetSecretSvc(inner);
11855                        let codec = tonic_prost::ProstCodec::default();
11856                        let mut grpc = tonic::server::Grpc::new(codec)
11857                            .apply_compression_config(
11858                                accept_compression_encodings,
11859                                send_compression_encodings,
11860                            )
11861                            .apply_max_message_size_config(
11862                                max_decoding_message_size,
11863                                max_encoding_message_size,
11864                            );
11865                        let res = grpc.unary(method, req).await;
11866                        Ok(res)
11867                    };
11868                    Box::pin(fut)
11869                }
11870                "/Vine.CocoonService/StoreSecret" => {
11871                    #[allow(non_camel_case_types)]
11872                    struct StoreSecretSvc<T: CocoonService>(pub Arc<T>);
11873                    impl<
11874                        T: CocoonService,
11875                    > tonic::server::UnaryService<super::StoreSecretRequest>
11876                    for StoreSecretSvc<T> {
11877                        type Response = super::Empty;
11878                        type Future = BoxFuture<
11879                            tonic::Response<Self::Response>,
11880                            tonic::Status,
11881                        >;
11882                        fn call(
11883                            &mut self,
11884                            request: tonic::Request<super::StoreSecretRequest>,
11885                        ) -> Self::Future {
11886                            let inner = Arc::clone(&self.0);
11887                            let fut = async move {
11888                                <T as CocoonService>::store_secret(&inner, request).await
11889                            };
11890                            Box::pin(fut)
11891                        }
11892                    }
11893                    let accept_compression_encodings = self.accept_compression_encodings;
11894                    let send_compression_encodings = self.send_compression_encodings;
11895                    let max_decoding_message_size = self.max_decoding_message_size;
11896                    let max_encoding_message_size = self.max_encoding_message_size;
11897                    let inner = self.inner.clone();
11898                    let fut = async move {
11899                        let method = StoreSecretSvc(inner);
11900                        let codec = tonic_prost::ProstCodec::default();
11901                        let mut grpc = tonic::server::Grpc::new(codec)
11902                            .apply_compression_config(
11903                                accept_compression_encodings,
11904                                send_compression_encodings,
11905                            )
11906                            .apply_max_message_size_config(
11907                                max_decoding_message_size,
11908                                max_encoding_message_size,
11909                            );
11910                        let res = grpc.unary(method, req).await;
11911                        Ok(res)
11912                    };
11913                    Box::pin(fut)
11914                }
11915                "/Vine.CocoonService/DeleteSecret" => {
11916                    #[allow(non_camel_case_types)]
11917                    struct DeleteSecretSvc<T: CocoonService>(pub Arc<T>);
11918                    impl<
11919                        T: CocoonService,
11920                    > tonic::server::UnaryService<super::DeleteSecretRequest>
11921                    for DeleteSecretSvc<T> {
11922                        type Response = super::Empty;
11923                        type Future = BoxFuture<
11924                            tonic::Response<Self::Response>,
11925                            tonic::Status,
11926                        >;
11927                        fn call(
11928                            &mut self,
11929                            request: tonic::Request<super::DeleteSecretRequest>,
11930                        ) -> Self::Future {
11931                            let inner = Arc::clone(&self.0);
11932                            let fut = async move {
11933                                <T as CocoonService>::delete_secret(&inner, request).await
11934                            };
11935                            Box::pin(fut)
11936                        }
11937                    }
11938                    let accept_compression_encodings = self.accept_compression_encodings;
11939                    let send_compression_encodings = self.send_compression_encodings;
11940                    let max_decoding_message_size = self.max_decoding_message_size;
11941                    let max_encoding_message_size = self.max_encoding_message_size;
11942                    let inner = self.inner.clone();
11943                    let fut = async move {
11944                        let method = DeleteSecretSvc(inner);
11945                        let codec = tonic_prost::ProstCodec::default();
11946                        let mut grpc = tonic::server::Grpc::new(codec)
11947                            .apply_compression_config(
11948                                accept_compression_encodings,
11949                                send_compression_encodings,
11950                            )
11951                            .apply_max_message_size_config(
11952                                max_decoding_message_size,
11953                                max_encoding_message_size,
11954                            );
11955                        let res = grpc.unary(method, req).await;
11956                        Ok(res)
11957                    };
11958                    Box::pin(fut)
11959                }
11960                _ => {
11961                    Box::pin(async move {
11962                        let mut response = http::Response::new(
11963                            tonic::body::Body::default(),
11964                        );
11965                        let headers = response.headers_mut();
11966                        headers
11967                            .insert(
11968                                tonic::Status::GRPC_STATUS,
11969                                (tonic::Code::Unimplemented as i32).into(),
11970                            );
11971                        headers
11972                            .insert(
11973                                http::header::CONTENT_TYPE,
11974                                tonic::metadata::GRPC_CONTENT_TYPE,
11975                            );
11976                        Ok(response)
11977                    })
11978                }
11979            }
11980        }
11981    }
11982    impl<T> Clone for CocoonServiceServer<T> {
11983        fn clone(&self) -> Self {
11984            let inner = self.inner.clone();
11985            Self {
11986                inner,
11987                accept_compression_encodings: self.accept_compression_encodings,
11988                send_compression_encodings: self.send_compression_encodings,
11989                max_decoding_message_size: self.max_decoding_message_size,
11990                max_encoding_message_size: self.max_encoding_message_size,
11991            }
11992        }
11993    }
11994    /// Generated gRPC service name
11995    pub const SERVICE_NAME: &str = "Vine.CocoonService";
11996    impl<T> tonic::server::NamedService for CocoonServiceServer<T> {
11997        const NAME: &'static str = SERVICE_NAME;
11998    }
11999}