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/// A view column (editor location).
1621#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1622#[repr(i32)]
1623pub enum ViewColumn {
1624    Undefined = 0,
1625    Active = 1,
1626    One = 2,
1627    Two = 3,
1628    Three = 4,
1629    Four = 5,
1630    Five = 6,
1631    Six = 7,
1632    Seven = 8,
1633    Eight = 9,
1634    Nine = 10,
1635}
1636impl ViewColumn {
1637    /// String value of the enum field names used in the ProtoBuf definition.
1638    ///
1639    /// The values are not transformed in any way and thus are considered stable
1640    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1641    pub fn as_str_name(&self) -> &'static str {
1642        match self {
1643            Self::Undefined => "VIEW_COLUMN_UNDEFINED",
1644            Self::Active => "VIEW_COLUMN_ACTIVE",
1645            Self::One => "VIEW_COLUMN_ONE",
1646            Self::Two => "VIEW_COLUMN_TWO",
1647            Self::Three => "VIEW_COLUMN_THREE",
1648            Self::Four => "VIEW_COLUMN_FOUR",
1649            Self::Five => "VIEW_COLUMN_FIVE",
1650            Self::Six => "VIEW_COLUMN_SIX",
1651            Self::Seven => "VIEW_COLUMN_SEVEN",
1652            Self::Eight => "VIEW_COLUMN_EIGHT",
1653            Self::Nine => "VIEW_COLUMN_NINE",
1654        }
1655    }
1656    /// Creates an enum from field names used in the ProtoBuf definition.
1657    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1658        match value {
1659            "VIEW_COLUMN_UNDEFINED" => Some(Self::Undefined),
1660            "VIEW_COLUMN_ACTIVE" => Some(Self::Active),
1661            "VIEW_COLUMN_ONE" => Some(Self::One),
1662            "VIEW_COLUMN_TWO" => Some(Self::Two),
1663            "VIEW_COLUMN_THREE" => Some(Self::Three),
1664            "VIEW_COLUMN_FOUR" => Some(Self::Four),
1665            "VIEW_COLUMN_FIVE" => Some(Self::Five),
1666            "VIEW_COLUMN_SIX" => Some(Self::Six),
1667            "VIEW_COLUMN_SEVEN" => Some(Self::Seven),
1668            "VIEW_COLUMN_EIGHT" => Some(Self::Eight),
1669            "VIEW_COLUMN_NINE" => Some(Self::Nine),
1670            _ => None,
1671        }
1672    }
1673}
1674/// Text document save reason.
1675#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1676#[repr(i32)]
1677pub enum TextDocumentSaveReason {
1678    SaveReasonManual = 0,
1679    SaveReasonAfterDelay = 1,
1680    SaveReasonFocusOut = 2,
1681}
1682impl TextDocumentSaveReason {
1683    /// String value of the enum field names used in the ProtoBuf definition.
1684    ///
1685    /// The values are not transformed in any way and thus are considered stable
1686    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1687    pub fn as_str_name(&self) -> &'static str {
1688        match self {
1689            Self::SaveReasonManual => "SAVE_REASON_MANUAL",
1690            Self::SaveReasonAfterDelay => "SAVE_REASON_AFTER_DELAY",
1691            Self::SaveReasonFocusOut => "SAVE_REASON_FOCUS_OUT",
1692        }
1693    }
1694    /// Creates an enum from field names used in the ProtoBuf definition.
1695    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1696        match value {
1697            "SAVE_REASON_MANUAL" => Some(Self::SaveReasonManual),
1698            "SAVE_REASON_AFTER_DELAY" => Some(Self::SaveReasonAfterDelay),
1699            "SAVE_REASON_FOCUS_OUT" => Some(Self::SaveReasonFocusOut),
1700            _ => None,
1701        }
1702    }
1703}
1704/// Progress location.
1705#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1706#[repr(i32)]
1707pub enum ProgressLocation {
1708    Notification = 0,
1709    SourceControl = 1,
1710    Window = 2,
1711}
1712impl ProgressLocation {
1713    /// String value of the enum field names used in the ProtoBuf definition.
1714    ///
1715    /// The values are not transformed in any way and thus are considered stable
1716    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1717    pub fn as_str_name(&self) -> &'static str {
1718        match self {
1719            Self::Notification => "PROGRESS_LOCATION_NOTIFICATION",
1720            Self::SourceControl => "PROGRESS_LOCATION_SOURCE_CONTROL",
1721            Self::Window => "PROGRESS_LOCATION_WINDOW",
1722        }
1723    }
1724    /// Creates an enum from field names used in the ProtoBuf definition.
1725    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1726        match value {
1727            "PROGRESS_LOCATION_NOTIFICATION" => Some(Self::Notification),
1728            "PROGRESS_LOCATION_SOURCE_CONTROL" => Some(Self::SourceControl),
1729            "PROGRESS_LOCATION_WINDOW" => Some(Self::Window),
1730            _ => None,
1731        }
1732    }
1733}
1734/// Generated client implementations.
1735pub mod mountain_service_client {
1736    #![allow(
1737        unused_variables,
1738        dead_code,
1739        missing_docs,
1740        clippy::wildcard_imports,
1741        clippy::let_unit_value,
1742    )]
1743    use tonic::codegen::*;
1744    use tonic::codegen::http::Uri;
1745    /// Service running on the Mountain host, listening for requests from Cocoon.
1746    #[derive(Debug, Clone)]
1747    pub struct MountainServiceClient<T> {
1748        inner: tonic::client::Grpc<T>,
1749    }
1750    impl MountainServiceClient<tonic::transport::Channel> {
1751        /// Attempt to create a new client by connecting to a given endpoint.
1752        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1753        where
1754            D: TryInto<tonic::transport::Endpoint>,
1755            D::Error: Into<StdError>,
1756        {
1757            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1758            Ok(Self::new(conn))
1759        }
1760    }
1761    impl<T> MountainServiceClient<T>
1762    where
1763        T: tonic::client::GrpcService<tonic::body::Body>,
1764        T::Error: Into<StdError>,
1765        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1766        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1767    {
1768        pub fn new(inner: T) -> Self {
1769            let inner = tonic::client::Grpc::new(inner);
1770            Self { inner }
1771        }
1772        pub fn with_origin(inner: T, origin: Uri) -> Self {
1773            let inner = tonic::client::Grpc::with_origin(inner, origin);
1774            Self { inner }
1775        }
1776        pub fn with_interceptor<F>(
1777            inner: T,
1778            interceptor: F,
1779        ) -> MountainServiceClient<InterceptedService<T, F>>
1780        where
1781            F: tonic::service::Interceptor,
1782            T::ResponseBody: Default,
1783            T: tonic::codegen::Service<
1784                http::Request<tonic::body::Body>,
1785                Response = http::Response<
1786                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1787                >,
1788            >,
1789            <T as tonic::codegen::Service<
1790                http::Request<tonic::body::Body>,
1791            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1792        {
1793            MountainServiceClient::new(InterceptedService::new(inner, interceptor))
1794        }
1795        /// Compress requests with the given encoding.
1796        ///
1797        /// This requires the server to support it otherwise it might respond with an
1798        /// error.
1799        #[must_use]
1800        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1801            self.inner = self.inner.send_compressed(encoding);
1802            self
1803        }
1804        /// Enable decompressing responses.
1805        #[must_use]
1806        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1807            self.inner = self.inner.accept_compressed(encoding);
1808            self
1809        }
1810        /// Limits the maximum size of a decoded message.
1811        ///
1812        /// Default: `4MB`
1813        #[must_use]
1814        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1815            self.inner = self.inner.max_decoding_message_size(limit);
1816            self
1817        }
1818        /// Limits the maximum size of an encoded message.
1819        ///
1820        /// Default: `usize::MAX`
1821        #[must_use]
1822        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1823            self.inner = self.inner.max_encoding_message_size(limit);
1824            self
1825        }
1826        /// A generic request-response method for Cocoon to call a function on Mountain.
1827        pub async fn process_cocoon_request(
1828            &mut self,
1829            request: impl tonic::IntoRequest<super::GenericRequest>,
1830        ) -> std::result::Result<
1831            tonic::Response<super::GenericResponse>,
1832            tonic::Status,
1833        > {
1834            self.inner
1835                .ready()
1836                .await
1837                .map_err(|e| {
1838                    tonic::Status::unknown(
1839                        format!("Service was not ready: {}", e.into()),
1840                    )
1841                })?;
1842            let codec = tonic_prost::ProstCodec::default();
1843            let path = http::uri::PathAndQuery::from_static(
1844                "/Vine.MountainService/ProcessCocoonRequest",
1845            );
1846            let mut req = request.into_request();
1847            req.extensions_mut()
1848                .insert(GrpcMethod::new("Vine.MountainService", "ProcessCocoonRequest"));
1849            self.inner.unary(req, path, codec).await
1850        }
1851        /// A generic fire-and-forget method for Cocoon to send a notification to Mountain.
1852        pub async fn send_cocoon_notification(
1853            &mut self,
1854            request: impl tonic::IntoRequest<super::GenericNotification>,
1855        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1856            self.inner
1857                .ready()
1858                .await
1859                .map_err(|e| {
1860                    tonic::Status::unknown(
1861                        format!("Service was not ready: {}", e.into()),
1862                    )
1863                })?;
1864            let codec = tonic_prost::ProstCodec::default();
1865            let path = http::uri::PathAndQuery::from_static(
1866                "/Vine.MountainService/SendCocoonNotification",
1867            );
1868            let mut req = request.into_request();
1869            req.extensions_mut()
1870                .insert(
1871                    GrpcMethod::new("Vine.MountainService", "SendCocoonNotification"),
1872                );
1873            self.inner.unary(req, path, codec).await
1874        }
1875        /// A method for Cocoon to request that Mountain cancel a long-running operation.
1876        pub async fn cancel_operation(
1877            &mut self,
1878            request: impl tonic::IntoRequest<super::CancelOperationRequest>,
1879        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1880            self.inner
1881                .ready()
1882                .await
1883                .map_err(|e| {
1884                    tonic::Status::unknown(
1885                        format!("Service was not ready: {}", e.into()),
1886                    )
1887                })?;
1888            let codec = tonic_prost::ProstCodec::default();
1889            let path = http::uri::PathAndQuery::from_static(
1890                "/Vine.MountainService/CancelOperation",
1891            );
1892            let mut req = request.into_request();
1893            req.extensions_mut()
1894                .insert(GrpcMethod::new("Vine.MountainService", "CancelOperation"));
1895            self.inner.unary(req, path, codec).await
1896        }
1897        /// LAND-PATCH B7-S6 P2: bidirectional streaming channel.
1898        ///
1899        /// Multiplexes every notification, request, and response over a
1900        /// single h2 stream. Each side reads frames asynchronously and
1901        /// routes by `correlation_id` (request/response) or by
1902        /// `channel` (notification fan-out).
1903        ///
1904        /// Replaces the unary methods above for any caller that needs
1905        /// concurrent / parallel dispatch. The unary methods stay for
1906        /// backward compatibility and for callers that explicitly want
1907        /// a single round-trip.
1908        pub async fn open_channel_from_cocoon(
1909            &mut self,
1910            request: impl tonic::IntoStreamingRequest<Message = super::Envelope>,
1911        ) -> std::result::Result<
1912            tonic::Response<tonic::codec::Streaming<super::Envelope>>,
1913            tonic::Status,
1914        > {
1915            self.inner
1916                .ready()
1917                .await
1918                .map_err(|e| {
1919                    tonic::Status::unknown(
1920                        format!("Service was not ready: {}", e.into()),
1921                    )
1922                })?;
1923            let codec = tonic_prost::ProstCodec::default();
1924            let path = http::uri::PathAndQuery::from_static(
1925                "/Vine.MountainService/OpenChannelFromCocoon",
1926            );
1927            let mut req = request.into_streaming_request();
1928            req.extensions_mut()
1929                .insert(
1930                    GrpcMethod::new("Vine.MountainService", "OpenChannelFromCocoon"),
1931                );
1932            self.inner.streaming(req, path, codec).await
1933        }
1934    }
1935}
1936/// Generated server implementations.
1937pub mod mountain_service_server {
1938    #![allow(
1939        unused_variables,
1940        dead_code,
1941        missing_docs,
1942        clippy::wildcard_imports,
1943        clippy::let_unit_value,
1944    )]
1945    use tonic::codegen::*;
1946    /// Generated trait containing gRPC methods that should be implemented for use with MountainServiceServer.
1947    #[async_trait]
1948    pub trait MountainService: std::marker::Send + std::marker::Sync + 'static {
1949        /// A generic request-response method for Cocoon to call a function on Mountain.
1950        async fn process_cocoon_request(
1951            &self,
1952            request: tonic::Request<super::GenericRequest>,
1953        ) -> std::result::Result<tonic::Response<super::GenericResponse>, tonic::Status>;
1954        /// A generic fire-and-forget method for Cocoon to send a notification to Mountain.
1955        async fn send_cocoon_notification(
1956            &self,
1957            request: tonic::Request<super::GenericNotification>,
1958        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
1959        /// A method for Cocoon to request that Mountain cancel a long-running operation.
1960        async fn cancel_operation(
1961            &self,
1962            request: tonic::Request<super::CancelOperationRequest>,
1963        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
1964        /// Server streaming response type for the OpenChannelFromCocoon method.
1965        type OpenChannelFromCocoonStream: tonic::codegen::tokio_stream::Stream<
1966                Item = std::result::Result<super::Envelope, tonic::Status>,
1967            >
1968            + std::marker::Send
1969            + 'static;
1970        /// LAND-PATCH B7-S6 P2: bidirectional streaming channel.
1971        ///
1972        /// Multiplexes every notification, request, and response over a
1973        /// single h2 stream. Each side reads frames asynchronously and
1974        /// routes by `correlation_id` (request/response) or by
1975        /// `channel` (notification fan-out).
1976        ///
1977        /// Replaces the unary methods above for any caller that needs
1978        /// concurrent / parallel dispatch. The unary methods stay for
1979        /// backward compatibility and for callers that explicitly want
1980        /// a single round-trip.
1981        async fn open_channel_from_cocoon(
1982            &self,
1983            request: tonic::Request<tonic::Streaming<super::Envelope>>,
1984        ) -> std::result::Result<
1985            tonic::Response<Self::OpenChannelFromCocoonStream>,
1986            tonic::Status,
1987        >;
1988    }
1989    /// Service running on the Mountain host, listening for requests from Cocoon.
1990    #[derive(Debug)]
1991    pub struct MountainServiceServer<T> {
1992        inner: Arc<T>,
1993        accept_compression_encodings: EnabledCompressionEncodings,
1994        send_compression_encodings: EnabledCompressionEncodings,
1995        max_decoding_message_size: Option<usize>,
1996        max_encoding_message_size: Option<usize>,
1997    }
1998    impl<T> MountainServiceServer<T> {
1999        pub fn new(inner: T) -> Self {
2000            Self::from_arc(Arc::new(inner))
2001        }
2002        pub fn from_arc(inner: Arc<T>) -> Self {
2003            Self {
2004                inner,
2005                accept_compression_encodings: Default::default(),
2006                send_compression_encodings: Default::default(),
2007                max_decoding_message_size: None,
2008                max_encoding_message_size: None,
2009            }
2010        }
2011        pub fn with_interceptor<F>(
2012            inner: T,
2013            interceptor: F,
2014        ) -> InterceptedService<Self, F>
2015        where
2016            F: tonic::service::Interceptor,
2017        {
2018            InterceptedService::new(Self::new(inner), interceptor)
2019        }
2020        /// Enable decompressing requests with the given encoding.
2021        #[must_use]
2022        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2023            self.accept_compression_encodings.enable(encoding);
2024            self
2025        }
2026        /// Compress responses with the given encoding, if the client supports it.
2027        #[must_use]
2028        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2029            self.send_compression_encodings.enable(encoding);
2030            self
2031        }
2032        /// Limits the maximum size of a decoded message.
2033        ///
2034        /// Default: `4MB`
2035        #[must_use]
2036        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2037            self.max_decoding_message_size = Some(limit);
2038            self
2039        }
2040        /// Limits the maximum size of an encoded message.
2041        ///
2042        /// Default: `usize::MAX`
2043        #[must_use]
2044        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2045            self.max_encoding_message_size = Some(limit);
2046            self
2047        }
2048    }
2049    impl<T, B> tonic::codegen::Service<http::Request<B>> for MountainServiceServer<T>
2050    where
2051        T: MountainService,
2052        B: Body + std::marker::Send + 'static,
2053        B::Error: Into<StdError> + std::marker::Send + 'static,
2054    {
2055        type Response = http::Response<tonic::body::Body>;
2056        type Error = std::convert::Infallible;
2057        type Future = BoxFuture<Self::Response, Self::Error>;
2058        fn poll_ready(
2059            &mut self,
2060            _cx: &mut Context<'_>,
2061        ) -> Poll<std::result::Result<(), Self::Error>> {
2062            Poll::Ready(Ok(()))
2063        }
2064        fn call(&mut self, req: http::Request<B>) -> Self::Future {
2065            match req.uri().path() {
2066                "/Vine.MountainService/ProcessCocoonRequest" => {
2067                    #[allow(non_camel_case_types)]
2068                    struct ProcessCocoonRequestSvc<T: MountainService>(pub Arc<T>);
2069                    impl<
2070                        T: MountainService,
2071                    > tonic::server::UnaryService<super::GenericRequest>
2072                    for ProcessCocoonRequestSvc<T> {
2073                        type Response = super::GenericResponse;
2074                        type Future = BoxFuture<
2075                            tonic::Response<Self::Response>,
2076                            tonic::Status,
2077                        >;
2078                        fn call(
2079                            &mut self,
2080                            request: tonic::Request<super::GenericRequest>,
2081                        ) -> Self::Future {
2082                            let inner = Arc::clone(&self.0);
2083                            let fut = async move {
2084                                <T as MountainService>::process_cocoon_request(
2085                                        &inner,
2086                                        request,
2087                                    )
2088                                    .await
2089                            };
2090                            Box::pin(fut)
2091                        }
2092                    }
2093                    let accept_compression_encodings = self.accept_compression_encodings;
2094                    let send_compression_encodings = self.send_compression_encodings;
2095                    let max_decoding_message_size = self.max_decoding_message_size;
2096                    let max_encoding_message_size = self.max_encoding_message_size;
2097                    let inner = self.inner.clone();
2098                    let fut = async move {
2099                        let method = ProcessCocoonRequestSvc(inner);
2100                        let codec = tonic_prost::ProstCodec::default();
2101                        let mut grpc = tonic::server::Grpc::new(codec)
2102                            .apply_compression_config(
2103                                accept_compression_encodings,
2104                                send_compression_encodings,
2105                            )
2106                            .apply_max_message_size_config(
2107                                max_decoding_message_size,
2108                                max_encoding_message_size,
2109                            );
2110                        let res = grpc.unary(method, req).await;
2111                        Ok(res)
2112                    };
2113                    Box::pin(fut)
2114                }
2115                "/Vine.MountainService/SendCocoonNotification" => {
2116                    #[allow(non_camel_case_types)]
2117                    struct SendCocoonNotificationSvc<T: MountainService>(pub Arc<T>);
2118                    impl<
2119                        T: MountainService,
2120                    > tonic::server::UnaryService<super::GenericNotification>
2121                    for SendCocoonNotificationSvc<T> {
2122                        type Response = super::Empty;
2123                        type Future = BoxFuture<
2124                            tonic::Response<Self::Response>,
2125                            tonic::Status,
2126                        >;
2127                        fn call(
2128                            &mut self,
2129                            request: tonic::Request<super::GenericNotification>,
2130                        ) -> Self::Future {
2131                            let inner = Arc::clone(&self.0);
2132                            let fut = async move {
2133                                <T as MountainService>::send_cocoon_notification(
2134                                        &inner,
2135                                        request,
2136                                    )
2137                                    .await
2138                            };
2139                            Box::pin(fut)
2140                        }
2141                    }
2142                    let accept_compression_encodings = self.accept_compression_encodings;
2143                    let send_compression_encodings = self.send_compression_encodings;
2144                    let max_decoding_message_size = self.max_decoding_message_size;
2145                    let max_encoding_message_size = self.max_encoding_message_size;
2146                    let inner = self.inner.clone();
2147                    let fut = async move {
2148                        let method = SendCocoonNotificationSvc(inner);
2149                        let codec = tonic_prost::ProstCodec::default();
2150                        let mut grpc = tonic::server::Grpc::new(codec)
2151                            .apply_compression_config(
2152                                accept_compression_encodings,
2153                                send_compression_encodings,
2154                            )
2155                            .apply_max_message_size_config(
2156                                max_decoding_message_size,
2157                                max_encoding_message_size,
2158                            );
2159                        let res = grpc.unary(method, req).await;
2160                        Ok(res)
2161                    };
2162                    Box::pin(fut)
2163                }
2164                "/Vine.MountainService/CancelOperation" => {
2165                    #[allow(non_camel_case_types)]
2166                    struct CancelOperationSvc<T: MountainService>(pub Arc<T>);
2167                    impl<
2168                        T: MountainService,
2169                    > tonic::server::UnaryService<super::CancelOperationRequest>
2170                    for CancelOperationSvc<T> {
2171                        type Response = super::Empty;
2172                        type Future = BoxFuture<
2173                            tonic::Response<Self::Response>,
2174                            tonic::Status,
2175                        >;
2176                        fn call(
2177                            &mut self,
2178                            request: tonic::Request<super::CancelOperationRequest>,
2179                        ) -> Self::Future {
2180                            let inner = Arc::clone(&self.0);
2181                            let fut = async move {
2182                                <T as MountainService>::cancel_operation(&inner, request)
2183                                    .await
2184                            };
2185                            Box::pin(fut)
2186                        }
2187                    }
2188                    let accept_compression_encodings = self.accept_compression_encodings;
2189                    let send_compression_encodings = self.send_compression_encodings;
2190                    let max_decoding_message_size = self.max_decoding_message_size;
2191                    let max_encoding_message_size = self.max_encoding_message_size;
2192                    let inner = self.inner.clone();
2193                    let fut = async move {
2194                        let method = CancelOperationSvc(inner);
2195                        let codec = tonic_prost::ProstCodec::default();
2196                        let mut grpc = tonic::server::Grpc::new(codec)
2197                            .apply_compression_config(
2198                                accept_compression_encodings,
2199                                send_compression_encodings,
2200                            )
2201                            .apply_max_message_size_config(
2202                                max_decoding_message_size,
2203                                max_encoding_message_size,
2204                            );
2205                        let res = grpc.unary(method, req).await;
2206                        Ok(res)
2207                    };
2208                    Box::pin(fut)
2209                }
2210                "/Vine.MountainService/OpenChannelFromCocoon" => {
2211                    #[allow(non_camel_case_types)]
2212                    struct OpenChannelFromCocoonSvc<T: MountainService>(pub Arc<T>);
2213                    impl<
2214                        T: MountainService,
2215                    > tonic::server::StreamingService<super::Envelope>
2216                    for OpenChannelFromCocoonSvc<T> {
2217                        type Response = super::Envelope;
2218                        type ResponseStream = T::OpenChannelFromCocoonStream;
2219                        type Future = BoxFuture<
2220                            tonic::Response<Self::ResponseStream>,
2221                            tonic::Status,
2222                        >;
2223                        fn call(
2224                            &mut self,
2225                            request: tonic::Request<tonic::Streaming<super::Envelope>>,
2226                        ) -> Self::Future {
2227                            let inner = Arc::clone(&self.0);
2228                            let fut = async move {
2229                                <T as MountainService>::open_channel_from_cocoon(
2230                                        &inner,
2231                                        request,
2232                                    )
2233                                    .await
2234                            };
2235                            Box::pin(fut)
2236                        }
2237                    }
2238                    let accept_compression_encodings = self.accept_compression_encodings;
2239                    let send_compression_encodings = self.send_compression_encodings;
2240                    let max_decoding_message_size = self.max_decoding_message_size;
2241                    let max_encoding_message_size = self.max_encoding_message_size;
2242                    let inner = self.inner.clone();
2243                    let fut = async move {
2244                        let method = OpenChannelFromCocoonSvc(inner);
2245                        let codec = tonic_prost::ProstCodec::default();
2246                        let mut grpc = tonic::server::Grpc::new(codec)
2247                            .apply_compression_config(
2248                                accept_compression_encodings,
2249                                send_compression_encodings,
2250                            )
2251                            .apply_max_message_size_config(
2252                                max_decoding_message_size,
2253                                max_encoding_message_size,
2254                            );
2255                        let res = grpc.streaming(method, req).await;
2256                        Ok(res)
2257                    };
2258                    Box::pin(fut)
2259                }
2260                _ => {
2261                    Box::pin(async move {
2262                        let mut response = http::Response::new(
2263                            tonic::body::Body::default(),
2264                        );
2265                        let headers = response.headers_mut();
2266                        headers
2267                            .insert(
2268                                tonic::Status::GRPC_STATUS,
2269                                (tonic::Code::Unimplemented as i32).into(),
2270                            );
2271                        headers
2272                            .insert(
2273                                http::header::CONTENT_TYPE,
2274                                tonic::metadata::GRPC_CONTENT_TYPE,
2275                            );
2276                        Ok(response)
2277                    })
2278                }
2279            }
2280        }
2281    }
2282    impl<T> Clone for MountainServiceServer<T> {
2283        fn clone(&self) -> Self {
2284            let inner = self.inner.clone();
2285            Self {
2286                inner,
2287                accept_compression_encodings: self.accept_compression_encodings,
2288                send_compression_encodings: self.send_compression_encodings,
2289                max_decoding_message_size: self.max_decoding_message_size,
2290                max_encoding_message_size: self.max_encoding_message_size,
2291            }
2292        }
2293    }
2294    /// Generated gRPC service name
2295    pub const SERVICE_NAME: &str = "Vine.MountainService";
2296    impl<T> tonic::server::NamedService for MountainServiceServer<T> {
2297        const NAME: &'static str = SERVICE_NAME;
2298    }
2299}
2300/// Generated client implementations.
2301pub mod cocoon_service_client {
2302    #![allow(
2303        unused_variables,
2304        dead_code,
2305        missing_docs,
2306        clippy::wildcard_imports,
2307        clippy::let_unit_value,
2308    )]
2309    use tonic::codegen::*;
2310    use tonic::codegen::http::Uri;
2311    /// Service running on the Cocoon sidecar, listening for requests from Mountain.
2312    #[derive(Debug, Clone)]
2313    pub struct CocoonServiceClient<T> {
2314        inner: tonic::client::Grpc<T>,
2315    }
2316    impl CocoonServiceClient<tonic::transport::Channel> {
2317        /// Attempt to create a new client by connecting to a given endpoint.
2318        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
2319        where
2320            D: TryInto<tonic::transport::Endpoint>,
2321            D::Error: Into<StdError>,
2322        {
2323            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
2324            Ok(Self::new(conn))
2325        }
2326    }
2327    impl<T> CocoonServiceClient<T>
2328    where
2329        T: tonic::client::GrpcService<tonic::body::Body>,
2330        T::Error: Into<StdError>,
2331        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
2332        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
2333    {
2334        pub fn new(inner: T) -> Self {
2335            let inner = tonic::client::Grpc::new(inner);
2336            Self { inner }
2337        }
2338        pub fn with_origin(inner: T, origin: Uri) -> Self {
2339            let inner = tonic::client::Grpc::with_origin(inner, origin);
2340            Self { inner }
2341        }
2342        pub fn with_interceptor<F>(
2343            inner: T,
2344            interceptor: F,
2345        ) -> CocoonServiceClient<InterceptedService<T, F>>
2346        where
2347            F: tonic::service::Interceptor,
2348            T::ResponseBody: Default,
2349            T: tonic::codegen::Service<
2350                http::Request<tonic::body::Body>,
2351                Response = http::Response<
2352                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
2353                >,
2354            >,
2355            <T as tonic::codegen::Service<
2356                http::Request<tonic::body::Body>,
2357            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
2358        {
2359            CocoonServiceClient::new(InterceptedService::new(inner, interceptor))
2360        }
2361        /// Compress requests with the given encoding.
2362        ///
2363        /// This requires the server to support it otherwise it might respond with an
2364        /// error.
2365        #[must_use]
2366        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2367            self.inner = self.inner.send_compressed(encoding);
2368            self
2369        }
2370        /// Enable decompressing responses.
2371        #[must_use]
2372        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2373            self.inner = self.inner.accept_compressed(encoding);
2374            self
2375        }
2376        /// Limits the maximum size of a decoded message.
2377        ///
2378        /// Default: `4MB`
2379        #[must_use]
2380        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2381            self.inner = self.inner.max_decoding_message_size(limit);
2382            self
2383        }
2384        /// Limits the maximum size of an encoded message.
2385        ///
2386        /// Default: `usize::MAX`
2387        #[must_use]
2388        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2389            self.inner = self.inner.max_encoding_message_size(limit);
2390            self
2391        }
2392        /// A generic request-response method for Mountain to call a function on Cocoon.
2393        pub async fn process_mountain_request(
2394            &mut self,
2395            request: impl tonic::IntoRequest<super::GenericRequest>,
2396        ) -> std::result::Result<
2397            tonic::Response<super::GenericResponse>,
2398            tonic::Status,
2399        > {
2400            self.inner
2401                .ready()
2402                .await
2403                .map_err(|e| {
2404                    tonic::Status::unknown(
2405                        format!("Service was not ready: {}", e.into()),
2406                    )
2407                })?;
2408            let codec = tonic_prost::ProstCodec::default();
2409            let path = http::uri::PathAndQuery::from_static(
2410                "/Vine.CocoonService/ProcessMountainRequest",
2411            );
2412            let mut req = request.into_request();
2413            req.extensions_mut()
2414                .insert(GrpcMethod::new("Vine.CocoonService", "ProcessMountainRequest"));
2415            self.inner.unary(req, path, codec).await
2416        }
2417        /// A generic fire-and-forget method for Mountain to send a notification to Cocoon.
2418        pub async fn send_mountain_notification(
2419            &mut self,
2420            request: impl tonic::IntoRequest<super::GenericNotification>,
2421        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2422            self.inner
2423                .ready()
2424                .await
2425                .map_err(|e| {
2426                    tonic::Status::unknown(
2427                        format!("Service was not ready: {}", e.into()),
2428                    )
2429                })?;
2430            let codec = tonic_prost::ProstCodec::default();
2431            let path = http::uri::PathAndQuery::from_static(
2432                "/Vine.CocoonService/SendMountainNotification",
2433            );
2434            let mut req = request.into_request();
2435            req.extensions_mut()
2436                .insert(
2437                    GrpcMethod::new("Vine.CocoonService", "SendMountainNotification"),
2438                );
2439            self.inner.unary(req, path, codec).await
2440        }
2441        /// A method for Mountain to request that Cocoon cancel a long-running operation.
2442        pub async fn cancel_operation(
2443            &mut self,
2444            request: impl tonic::IntoRequest<super::CancelOperationRequest>,
2445        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2446            self.inner
2447                .ready()
2448                .await
2449                .map_err(|e| {
2450                    tonic::Status::unknown(
2451                        format!("Service was not ready: {}", e.into()),
2452                    )
2453                })?;
2454            let codec = tonic_prost::ProstCodec::default();
2455            let path = http::uri::PathAndQuery::from_static(
2456                "/Vine.CocoonService/CancelOperation",
2457            );
2458            let mut req = request.into_request();
2459            req.extensions_mut()
2460                .insert(GrpcMethod::new("Vine.CocoonService", "CancelOperation"));
2461            self.inner.unary(req, path, codec).await
2462        }
2463        /// LAND-PATCH B7-S6 P2: bidirectional streaming channel (mirror of
2464        /// MountainService::OpenChannelFromCocoon). Mountain opens this
2465        /// stream once per Cocoon connection; all subsequent traffic
2466        /// multiplexes over it. Reverses the call direction so Mountain is
2467        /// the streaming initiator (which matches the typical "client
2468        /// opens stream, server replies" gRPC idiom).
2469        pub async fn open_channel_from_mountain(
2470            &mut self,
2471            request: impl tonic::IntoStreamingRequest<Message = super::Envelope>,
2472        ) -> std::result::Result<
2473            tonic::Response<tonic::codec::Streaming<super::Envelope>>,
2474            tonic::Status,
2475        > {
2476            self.inner
2477                .ready()
2478                .await
2479                .map_err(|e| {
2480                    tonic::Status::unknown(
2481                        format!("Service was not ready: {}", e.into()),
2482                    )
2483                })?;
2484            let codec = tonic_prost::ProstCodec::default();
2485            let path = http::uri::PathAndQuery::from_static(
2486                "/Vine.CocoonService/OpenChannelFromMountain",
2487            );
2488            let mut req = request.into_streaming_request();
2489            req.extensions_mut()
2490                .insert(
2491                    GrpcMethod::new("Vine.CocoonService", "OpenChannelFromMountain"),
2492                );
2493            self.inner.streaming(req, path, codec).await
2494        }
2495        /// Handshake - Called by Cocoon to signal readiness
2496        pub async fn initial_handshake(
2497            &mut self,
2498            request: impl tonic::IntoRequest<super::Empty>,
2499        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2500            self.inner
2501                .ready()
2502                .await
2503                .map_err(|e| {
2504                    tonic::Status::unknown(
2505                        format!("Service was not ready: {}", e.into()),
2506                    )
2507                })?;
2508            let codec = tonic_prost::ProstCodec::default();
2509            let path = http::uri::PathAndQuery::from_static(
2510                "/Vine.CocoonService/InitialHandshake",
2511            );
2512            let mut req = request.into_request();
2513            req.extensions_mut()
2514                .insert(GrpcMethod::new("Vine.CocoonService", "InitialHandshake"));
2515            self.inner.unary(req, path, codec).await
2516        }
2517        /// Initialize Extension Host - Mountain sends initialization data to Cocoon
2518        pub async fn init_extension_host(
2519            &mut self,
2520            request: impl tonic::IntoRequest<super::InitExtensionHostRequest>,
2521        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2522            self.inner
2523                .ready()
2524                .await
2525                .map_err(|e| {
2526                    tonic::Status::unknown(
2527                        format!("Service was not ready: {}", e.into()),
2528                    )
2529                })?;
2530            let codec = tonic_prost::ProstCodec::default();
2531            let path = http::uri::PathAndQuery::from_static(
2532                "/Vine.CocoonService/InitExtensionHost",
2533            );
2534            let mut req = request.into_request();
2535            req.extensions_mut()
2536                .insert(GrpcMethod::new("Vine.CocoonService", "InitExtensionHost"));
2537            self.inner.unary(req, path, codec).await
2538        }
2539        /// Register Command - Cocoon registers an extension command
2540        pub async fn register_command(
2541            &mut self,
2542            request: impl tonic::IntoRequest<super::RegisterCommandRequest>,
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/RegisterCommand",
2555            );
2556            let mut req = request.into_request();
2557            req.extensions_mut()
2558                .insert(GrpcMethod::new("Vine.CocoonService", "RegisterCommand"));
2559            self.inner.unary(req, path, codec).await
2560        }
2561        /// Execute Contributed Command - Mountain executes an extension command
2562        pub async fn execute_contributed_command(
2563            &mut self,
2564            request: impl tonic::IntoRequest<super::ExecuteCommandRequest>,
2565        ) -> std::result::Result<
2566            tonic::Response<super::ExecuteCommandResponse>,
2567            tonic::Status,
2568        > {
2569            self.inner
2570                .ready()
2571                .await
2572                .map_err(|e| {
2573                    tonic::Status::unknown(
2574                        format!("Service was not ready: {}", e.into()),
2575                    )
2576                })?;
2577            let codec = tonic_prost::ProstCodec::default();
2578            let path = http::uri::PathAndQuery::from_static(
2579                "/Vine.CocoonService/ExecuteContributedCommand",
2580            );
2581            let mut req = request.into_request();
2582            req.extensions_mut()
2583                .insert(
2584                    GrpcMethod::new("Vine.CocoonService", "ExecuteContributedCommand"),
2585                );
2586            self.inner.unary(req, path, codec).await
2587        }
2588        /// Unregister Command - Unregister a previously registered command
2589        pub async fn unregister_command(
2590            &mut self,
2591            request: impl tonic::IntoRequest<super::UnregisterCommandRequest>,
2592        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2593            self.inner
2594                .ready()
2595                .await
2596                .map_err(|e| {
2597                    tonic::Status::unknown(
2598                        format!("Service was not ready: {}", e.into()),
2599                    )
2600                })?;
2601            let codec = tonic_prost::ProstCodec::default();
2602            let path = http::uri::PathAndQuery::from_static(
2603                "/Vine.CocoonService/UnregisterCommand",
2604            );
2605            let mut req = request.into_request();
2606            req.extensions_mut()
2607                .insert(GrpcMethod::new("Vine.CocoonService", "UnregisterCommand"));
2608            self.inner.unary(req, path, codec).await
2609        }
2610        /// Register Hover Provider - Register a hover provider
2611        pub async fn register_hover_provider(
2612            &mut self,
2613            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2614        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2615            self.inner
2616                .ready()
2617                .await
2618                .map_err(|e| {
2619                    tonic::Status::unknown(
2620                        format!("Service was not ready: {}", e.into()),
2621                    )
2622                })?;
2623            let codec = tonic_prost::ProstCodec::default();
2624            let path = http::uri::PathAndQuery::from_static(
2625                "/Vine.CocoonService/RegisterHoverProvider",
2626            );
2627            let mut req = request.into_request();
2628            req.extensions_mut()
2629                .insert(GrpcMethod::new("Vine.CocoonService", "RegisterHoverProvider"));
2630            self.inner.unary(req, path, codec).await
2631        }
2632        /// Provide Hover - Request hover information
2633        pub async fn provide_hover(
2634            &mut self,
2635            request: impl tonic::IntoRequest<super::ProvideHoverRequest>,
2636        ) -> std::result::Result<
2637            tonic::Response<super::ProvideHoverResponse>,
2638            tonic::Status,
2639        > {
2640            self.inner
2641                .ready()
2642                .await
2643                .map_err(|e| {
2644                    tonic::Status::unknown(
2645                        format!("Service was not ready: {}", e.into()),
2646                    )
2647                })?;
2648            let codec = tonic_prost::ProstCodec::default();
2649            let path = http::uri::PathAndQuery::from_static(
2650                "/Vine.CocoonService/ProvideHover",
2651            );
2652            let mut req = request.into_request();
2653            req.extensions_mut()
2654                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideHover"));
2655            self.inner.unary(req, path, codec).await
2656        }
2657        /// Register Completion Item Provider - Register a completion provider
2658        pub async fn register_completion_item_provider(
2659            &mut self,
2660            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2661        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2662            self.inner
2663                .ready()
2664                .await
2665                .map_err(|e| {
2666                    tonic::Status::unknown(
2667                        format!("Service was not ready: {}", e.into()),
2668                    )
2669                })?;
2670            let codec = tonic_prost::ProstCodec::default();
2671            let path = http::uri::PathAndQuery::from_static(
2672                "/Vine.CocoonService/RegisterCompletionItemProvider",
2673            );
2674            let mut req = request.into_request();
2675            req.extensions_mut()
2676                .insert(
2677                    GrpcMethod::new(
2678                        "Vine.CocoonService",
2679                        "RegisterCompletionItemProvider",
2680                    ),
2681                );
2682            self.inner.unary(req, path, codec).await
2683        }
2684        /// Provide Completion Items - Request completion items
2685        pub async fn provide_completion_items(
2686            &mut self,
2687            request: impl tonic::IntoRequest<super::ProvideCompletionItemsRequest>,
2688        ) -> std::result::Result<
2689            tonic::Response<super::ProvideCompletionItemsResponse>,
2690            tonic::Status,
2691        > {
2692            self.inner
2693                .ready()
2694                .await
2695                .map_err(|e| {
2696                    tonic::Status::unknown(
2697                        format!("Service was not ready: {}", e.into()),
2698                    )
2699                })?;
2700            let codec = tonic_prost::ProstCodec::default();
2701            let path = http::uri::PathAndQuery::from_static(
2702                "/Vine.CocoonService/ProvideCompletionItems",
2703            );
2704            let mut req = request.into_request();
2705            req.extensions_mut()
2706                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideCompletionItems"));
2707            self.inner.unary(req, path, codec).await
2708        }
2709        /// Register Definition Provider - Register a definition provider
2710        pub async fn register_definition_provider(
2711            &mut self,
2712            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2713        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2714            self.inner
2715                .ready()
2716                .await
2717                .map_err(|e| {
2718                    tonic::Status::unknown(
2719                        format!("Service was not ready: {}", e.into()),
2720                    )
2721                })?;
2722            let codec = tonic_prost::ProstCodec::default();
2723            let path = http::uri::PathAndQuery::from_static(
2724                "/Vine.CocoonService/RegisterDefinitionProvider",
2725            );
2726            let mut req = request.into_request();
2727            req.extensions_mut()
2728                .insert(
2729                    GrpcMethod::new("Vine.CocoonService", "RegisterDefinitionProvider"),
2730                );
2731            self.inner.unary(req, path, codec).await
2732        }
2733        /// Provide Definition - Request definition location
2734        pub async fn provide_definition(
2735            &mut self,
2736            request: impl tonic::IntoRequest<super::ProvideDefinitionRequest>,
2737        ) -> std::result::Result<
2738            tonic::Response<super::ProvideDefinitionResponse>,
2739            tonic::Status,
2740        > {
2741            self.inner
2742                .ready()
2743                .await
2744                .map_err(|e| {
2745                    tonic::Status::unknown(
2746                        format!("Service was not ready: {}", e.into()),
2747                    )
2748                })?;
2749            let codec = tonic_prost::ProstCodec::default();
2750            let path = http::uri::PathAndQuery::from_static(
2751                "/Vine.CocoonService/ProvideDefinition",
2752            );
2753            let mut req = request.into_request();
2754            req.extensions_mut()
2755                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideDefinition"));
2756            self.inner.unary(req, path, codec).await
2757        }
2758        /// Register Reference Provider - Register a reference provider
2759        pub async fn register_reference_provider(
2760            &mut self,
2761            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2762        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2763            self.inner
2764                .ready()
2765                .await
2766                .map_err(|e| {
2767                    tonic::Status::unknown(
2768                        format!("Service was not ready: {}", e.into()),
2769                    )
2770                })?;
2771            let codec = tonic_prost::ProstCodec::default();
2772            let path = http::uri::PathAndQuery::from_static(
2773                "/Vine.CocoonService/RegisterReferenceProvider",
2774            );
2775            let mut req = request.into_request();
2776            req.extensions_mut()
2777                .insert(
2778                    GrpcMethod::new("Vine.CocoonService", "RegisterReferenceProvider"),
2779                );
2780            self.inner.unary(req, path, codec).await
2781        }
2782        /// Provide References - Request references
2783        pub async fn provide_references(
2784            &mut self,
2785            request: impl tonic::IntoRequest<super::ProvideReferencesRequest>,
2786        ) -> std::result::Result<
2787            tonic::Response<super::ProvideReferencesResponse>,
2788            tonic::Status,
2789        > {
2790            self.inner
2791                .ready()
2792                .await
2793                .map_err(|e| {
2794                    tonic::Status::unknown(
2795                        format!("Service was not ready: {}", e.into()),
2796                    )
2797                })?;
2798            let codec = tonic_prost::ProstCodec::default();
2799            let path = http::uri::PathAndQuery::from_static(
2800                "/Vine.CocoonService/ProvideReferences",
2801            );
2802            let mut req = request.into_request();
2803            req.extensions_mut()
2804                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideReferences"));
2805            self.inner.unary(req, path, codec).await
2806        }
2807        /// Register Code Actions Provider - Register code actions provider
2808        pub async fn register_code_actions_provider(
2809            &mut self,
2810            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2811        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2812            self.inner
2813                .ready()
2814                .await
2815                .map_err(|e| {
2816                    tonic::Status::unknown(
2817                        format!("Service was not ready: {}", e.into()),
2818                    )
2819                })?;
2820            let codec = tonic_prost::ProstCodec::default();
2821            let path = http::uri::PathAndQuery::from_static(
2822                "/Vine.CocoonService/RegisterCodeActionsProvider",
2823            );
2824            let mut req = request.into_request();
2825            req.extensions_mut()
2826                .insert(
2827                    GrpcMethod::new("Vine.CocoonService", "RegisterCodeActionsProvider"),
2828                );
2829            self.inner.unary(req, path, codec).await
2830        }
2831        /// Provide Code Actions - Request code actions
2832        pub async fn provide_code_actions(
2833            &mut self,
2834            request: impl tonic::IntoRequest<super::ProvideCodeActionsRequest>,
2835        ) -> std::result::Result<
2836            tonic::Response<super::ProvideCodeActionsResponse>,
2837            tonic::Status,
2838        > {
2839            self.inner
2840                .ready()
2841                .await
2842                .map_err(|e| {
2843                    tonic::Status::unknown(
2844                        format!("Service was not ready: {}", e.into()),
2845                    )
2846                })?;
2847            let codec = tonic_prost::ProstCodec::default();
2848            let path = http::uri::PathAndQuery::from_static(
2849                "/Vine.CocoonService/ProvideCodeActions",
2850            );
2851            let mut req = request.into_request();
2852            req.extensions_mut()
2853                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideCodeActions"));
2854            self.inner.unary(req, path, codec).await
2855        }
2856        /// Register Document Highlight Provider
2857        pub async fn register_document_highlight_provider(
2858            &mut self,
2859            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2860        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2861            self.inner
2862                .ready()
2863                .await
2864                .map_err(|e| {
2865                    tonic::Status::unknown(
2866                        format!("Service was not ready: {}", e.into()),
2867                    )
2868                })?;
2869            let codec = tonic_prost::ProstCodec::default();
2870            let path = http::uri::PathAndQuery::from_static(
2871                "/Vine.CocoonService/RegisterDocumentHighlightProvider",
2872            );
2873            let mut req = request.into_request();
2874            req.extensions_mut()
2875                .insert(
2876                    GrpcMethod::new(
2877                        "Vine.CocoonService",
2878                        "RegisterDocumentHighlightProvider",
2879                    ),
2880                );
2881            self.inner.unary(req, path, codec).await
2882        }
2883        /// Provide Document Highlights
2884        pub async fn provide_document_highlights(
2885            &mut self,
2886            request: impl tonic::IntoRequest<super::ProvideDocumentHighlightsRequest>,
2887        ) -> std::result::Result<
2888            tonic::Response<super::ProvideDocumentHighlightsResponse>,
2889            tonic::Status,
2890        > {
2891            self.inner
2892                .ready()
2893                .await
2894                .map_err(|e| {
2895                    tonic::Status::unknown(
2896                        format!("Service was not ready: {}", e.into()),
2897                    )
2898                })?;
2899            let codec = tonic_prost::ProstCodec::default();
2900            let path = http::uri::PathAndQuery::from_static(
2901                "/Vine.CocoonService/ProvideDocumentHighlights",
2902            );
2903            let mut req = request.into_request();
2904            req.extensions_mut()
2905                .insert(
2906                    GrpcMethod::new("Vine.CocoonService", "ProvideDocumentHighlights"),
2907                );
2908            self.inner.unary(req, path, codec).await
2909        }
2910        /// Register Document Symbol Provider
2911        pub async fn register_document_symbol_provider(
2912            &mut self,
2913            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2914        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2915            self.inner
2916                .ready()
2917                .await
2918                .map_err(|e| {
2919                    tonic::Status::unknown(
2920                        format!("Service was not ready: {}", e.into()),
2921                    )
2922                })?;
2923            let codec = tonic_prost::ProstCodec::default();
2924            let path = http::uri::PathAndQuery::from_static(
2925                "/Vine.CocoonService/RegisterDocumentSymbolProvider",
2926            );
2927            let mut req = request.into_request();
2928            req.extensions_mut()
2929                .insert(
2930                    GrpcMethod::new(
2931                        "Vine.CocoonService",
2932                        "RegisterDocumentSymbolProvider",
2933                    ),
2934                );
2935            self.inner.unary(req, path, codec).await
2936        }
2937        /// Provide Document Symbols
2938        pub async fn provide_document_symbols(
2939            &mut self,
2940            request: impl tonic::IntoRequest<super::ProvideDocumentSymbolsRequest>,
2941        ) -> std::result::Result<
2942            tonic::Response<super::ProvideDocumentSymbolsResponse>,
2943            tonic::Status,
2944        > {
2945            self.inner
2946                .ready()
2947                .await
2948                .map_err(|e| {
2949                    tonic::Status::unknown(
2950                        format!("Service was not ready: {}", e.into()),
2951                    )
2952                })?;
2953            let codec = tonic_prost::ProstCodec::default();
2954            let path = http::uri::PathAndQuery::from_static(
2955                "/Vine.CocoonService/ProvideDocumentSymbols",
2956            );
2957            let mut req = request.into_request();
2958            req.extensions_mut()
2959                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideDocumentSymbols"));
2960            self.inner.unary(req, path, codec).await
2961        }
2962        /// Register Workspace Symbol Provider
2963        pub async fn register_workspace_symbol_provider(
2964            &mut self,
2965            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
2966        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2967            self.inner
2968                .ready()
2969                .await
2970                .map_err(|e| {
2971                    tonic::Status::unknown(
2972                        format!("Service was not ready: {}", e.into()),
2973                    )
2974                })?;
2975            let codec = tonic_prost::ProstCodec::default();
2976            let path = http::uri::PathAndQuery::from_static(
2977                "/Vine.CocoonService/RegisterWorkspaceSymbolProvider",
2978            );
2979            let mut req = request.into_request();
2980            req.extensions_mut()
2981                .insert(
2982                    GrpcMethod::new(
2983                        "Vine.CocoonService",
2984                        "RegisterWorkspaceSymbolProvider",
2985                    ),
2986                );
2987            self.inner.unary(req, path, codec).await
2988        }
2989        /// Provide Workspace Symbols
2990        pub async fn provide_workspace_symbols(
2991            &mut self,
2992            request: impl tonic::IntoRequest<super::ProvideWorkspaceSymbolsRequest>,
2993        ) -> std::result::Result<
2994            tonic::Response<super::ProvideWorkspaceSymbolsResponse>,
2995            tonic::Status,
2996        > {
2997            self.inner
2998                .ready()
2999                .await
3000                .map_err(|e| {
3001                    tonic::Status::unknown(
3002                        format!("Service was not ready: {}", e.into()),
3003                    )
3004                })?;
3005            let codec = tonic_prost::ProstCodec::default();
3006            let path = http::uri::PathAndQuery::from_static(
3007                "/Vine.CocoonService/ProvideWorkspaceSymbols",
3008            );
3009            let mut req = request.into_request();
3010            req.extensions_mut()
3011                .insert(
3012                    GrpcMethod::new("Vine.CocoonService", "ProvideWorkspaceSymbols"),
3013                );
3014            self.inner.unary(req, path, codec).await
3015        }
3016        /// Register Rename Provider
3017        pub async fn register_rename_provider(
3018            &mut self,
3019            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3020        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3021            self.inner
3022                .ready()
3023                .await
3024                .map_err(|e| {
3025                    tonic::Status::unknown(
3026                        format!("Service was not ready: {}", e.into()),
3027                    )
3028                })?;
3029            let codec = tonic_prost::ProstCodec::default();
3030            let path = http::uri::PathAndQuery::from_static(
3031                "/Vine.CocoonService/RegisterRenameProvider",
3032            );
3033            let mut req = request.into_request();
3034            req.extensions_mut()
3035                .insert(GrpcMethod::new("Vine.CocoonService", "RegisterRenameProvider"));
3036            self.inner.unary(req, path, codec).await
3037        }
3038        /// Provide Rename Edits
3039        pub async fn provide_rename_edits(
3040            &mut self,
3041            request: impl tonic::IntoRequest<super::ProvideRenameEditsRequest>,
3042        ) -> std::result::Result<
3043            tonic::Response<super::ProvideRenameEditsResponse>,
3044            tonic::Status,
3045        > {
3046            self.inner
3047                .ready()
3048                .await
3049                .map_err(|e| {
3050                    tonic::Status::unknown(
3051                        format!("Service was not ready: {}", e.into()),
3052                    )
3053                })?;
3054            let codec = tonic_prost::ProstCodec::default();
3055            let path = http::uri::PathAndQuery::from_static(
3056                "/Vine.CocoonService/ProvideRenameEdits",
3057            );
3058            let mut req = request.into_request();
3059            req.extensions_mut()
3060                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideRenameEdits"));
3061            self.inner.unary(req, path, codec).await
3062        }
3063        /// Register Document Formatting Provider
3064        pub async fn register_document_formatting_provider(
3065            &mut self,
3066            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3067        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3068            self.inner
3069                .ready()
3070                .await
3071                .map_err(|e| {
3072                    tonic::Status::unknown(
3073                        format!("Service was not ready: {}", e.into()),
3074                    )
3075                })?;
3076            let codec = tonic_prost::ProstCodec::default();
3077            let path = http::uri::PathAndQuery::from_static(
3078                "/Vine.CocoonService/RegisterDocumentFormattingProvider",
3079            );
3080            let mut req = request.into_request();
3081            req.extensions_mut()
3082                .insert(
3083                    GrpcMethod::new(
3084                        "Vine.CocoonService",
3085                        "RegisterDocumentFormattingProvider",
3086                    ),
3087                );
3088            self.inner.unary(req, path, codec).await
3089        }
3090        /// Provide Document Formatting
3091        pub async fn provide_document_formatting(
3092            &mut self,
3093            request: impl tonic::IntoRequest<super::ProvideDocumentFormattingRequest>,
3094        ) -> std::result::Result<
3095            tonic::Response<super::ProvideDocumentFormattingResponse>,
3096            tonic::Status,
3097        > {
3098            self.inner
3099                .ready()
3100                .await
3101                .map_err(|e| {
3102                    tonic::Status::unknown(
3103                        format!("Service was not ready: {}", e.into()),
3104                    )
3105                })?;
3106            let codec = tonic_prost::ProstCodec::default();
3107            let path = http::uri::PathAndQuery::from_static(
3108                "/Vine.CocoonService/ProvideDocumentFormatting",
3109            );
3110            let mut req = request.into_request();
3111            req.extensions_mut()
3112                .insert(
3113                    GrpcMethod::new("Vine.CocoonService", "ProvideDocumentFormatting"),
3114                );
3115            self.inner.unary(req, path, codec).await
3116        }
3117        /// Register Document Range Formatting Provider
3118        pub async fn register_document_range_formatting_provider(
3119            &mut self,
3120            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3121        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3122            self.inner
3123                .ready()
3124                .await
3125                .map_err(|e| {
3126                    tonic::Status::unknown(
3127                        format!("Service was not ready: {}", e.into()),
3128                    )
3129                })?;
3130            let codec = tonic_prost::ProstCodec::default();
3131            let path = http::uri::PathAndQuery::from_static(
3132                "/Vine.CocoonService/RegisterDocumentRangeFormattingProvider",
3133            );
3134            let mut req = request.into_request();
3135            req.extensions_mut()
3136                .insert(
3137                    GrpcMethod::new(
3138                        "Vine.CocoonService",
3139                        "RegisterDocumentRangeFormattingProvider",
3140                    ),
3141                );
3142            self.inner.unary(req, path, codec).await
3143        }
3144        /// Provide Document Range Formatting
3145        pub async fn provide_document_range_formatting(
3146            &mut self,
3147            request: impl tonic::IntoRequest<
3148                super::ProvideDocumentRangeFormattingRequest,
3149            >,
3150        ) -> std::result::Result<
3151            tonic::Response<super::ProvideDocumentRangeFormattingResponse>,
3152            tonic::Status,
3153        > {
3154            self.inner
3155                .ready()
3156                .await
3157                .map_err(|e| {
3158                    tonic::Status::unknown(
3159                        format!("Service was not ready: {}", e.into()),
3160                    )
3161                })?;
3162            let codec = tonic_prost::ProstCodec::default();
3163            let path = http::uri::PathAndQuery::from_static(
3164                "/Vine.CocoonService/ProvideDocumentRangeFormatting",
3165            );
3166            let mut req = request.into_request();
3167            req.extensions_mut()
3168                .insert(
3169                    GrpcMethod::new(
3170                        "Vine.CocoonService",
3171                        "ProvideDocumentRangeFormatting",
3172                    ),
3173                );
3174            self.inner.unary(req, path, codec).await
3175        }
3176        /// Register On Type Formatting Provider
3177        pub async fn register_on_type_formatting_provider(
3178            &mut self,
3179            request: impl tonic::IntoRequest<
3180                super::RegisterOnTypeFormattingProviderRequest,
3181            >,
3182        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3183            self.inner
3184                .ready()
3185                .await
3186                .map_err(|e| {
3187                    tonic::Status::unknown(
3188                        format!("Service was not ready: {}", e.into()),
3189                    )
3190                })?;
3191            let codec = tonic_prost::ProstCodec::default();
3192            let path = http::uri::PathAndQuery::from_static(
3193                "/Vine.CocoonService/RegisterOnTypeFormattingProvider",
3194            );
3195            let mut req = request.into_request();
3196            req.extensions_mut()
3197                .insert(
3198                    GrpcMethod::new(
3199                        "Vine.CocoonService",
3200                        "RegisterOnTypeFormattingProvider",
3201                    ),
3202                );
3203            self.inner.unary(req, path, codec).await
3204        }
3205        /// Provide On Type Formatting
3206        pub async fn provide_on_type_formatting(
3207            &mut self,
3208            request: impl tonic::IntoRequest<super::ProvideOnTypeFormattingRequest>,
3209        ) -> std::result::Result<
3210            tonic::Response<super::ProvideOnTypeFormattingResponse>,
3211            tonic::Status,
3212        > {
3213            self.inner
3214                .ready()
3215                .await
3216                .map_err(|e| {
3217                    tonic::Status::unknown(
3218                        format!("Service was not ready: {}", e.into()),
3219                    )
3220                })?;
3221            let codec = tonic_prost::ProstCodec::default();
3222            let path = http::uri::PathAndQuery::from_static(
3223                "/Vine.CocoonService/ProvideOnTypeFormatting",
3224            );
3225            let mut req = request.into_request();
3226            req.extensions_mut()
3227                .insert(
3228                    GrpcMethod::new("Vine.CocoonService", "ProvideOnTypeFormatting"),
3229                );
3230            self.inner.unary(req, path, codec).await
3231        }
3232        /// Register Signature Help Provider
3233        pub async fn register_signature_help_provider(
3234            &mut self,
3235            request: impl tonic::IntoRequest<super::RegisterSignatureHelpProviderRequest>,
3236        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3237            self.inner
3238                .ready()
3239                .await
3240                .map_err(|e| {
3241                    tonic::Status::unknown(
3242                        format!("Service was not ready: {}", e.into()),
3243                    )
3244                })?;
3245            let codec = tonic_prost::ProstCodec::default();
3246            let path = http::uri::PathAndQuery::from_static(
3247                "/Vine.CocoonService/RegisterSignatureHelpProvider",
3248            );
3249            let mut req = request.into_request();
3250            req.extensions_mut()
3251                .insert(
3252                    GrpcMethod::new(
3253                        "Vine.CocoonService",
3254                        "RegisterSignatureHelpProvider",
3255                    ),
3256                );
3257            self.inner.unary(req, path, codec).await
3258        }
3259        /// Provide Signature Help
3260        pub async fn provide_signature_help(
3261            &mut self,
3262            request: impl tonic::IntoRequest<super::ProvideSignatureHelpRequest>,
3263        ) -> std::result::Result<
3264            tonic::Response<super::ProvideSignatureHelpResponse>,
3265            tonic::Status,
3266        > {
3267            self.inner
3268                .ready()
3269                .await
3270                .map_err(|e| {
3271                    tonic::Status::unknown(
3272                        format!("Service was not ready: {}", e.into()),
3273                    )
3274                })?;
3275            let codec = tonic_prost::ProstCodec::default();
3276            let path = http::uri::PathAndQuery::from_static(
3277                "/Vine.CocoonService/ProvideSignatureHelp",
3278            );
3279            let mut req = request.into_request();
3280            req.extensions_mut()
3281                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideSignatureHelp"));
3282            self.inner.unary(req, path, codec).await
3283        }
3284        /// Register Code Lens Provider
3285        pub async fn register_code_lens_provider(
3286            &mut self,
3287            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3288        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3289            self.inner
3290                .ready()
3291                .await
3292                .map_err(|e| {
3293                    tonic::Status::unknown(
3294                        format!("Service was not ready: {}", e.into()),
3295                    )
3296                })?;
3297            let codec = tonic_prost::ProstCodec::default();
3298            let path = http::uri::PathAndQuery::from_static(
3299                "/Vine.CocoonService/RegisterCodeLensProvider",
3300            );
3301            let mut req = request.into_request();
3302            req.extensions_mut()
3303                .insert(
3304                    GrpcMethod::new("Vine.CocoonService", "RegisterCodeLensProvider"),
3305                );
3306            self.inner.unary(req, path, codec).await
3307        }
3308        /// Provide Code Lenses
3309        pub async fn provide_code_lenses(
3310            &mut self,
3311            request: impl tonic::IntoRequest<super::ProvideCodeLensesRequest>,
3312        ) -> std::result::Result<
3313            tonic::Response<super::ProvideCodeLensesResponse>,
3314            tonic::Status,
3315        > {
3316            self.inner
3317                .ready()
3318                .await
3319                .map_err(|e| {
3320                    tonic::Status::unknown(
3321                        format!("Service was not ready: {}", e.into()),
3322                    )
3323                })?;
3324            let codec = tonic_prost::ProstCodec::default();
3325            let path = http::uri::PathAndQuery::from_static(
3326                "/Vine.CocoonService/ProvideCodeLenses",
3327            );
3328            let mut req = request.into_request();
3329            req.extensions_mut()
3330                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideCodeLenses"));
3331            self.inner.unary(req, path, codec).await
3332        }
3333        /// Register Folding Range Provider
3334        pub async fn register_folding_range_provider(
3335            &mut self,
3336            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3337        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3338            self.inner
3339                .ready()
3340                .await
3341                .map_err(|e| {
3342                    tonic::Status::unknown(
3343                        format!("Service was not ready: {}", e.into()),
3344                    )
3345                })?;
3346            let codec = tonic_prost::ProstCodec::default();
3347            let path = http::uri::PathAndQuery::from_static(
3348                "/Vine.CocoonService/RegisterFoldingRangeProvider",
3349            );
3350            let mut req = request.into_request();
3351            req.extensions_mut()
3352                .insert(
3353                    GrpcMethod::new("Vine.CocoonService", "RegisterFoldingRangeProvider"),
3354                );
3355            self.inner.unary(req, path, codec).await
3356        }
3357        /// Provide Folding Ranges
3358        pub async fn provide_folding_ranges(
3359            &mut self,
3360            request: impl tonic::IntoRequest<super::ProvideFoldingRangesRequest>,
3361        ) -> std::result::Result<
3362            tonic::Response<super::ProvideFoldingRangesResponse>,
3363            tonic::Status,
3364        > {
3365            self.inner
3366                .ready()
3367                .await
3368                .map_err(|e| {
3369                    tonic::Status::unknown(
3370                        format!("Service was not ready: {}", e.into()),
3371                    )
3372                })?;
3373            let codec = tonic_prost::ProstCodec::default();
3374            let path = http::uri::PathAndQuery::from_static(
3375                "/Vine.CocoonService/ProvideFoldingRanges",
3376            );
3377            let mut req = request.into_request();
3378            req.extensions_mut()
3379                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideFoldingRanges"));
3380            self.inner.unary(req, path, codec).await
3381        }
3382        /// Register Selection Range Provider
3383        pub async fn register_selection_range_provider(
3384            &mut self,
3385            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3386        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3387            self.inner
3388                .ready()
3389                .await
3390                .map_err(|e| {
3391                    tonic::Status::unknown(
3392                        format!("Service was not ready: {}", e.into()),
3393                    )
3394                })?;
3395            let codec = tonic_prost::ProstCodec::default();
3396            let path = http::uri::PathAndQuery::from_static(
3397                "/Vine.CocoonService/RegisterSelectionRangeProvider",
3398            );
3399            let mut req = request.into_request();
3400            req.extensions_mut()
3401                .insert(
3402                    GrpcMethod::new(
3403                        "Vine.CocoonService",
3404                        "RegisterSelectionRangeProvider",
3405                    ),
3406                );
3407            self.inner.unary(req, path, codec).await
3408        }
3409        /// Provide Selection Ranges
3410        pub async fn provide_selection_ranges(
3411            &mut self,
3412            request: impl tonic::IntoRequest<super::ProvideSelectionRangesRequest>,
3413        ) -> std::result::Result<
3414            tonic::Response<super::ProvideSelectionRangesResponse>,
3415            tonic::Status,
3416        > {
3417            self.inner
3418                .ready()
3419                .await
3420                .map_err(|e| {
3421                    tonic::Status::unknown(
3422                        format!("Service was not ready: {}", e.into()),
3423                    )
3424                })?;
3425            let codec = tonic_prost::ProstCodec::default();
3426            let path = http::uri::PathAndQuery::from_static(
3427                "/Vine.CocoonService/ProvideSelectionRanges",
3428            );
3429            let mut req = request.into_request();
3430            req.extensions_mut()
3431                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideSelectionRanges"));
3432            self.inner.unary(req, path, codec).await
3433        }
3434        /// Register Semantic Tokens Provider
3435        pub async fn register_semantic_tokens_provider(
3436            &mut self,
3437            request: impl tonic::IntoRequest<
3438                super::RegisterSemanticTokensProviderRequest,
3439            >,
3440        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3441            self.inner
3442                .ready()
3443                .await
3444                .map_err(|e| {
3445                    tonic::Status::unknown(
3446                        format!("Service was not ready: {}", e.into()),
3447                    )
3448                })?;
3449            let codec = tonic_prost::ProstCodec::default();
3450            let path = http::uri::PathAndQuery::from_static(
3451                "/Vine.CocoonService/RegisterSemanticTokensProvider",
3452            );
3453            let mut req = request.into_request();
3454            req.extensions_mut()
3455                .insert(
3456                    GrpcMethod::new(
3457                        "Vine.CocoonService",
3458                        "RegisterSemanticTokensProvider",
3459                    ),
3460                );
3461            self.inner.unary(req, path, codec).await
3462        }
3463        /// Provide Semantic Tokens Full
3464        pub async fn provide_semantic_tokens_full(
3465            &mut self,
3466            request: impl tonic::IntoRequest<super::ProvideSemanticTokensRequest>,
3467        ) -> std::result::Result<
3468            tonic::Response<super::ProvideSemanticTokensResponse>,
3469            tonic::Status,
3470        > {
3471            self.inner
3472                .ready()
3473                .await
3474                .map_err(|e| {
3475                    tonic::Status::unknown(
3476                        format!("Service was not ready: {}", e.into()),
3477                    )
3478                })?;
3479            let codec = tonic_prost::ProstCodec::default();
3480            let path = http::uri::PathAndQuery::from_static(
3481                "/Vine.CocoonService/ProvideSemanticTokensFull",
3482            );
3483            let mut req = request.into_request();
3484            req.extensions_mut()
3485                .insert(
3486                    GrpcMethod::new("Vine.CocoonService", "ProvideSemanticTokensFull"),
3487                );
3488            self.inner.unary(req, path, codec).await
3489        }
3490        /// Register Inlay Hints Provider
3491        pub async fn register_inlay_hints_provider(
3492            &mut self,
3493            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3494        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3495            self.inner
3496                .ready()
3497                .await
3498                .map_err(|e| {
3499                    tonic::Status::unknown(
3500                        format!("Service was not ready: {}", e.into()),
3501                    )
3502                })?;
3503            let codec = tonic_prost::ProstCodec::default();
3504            let path = http::uri::PathAndQuery::from_static(
3505                "/Vine.CocoonService/RegisterInlayHintsProvider",
3506            );
3507            let mut req = request.into_request();
3508            req.extensions_mut()
3509                .insert(
3510                    GrpcMethod::new("Vine.CocoonService", "RegisterInlayHintsProvider"),
3511                );
3512            self.inner.unary(req, path, codec).await
3513        }
3514        /// Provide Inlay Hints
3515        pub async fn provide_inlay_hints(
3516            &mut self,
3517            request: impl tonic::IntoRequest<super::ProvideInlayHintsRequest>,
3518        ) -> std::result::Result<
3519            tonic::Response<super::ProvideInlayHintsResponse>,
3520            tonic::Status,
3521        > {
3522            self.inner
3523                .ready()
3524                .await
3525                .map_err(|e| {
3526                    tonic::Status::unknown(
3527                        format!("Service was not ready: {}", e.into()),
3528                    )
3529                })?;
3530            let codec = tonic_prost::ProstCodec::default();
3531            let path = http::uri::PathAndQuery::from_static(
3532                "/Vine.CocoonService/ProvideInlayHints",
3533            );
3534            let mut req = request.into_request();
3535            req.extensions_mut()
3536                .insert(GrpcMethod::new("Vine.CocoonService", "ProvideInlayHints"));
3537            self.inner.unary(req, path, codec).await
3538        }
3539        /// Register Type Hierarchy Provider
3540        pub async fn register_type_hierarchy_provider(
3541            &mut self,
3542            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3543        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3544            self.inner
3545                .ready()
3546                .await
3547                .map_err(|e| {
3548                    tonic::Status::unknown(
3549                        format!("Service was not ready: {}", e.into()),
3550                    )
3551                })?;
3552            let codec = tonic_prost::ProstCodec::default();
3553            let path = http::uri::PathAndQuery::from_static(
3554                "/Vine.CocoonService/RegisterTypeHierarchyProvider",
3555            );
3556            let mut req = request.into_request();
3557            req.extensions_mut()
3558                .insert(
3559                    GrpcMethod::new(
3560                        "Vine.CocoonService",
3561                        "RegisterTypeHierarchyProvider",
3562                    ),
3563                );
3564            self.inner.unary(req, path, codec).await
3565        }
3566        /// Provide Type Hierarchy Supertypes
3567        pub async fn provide_type_hierarchy_supertypes(
3568            &mut self,
3569            request: impl tonic::IntoRequest<super::ProvideTypeHierarchyRequest>,
3570        ) -> std::result::Result<
3571            tonic::Response<super::ProvideTypeHierarchyResponse>,
3572            tonic::Status,
3573        > {
3574            self.inner
3575                .ready()
3576                .await
3577                .map_err(|e| {
3578                    tonic::Status::unknown(
3579                        format!("Service was not ready: {}", e.into()),
3580                    )
3581                })?;
3582            let codec = tonic_prost::ProstCodec::default();
3583            let path = http::uri::PathAndQuery::from_static(
3584                "/Vine.CocoonService/ProvideTypeHierarchySupertypes",
3585            );
3586            let mut req = request.into_request();
3587            req.extensions_mut()
3588                .insert(
3589                    GrpcMethod::new(
3590                        "Vine.CocoonService",
3591                        "ProvideTypeHierarchySupertypes",
3592                    ),
3593                );
3594            self.inner.unary(req, path, codec).await
3595        }
3596        /// Provide Type Hierarchy Subtypes
3597        pub async fn provide_type_hierarchy_subtypes(
3598            &mut self,
3599            request: impl tonic::IntoRequest<super::ProvideTypeHierarchyRequest>,
3600        ) -> std::result::Result<
3601            tonic::Response<super::ProvideTypeHierarchyResponse>,
3602            tonic::Status,
3603        > {
3604            self.inner
3605                .ready()
3606                .await
3607                .map_err(|e| {
3608                    tonic::Status::unknown(
3609                        format!("Service was not ready: {}", e.into()),
3610                    )
3611                })?;
3612            let codec = tonic_prost::ProstCodec::default();
3613            let path = http::uri::PathAndQuery::from_static(
3614                "/Vine.CocoonService/ProvideTypeHierarchySubtypes",
3615            );
3616            let mut req = request.into_request();
3617            req.extensions_mut()
3618                .insert(
3619                    GrpcMethod::new("Vine.CocoonService", "ProvideTypeHierarchySubtypes"),
3620                );
3621            self.inner.unary(req, path, codec).await
3622        }
3623        /// Register Call Hierarchy Provider
3624        pub async fn register_call_hierarchy_provider(
3625            &mut self,
3626            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3627        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3628            self.inner
3629                .ready()
3630                .await
3631                .map_err(|e| {
3632                    tonic::Status::unknown(
3633                        format!("Service was not ready: {}", e.into()),
3634                    )
3635                })?;
3636            let codec = tonic_prost::ProstCodec::default();
3637            let path = http::uri::PathAndQuery::from_static(
3638                "/Vine.CocoonService/RegisterCallHierarchyProvider",
3639            );
3640            let mut req = request.into_request();
3641            req.extensions_mut()
3642                .insert(
3643                    GrpcMethod::new(
3644                        "Vine.CocoonService",
3645                        "RegisterCallHierarchyProvider",
3646                    ),
3647                );
3648            self.inner.unary(req, path, codec).await
3649        }
3650        /// Provide Call Hierarchy Incoming Calls
3651        pub async fn provide_call_hierarchy_incoming_calls(
3652            &mut self,
3653            request: impl tonic::IntoRequest<super::ProvideCallHierarchyRequest>,
3654        ) -> std::result::Result<
3655            tonic::Response<super::ProvideCallHierarchyResponse>,
3656            tonic::Status,
3657        > {
3658            self.inner
3659                .ready()
3660                .await
3661                .map_err(|e| {
3662                    tonic::Status::unknown(
3663                        format!("Service was not ready: {}", e.into()),
3664                    )
3665                })?;
3666            let codec = tonic_prost::ProstCodec::default();
3667            let path = http::uri::PathAndQuery::from_static(
3668                "/Vine.CocoonService/ProvideCallHierarchyIncomingCalls",
3669            );
3670            let mut req = request.into_request();
3671            req.extensions_mut()
3672                .insert(
3673                    GrpcMethod::new(
3674                        "Vine.CocoonService",
3675                        "ProvideCallHierarchyIncomingCalls",
3676                    ),
3677                );
3678            self.inner.unary(req, path, codec).await
3679        }
3680        /// Provide Call Hierarchy Outgoing Calls
3681        pub async fn provide_call_hierarchy_outgoing_calls(
3682            &mut self,
3683            request: impl tonic::IntoRequest<super::ProvideCallHierarchyRequest>,
3684        ) -> std::result::Result<
3685            tonic::Response<super::ProvideCallHierarchyResponse>,
3686            tonic::Status,
3687        > {
3688            self.inner
3689                .ready()
3690                .await
3691                .map_err(|e| {
3692                    tonic::Status::unknown(
3693                        format!("Service was not ready: {}", e.into()),
3694                    )
3695                })?;
3696            let codec = tonic_prost::ProstCodec::default();
3697            let path = http::uri::PathAndQuery::from_static(
3698                "/Vine.CocoonService/ProvideCallHierarchyOutgoingCalls",
3699            );
3700            let mut req = request.into_request();
3701            req.extensions_mut()
3702                .insert(
3703                    GrpcMethod::new(
3704                        "Vine.CocoonService",
3705                        "ProvideCallHierarchyOutgoingCalls",
3706                    ),
3707                );
3708            self.inner.unary(req, path, codec).await
3709        }
3710        /// Register Linked Editing Range Provider
3711        pub async fn register_linked_editing_range_provider(
3712            &mut self,
3713            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
3714        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3715            self.inner
3716                .ready()
3717                .await
3718                .map_err(|e| {
3719                    tonic::Status::unknown(
3720                        format!("Service was not ready: {}", e.into()),
3721                    )
3722                })?;
3723            let codec = tonic_prost::ProstCodec::default();
3724            let path = http::uri::PathAndQuery::from_static(
3725                "/Vine.CocoonService/RegisterLinkedEditingRangeProvider",
3726            );
3727            let mut req = request.into_request();
3728            req.extensions_mut()
3729                .insert(
3730                    GrpcMethod::new(
3731                        "Vine.CocoonService",
3732                        "RegisterLinkedEditingRangeProvider",
3733                    ),
3734                );
3735            self.inner.unary(req, path, codec).await
3736        }
3737        /// Provide Linked Editing Ranges
3738        pub async fn provide_linked_editing_ranges(
3739            &mut self,
3740            request: impl tonic::IntoRequest<super::ProvideLinkedEditingRangesRequest>,
3741        ) -> std::result::Result<
3742            tonic::Response<super::ProvideLinkedEditingRangesResponse>,
3743            tonic::Status,
3744        > {
3745            self.inner
3746                .ready()
3747                .await
3748                .map_err(|e| {
3749                    tonic::Status::unknown(
3750                        format!("Service was not ready: {}", e.into()),
3751                    )
3752                })?;
3753            let codec = tonic_prost::ProstCodec::default();
3754            let path = http::uri::PathAndQuery::from_static(
3755                "/Vine.CocoonService/ProvideLinkedEditingRanges",
3756            );
3757            let mut req = request.into_request();
3758            req.extensions_mut()
3759                .insert(
3760                    GrpcMethod::new("Vine.CocoonService", "ProvideLinkedEditingRanges"),
3761                );
3762            self.inner.unary(req, path, codec).await
3763        }
3764        /// Show Quick Pick
3765        pub async fn show_quick_pick(
3766            &mut self,
3767            request: impl tonic::IntoRequest<super::ShowQuickPickRequest>,
3768        ) -> std::result::Result<
3769            tonic::Response<super::ShowQuickPickResponse>,
3770            tonic::Status,
3771        > {
3772            self.inner
3773                .ready()
3774                .await
3775                .map_err(|e| {
3776                    tonic::Status::unknown(
3777                        format!("Service was not ready: {}", e.into()),
3778                    )
3779                })?;
3780            let codec = tonic_prost::ProstCodec::default();
3781            let path = http::uri::PathAndQuery::from_static(
3782                "/Vine.CocoonService/ShowQuickPick",
3783            );
3784            let mut req = request.into_request();
3785            req.extensions_mut()
3786                .insert(GrpcMethod::new("Vine.CocoonService", "ShowQuickPick"));
3787            self.inner.unary(req, path, codec).await
3788        }
3789        /// Show Input Box
3790        pub async fn show_input_box(
3791            &mut self,
3792            request: impl tonic::IntoRequest<super::ShowInputBoxRequest>,
3793        ) -> std::result::Result<
3794            tonic::Response<super::ShowInputBoxResponse>,
3795            tonic::Status,
3796        > {
3797            self.inner
3798                .ready()
3799                .await
3800                .map_err(|e| {
3801                    tonic::Status::unknown(
3802                        format!("Service was not ready: {}", e.into()),
3803                    )
3804                })?;
3805            let codec = tonic_prost::ProstCodec::default();
3806            let path = http::uri::PathAndQuery::from_static(
3807                "/Vine.CocoonService/ShowInputBox",
3808            );
3809            let mut req = request.into_request();
3810            req.extensions_mut()
3811                .insert(GrpcMethod::new("Vine.CocoonService", "ShowInputBox"));
3812            self.inner.unary(req, path, codec).await
3813        }
3814        /// Show Progress
3815        pub async fn show_progress(
3816            &mut self,
3817            request: impl tonic::IntoRequest<super::ShowProgressRequest>,
3818        ) -> std::result::Result<
3819            tonic::Response<super::ShowProgressResponse>,
3820            tonic::Status,
3821        > {
3822            self.inner
3823                .ready()
3824                .await
3825                .map_err(|e| {
3826                    tonic::Status::unknown(
3827                        format!("Service was not ready: {}", e.into()),
3828                    )
3829                })?;
3830            let codec = tonic_prost::ProstCodec::default();
3831            let path = http::uri::PathAndQuery::from_static(
3832                "/Vine.CocoonService/ShowProgress",
3833            );
3834            let mut req = request.into_request();
3835            req.extensions_mut()
3836                .insert(GrpcMethod::new("Vine.CocoonService", "ShowProgress"));
3837            self.inner.unary(req, path, codec).await
3838        }
3839        /// Report Progress
3840        pub async fn report_progress(
3841            &mut self,
3842            request: impl tonic::IntoRequest<super::ReportProgressRequest>,
3843        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3844            self.inner
3845                .ready()
3846                .await
3847                .map_err(|e| {
3848                    tonic::Status::unknown(
3849                        format!("Service was not ready: {}", e.into()),
3850                    )
3851                })?;
3852            let codec = tonic_prost::ProstCodec::default();
3853            let path = http::uri::PathAndQuery::from_static(
3854                "/Vine.CocoonService/ReportProgress",
3855            );
3856            let mut req = request.into_request();
3857            req.extensions_mut()
3858                .insert(GrpcMethod::new("Vine.CocoonService", "ReportProgress"));
3859            self.inner.unary(req, path, codec).await
3860        }
3861        /// Post Message to Webview
3862        pub async fn post_webview_message(
3863            &mut self,
3864            request: impl tonic::IntoRequest<super::PostWebviewMessageRequest>,
3865        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3866            self.inner
3867                .ready()
3868                .await
3869                .map_err(|e| {
3870                    tonic::Status::unknown(
3871                        format!("Service was not ready: {}", e.into()),
3872                    )
3873                })?;
3874            let codec = tonic_prost::ProstCodec::default();
3875            let path = http::uri::PathAndQuery::from_static(
3876                "/Vine.CocoonService/PostWebviewMessage",
3877            );
3878            let mut req = request.into_request();
3879            req.extensions_mut()
3880                .insert(GrpcMethod::new("Vine.CocoonService", "PostWebviewMessage"));
3881            self.inner.unary(req, path, codec).await
3882        }
3883        /// Dispose Webview Panel
3884        pub async fn dispose_webview_panel(
3885            &mut self,
3886            request: impl tonic::IntoRequest<super::DisposeWebviewPanelRequest>,
3887        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3888            self.inner
3889                .ready()
3890                .await
3891                .map_err(|e| {
3892                    tonic::Status::unknown(
3893                        format!("Service was not ready: {}", e.into()),
3894                    )
3895                })?;
3896            let codec = tonic_prost::ProstCodec::default();
3897            let path = http::uri::PathAndQuery::from_static(
3898                "/Vine.CocoonService/DisposeWebviewPanel",
3899            );
3900            let mut req = request.into_request();
3901            req.extensions_mut()
3902                .insert(GrpcMethod::new("Vine.CocoonService", "DisposeWebviewPanel"));
3903            self.inner.unary(req, path, codec).await
3904        }
3905        /// Open External URI
3906        pub async fn open_external(
3907            &mut self,
3908            request: impl tonic::IntoRequest<super::OpenExternalRequest>,
3909        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3910            self.inner
3911                .ready()
3912                .await
3913                .map_err(|e| {
3914                    tonic::Status::unknown(
3915                        format!("Service was not ready: {}", e.into()),
3916                    )
3917                })?;
3918            let codec = tonic_prost::ProstCodec::default();
3919            let path = http::uri::PathAndQuery::from_static(
3920                "/Vine.CocoonService/OpenExternal",
3921            );
3922            let mut req = request.into_request();
3923            req.extensions_mut()
3924                .insert(GrpcMethod::new("Vine.CocoonService", "OpenExternal"));
3925            self.inner.unary(req, path, codec).await
3926        }
3927        /// Delete File
3928        pub async fn delete_file(
3929            &mut self,
3930            request: impl tonic::IntoRequest<super::DeleteFileRequest>,
3931        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3932            self.inner
3933                .ready()
3934                .await
3935                .map_err(|e| {
3936                    tonic::Status::unknown(
3937                        format!("Service was not ready: {}", e.into()),
3938                    )
3939                })?;
3940            let codec = tonic_prost::ProstCodec::default();
3941            let path = http::uri::PathAndQuery::from_static(
3942                "/Vine.CocoonService/DeleteFile",
3943            );
3944            let mut req = request.into_request();
3945            req.extensions_mut()
3946                .insert(GrpcMethod::new("Vine.CocoonService", "DeleteFile"));
3947            self.inner.unary(req, path, codec).await
3948        }
3949        /// Rename File
3950        pub async fn rename_file(
3951            &mut self,
3952            request: impl tonic::IntoRequest<super::RenameFileRequest>,
3953        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3954            self.inner
3955                .ready()
3956                .await
3957                .map_err(|e| {
3958                    tonic::Status::unknown(
3959                        format!("Service was not ready: {}", e.into()),
3960                    )
3961                })?;
3962            let codec = tonic_prost::ProstCodec::default();
3963            let path = http::uri::PathAndQuery::from_static(
3964                "/Vine.CocoonService/RenameFile",
3965            );
3966            let mut req = request.into_request();
3967            req.extensions_mut()
3968                .insert(GrpcMethod::new("Vine.CocoonService", "RenameFile"));
3969            self.inner.unary(req, path, codec).await
3970        }
3971        /// Copy File
3972        pub async fn copy_file(
3973            &mut self,
3974            request: impl tonic::IntoRequest<super::CopyFileRequest>,
3975        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3976            self.inner
3977                .ready()
3978                .await
3979                .map_err(|e| {
3980                    tonic::Status::unknown(
3981                        format!("Service was not ready: {}", e.into()),
3982                    )
3983                })?;
3984            let codec = tonic_prost::ProstCodec::default();
3985            let path = http::uri::PathAndQuery::from_static(
3986                "/Vine.CocoonService/CopyFile",
3987            );
3988            let mut req = request.into_request();
3989            req.extensions_mut()
3990                .insert(GrpcMethod::new("Vine.CocoonService", "CopyFile"));
3991            self.inner.unary(req, path, codec).await
3992        }
3993        /// Create Directory
3994        pub async fn create_directory(
3995            &mut self,
3996            request: impl tonic::IntoRequest<super::CreateDirectoryRequest>,
3997        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
3998            self.inner
3999                .ready()
4000                .await
4001                .map_err(|e| {
4002                    tonic::Status::unknown(
4003                        format!("Service was not ready: {}", e.into()),
4004                    )
4005                })?;
4006            let codec = tonic_prost::ProstCodec::default();
4007            let path = http::uri::PathAndQuery::from_static(
4008                "/Vine.CocoonService/CreateDirectory",
4009            );
4010            let mut req = request.into_request();
4011            req.extensions_mut()
4012                .insert(GrpcMethod::new("Vine.CocoonService", "CreateDirectory"));
4013            self.inner.unary(req, path, codec).await
4014        }
4015        /// Create Output Channel
4016        pub async fn create_output_channel(
4017            &mut self,
4018            request: impl tonic::IntoRequest<super::CreateOutputChannelRequest>,
4019        ) -> std::result::Result<
4020            tonic::Response<super::CreateOutputChannelResponse>,
4021            tonic::Status,
4022        > {
4023            self.inner
4024                .ready()
4025                .await
4026                .map_err(|e| {
4027                    tonic::Status::unknown(
4028                        format!("Service was not ready: {}", e.into()),
4029                    )
4030                })?;
4031            let codec = tonic_prost::ProstCodec::default();
4032            let path = http::uri::PathAndQuery::from_static(
4033                "/Vine.CocoonService/CreateOutputChannel",
4034            );
4035            let mut req = request.into_request();
4036            req.extensions_mut()
4037                .insert(GrpcMethod::new("Vine.CocoonService", "CreateOutputChannel"));
4038            self.inner.unary(req, path, codec).await
4039        }
4040        /// Append to Output Channel
4041        pub async fn append_output(
4042            &mut self,
4043            request: impl tonic::IntoRequest<super::AppendOutputRequest>,
4044        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4045            self.inner
4046                .ready()
4047                .await
4048                .map_err(|e| {
4049                    tonic::Status::unknown(
4050                        format!("Service was not ready: {}", e.into()),
4051                    )
4052                })?;
4053            let codec = tonic_prost::ProstCodec::default();
4054            let path = http::uri::PathAndQuery::from_static(
4055                "/Vine.CocoonService/AppendOutput",
4056            );
4057            let mut req = request.into_request();
4058            req.extensions_mut()
4059                .insert(GrpcMethod::new("Vine.CocoonService", "AppendOutput"));
4060            self.inner.unary(req, path, codec).await
4061        }
4062        /// Clear Output Channel
4063        pub async fn clear_output(
4064            &mut self,
4065            request: impl tonic::IntoRequest<super::ClearOutputRequest>,
4066        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4067            self.inner
4068                .ready()
4069                .await
4070                .map_err(|e| {
4071                    tonic::Status::unknown(
4072                        format!("Service was not ready: {}", e.into()),
4073                    )
4074                })?;
4075            let codec = tonic_prost::ProstCodec::default();
4076            let path = http::uri::PathAndQuery::from_static(
4077                "/Vine.CocoonService/ClearOutput",
4078            );
4079            let mut req = request.into_request();
4080            req.extensions_mut()
4081                .insert(GrpcMethod::new("Vine.CocoonService", "ClearOutput"));
4082            self.inner.unary(req, path, codec).await
4083        }
4084        /// Show Output Channel
4085        pub async fn show_output(
4086            &mut self,
4087            request: impl tonic::IntoRequest<super::ShowOutputRequest>,
4088        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4089            self.inner
4090                .ready()
4091                .await
4092                .map_err(|e| {
4093                    tonic::Status::unknown(
4094                        format!("Service was not ready: {}", e.into()),
4095                    )
4096                })?;
4097            let codec = tonic_prost::ProstCodec::default();
4098            let path = http::uri::PathAndQuery::from_static(
4099                "/Vine.CocoonService/ShowOutput",
4100            );
4101            let mut req = request.into_request();
4102            req.extensions_mut()
4103                .insert(GrpcMethod::new("Vine.CocoonService", "ShowOutput"));
4104            self.inner.unary(req, path, codec).await
4105        }
4106        /// Dispose Output Channel
4107        pub async fn dispose_output(
4108            &mut self,
4109            request: impl tonic::IntoRequest<super::DisposeOutputRequest>,
4110        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4111            self.inner
4112                .ready()
4113                .await
4114                .map_err(|e| {
4115                    tonic::Status::unknown(
4116                        format!("Service was not ready: {}", e.into()),
4117                    )
4118                })?;
4119            let codec = tonic_prost::ProstCodec::default();
4120            let path = http::uri::PathAndQuery::from_static(
4121                "/Vine.CocoonService/DisposeOutput",
4122            );
4123            let mut req = request.into_request();
4124            req.extensions_mut()
4125                .insert(GrpcMethod::new("Vine.CocoonService", "DisposeOutput"));
4126            self.inner.unary(req, path, codec).await
4127        }
4128        /// Register Task Provider
4129        pub async fn register_task_provider(
4130            &mut self,
4131            request: impl tonic::IntoRequest<super::RegisterTaskProviderRequest>,
4132        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4133            self.inner
4134                .ready()
4135                .await
4136                .map_err(|e| {
4137                    tonic::Status::unknown(
4138                        format!("Service was not ready: {}", e.into()),
4139                    )
4140                })?;
4141            let codec = tonic_prost::ProstCodec::default();
4142            let path = http::uri::PathAndQuery::from_static(
4143                "/Vine.CocoonService/RegisterTaskProvider",
4144            );
4145            let mut req = request.into_request();
4146            req.extensions_mut()
4147                .insert(GrpcMethod::new("Vine.CocoonService", "RegisterTaskProvider"));
4148            self.inner.unary(req, path, codec).await
4149        }
4150        /// Execute Task
4151        pub async fn execute_task(
4152            &mut self,
4153            request: impl tonic::IntoRequest<super::ExecuteTaskRequest>,
4154        ) -> std::result::Result<
4155            tonic::Response<super::ExecuteTaskResponse>,
4156            tonic::Status,
4157        > {
4158            self.inner
4159                .ready()
4160                .await
4161                .map_err(|e| {
4162                    tonic::Status::unknown(
4163                        format!("Service was not ready: {}", e.into()),
4164                    )
4165                })?;
4166            let codec = tonic_prost::ProstCodec::default();
4167            let path = http::uri::PathAndQuery::from_static(
4168                "/Vine.CocoonService/ExecuteTask",
4169            );
4170            let mut req = request.into_request();
4171            req.extensions_mut()
4172                .insert(GrpcMethod::new("Vine.CocoonService", "ExecuteTask"));
4173            self.inner.unary(req, path, codec).await
4174        }
4175        /// Terminate Task
4176        pub async fn terminate_task(
4177            &mut self,
4178            request: impl tonic::IntoRequest<super::TerminateTaskRequest>,
4179        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4180            self.inner
4181                .ready()
4182                .await
4183                .map_err(|e| {
4184                    tonic::Status::unknown(
4185                        format!("Service was not ready: {}", e.into()),
4186                    )
4187                })?;
4188            let codec = tonic_prost::ProstCodec::default();
4189            let path = http::uri::PathAndQuery::from_static(
4190                "/Vine.CocoonService/TerminateTask",
4191            );
4192            let mut req = request.into_request();
4193            req.extensions_mut()
4194                .insert(GrpcMethod::new("Vine.CocoonService", "TerminateTask"));
4195            self.inner.unary(req, path, codec).await
4196        }
4197        /// Get Authentication Session
4198        pub async fn get_authentication_session(
4199            &mut self,
4200            request: impl tonic::IntoRequest<super::GetAuthenticationSessionRequest>,
4201        ) -> std::result::Result<
4202            tonic::Response<super::GetAuthenticationSessionResponse>,
4203            tonic::Status,
4204        > {
4205            self.inner
4206                .ready()
4207                .await
4208                .map_err(|e| {
4209                    tonic::Status::unknown(
4210                        format!("Service was not ready: {}", e.into()),
4211                    )
4212                })?;
4213            let codec = tonic_prost::ProstCodec::default();
4214            let path = http::uri::PathAndQuery::from_static(
4215                "/Vine.CocoonService/GetAuthenticationSession",
4216            );
4217            let mut req = request.into_request();
4218            req.extensions_mut()
4219                .insert(
4220                    GrpcMethod::new("Vine.CocoonService", "GetAuthenticationSession"),
4221                );
4222            self.inner.unary(req, path, codec).await
4223        }
4224        /// Register Authentication Provider
4225        pub async fn register_authentication_provider(
4226            &mut self,
4227            request: impl tonic::IntoRequest<
4228                super::RegisterAuthenticationProviderRequest,
4229            >,
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/RegisterAuthenticationProvider",
4242            );
4243            let mut req = request.into_request();
4244            req.extensions_mut()
4245                .insert(
4246                    GrpcMethod::new(
4247                        "Vine.CocoonService",
4248                        "RegisterAuthenticationProvider",
4249                    ),
4250                );
4251            self.inner.unary(req, path, codec).await
4252        }
4253        /// Stop Debugging
4254        pub async fn stop_debugging(
4255            &mut self,
4256            request: impl tonic::IntoRequest<super::StopDebuggingRequest>,
4257        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4258            self.inner
4259                .ready()
4260                .await
4261                .map_err(|e| {
4262                    tonic::Status::unknown(
4263                        format!("Service was not ready: {}", e.into()),
4264                    )
4265                })?;
4266            let codec = tonic_prost::ProstCodec::default();
4267            let path = http::uri::PathAndQuery::from_static(
4268                "/Vine.CocoonService/StopDebugging",
4269            );
4270            let mut req = request.into_request();
4271            req.extensions_mut()
4272                .insert(GrpcMethod::new("Vine.CocoonService", "StopDebugging"));
4273            self.inner.unary(req, path, codec).await
4274        }
4275        /// Get Extension
4276        pub async fn get_extension(
4277            &mut self,
4278            request: impl tonic::IntoRequest<super::GetExtensionRequest>,
4279        ) -> std::result::Result<
4280            tonic::Response<super::GetExtensionResponse>,
4281            tonic::Status,
4282        > {
4283            self.inner
4284                .ready()
4285                .await
4286                .map_err(|e| {
4287                    tonic::Status::unknown(
4288                        format!("Service was not ready: {}", e.into()),
4289                    )
4290                })?;
4291            let codec = tonic_prost::ProstCodec::default();
4292            let path = http::uri::PathAndQuery::from_static(
4293                "/Vine.CocoonService/GetExtension",
4294            );
4295            let mut req = request.into_request();
4296            req.extensions_mut()
4297                .insert(GrpcMethod::new("Vine.CocoonService", "GetExtension"));
4298            self.inner.unary(req, path, codec).await
4299        }
4300        /// Get All Extensions
4301        pub async fn get_all_extensions(
4302            &mut self,
4303            request: impl tonic::IntoRequest<super::Empty>,
4304        ) -> std::result::Result<
4305            tonic::Response<super::GetAllExtensionsResponse>,
4306            tonic::Status,
4307        > {
4308            self.inner
4309                .ready()
4310                .await
4311                .map_err(|e| {
4312                    tonic::Status::unknown(
4313                        format!("Service was not ready: {}", e.into()),
4314                    )
4315                })?;
4316            let codec = tonic_prost::ProstCodec::default();
4317            let path = http::uri::PathAndQuery::from_static(
4318                "/Vine.CocoonService/GetAllExtensions",
4319            );
4320            let mut req = request.into_request();
4321            req.extensions_mut()
4322                .insert(GrpcMethod::new("Vine.CocoonService", "GetAllExtensions"));
4323            self.inner.unary(req, path, codec).await
4324        }
4325        /// Resize Terminal
4326        pub async fn resize_terminal(
4327            &mut self,
4328            request: impl tonic::IntoRequest<super::ResizeTerminalRequest>,
4329        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4330            self.inner
4331                .ready()
4332                .await
4333                .map_err(|e| {
4334                    tonic::Status::unknown(
4335                        format!("Service was not ready: {}", e.into()),
4336                    )
4337                })?;
4338            let codec = tonic_prost::ProstCodec::default();
4339            let path = http::uri::PathAndQuery::from_static(
4340                "/Vine.CocoonService/ResizeTerminal",
4341            );
4342            let mut req = request.into_request();
4343            req.extensions_mut()
4344                .insert(GrpcMethod::new("Vine.CocoonService", "ResizeTerminal"));
4345            self.inner.unary(req, path, codec).await
4346        }
4347        /// Get Configuration Value
4348        pub async fn get_configuration(
4349            &mut self,
4350            request: impl tonic::IntoRequest<super::GetConfigurationRequest>,
4351        ) -> std::result::Result<
4352            tonic::Response<super::GetConfigurationResponse>,
4353            tonic::Status,
4354        > {
4355            self.inner
4356                .ready()
4357                .await
4358                .map_err(|e| {
4359                    tonic::Status::unknown(
4360                        format!("Service was not ready: {}", e.into()),
4361                    )
4362                })?;
4363            let codec = tonic_prost::ProstCodec::default();
4364            let path = http::uri::PathAndQuery::from_static(
4365                "/Vine.CocoonService/GetConfiguration",
4366            );
4367            let mut req = request.into_request();
4368            req.extensions_mut()
4369                .insert(GrpcMethod::new("Vine.CocoonService", "GetConfiguration"));
4370            self.inner.unary(req, path, codec).await
4371        }
4372        /// Show Text Document - Open a text document
4373        pub async fn show_text_document(
4374            &mut self,
4375            request: impl tonic::IntoRequest<super::ShowTextDocumentRequest>,
4376        ) -> std::result::Result<
4377            tonic::Response<super::ShowTextDocumentResponse>,
4378            tonic::Status,
4379        > {
4380            self.inner
4381                .ready()
4382                .await
4383                .map_err(|e| {
4384                    tonic::Status::unknown(
4385                        format!("Service was not ready: {}", e.into()),
4386                    )
4387                })?;
4388            let codec = tonic_prost::ProstCodec::default();
4389            let path = http::uri::PathAndQuery::from_static(
4390                "/Vine.CocoonService/ShowTextDocument",
4391            );
4392            let mut req = request.into_request();
4393            req.extensions_mut()
4394                .insert(GrpcMethod::new("Vine.CocoonService", "ShowTextDocument"));
4395            self.inner.unary(req, path, codec).await
4396        }
4397        /// Show Information Message - Display an info message
4398        pub async fn show_information_message(
4399            &mut self,
4400            request: impl tonic::IntoRequest<super::ShowMessageRequest>,
4401        ) -> std::result::Result<
4402            tonic::Response<super::ShowMessageResponse>,
4403            tonic::Status,
4404        > {
4405            self.inner
4406                .ready()
4407                .await
4408                .map_err(|e| {
4409                    tonic::Status::unknown(
4410                        format!("Service was not ready: {}", e.into()),
4411                    )
4412                })?;
4413            let codec = tonic_prost::ProstCodec::default();
4414            let path = http::uri::PathAndQuery::from_static(
4415                "/Vine.CocoonService/ShowInformationMessage",
4416            );
4417            let mut req = request.into_request();
4418            req.extensions_mut()
4419                .insert(GrpcMethod::new("Vine.CocoonService", "ShowInformationMessage"));
4420            self.inner.unary(req, path, codec).await
4421        }
4422        /// Show Warning Message - Display a warning message
4423        pub async fn show_warning_message(
4424            &mut self,
4425            request: impl tonic::IntoRequest<super::ShowMessageRequest>,
4426        ) -> std::result::Result<
4427            tonic::Response<super::ShowMessageResponse>,
4428            tonic::Status,
4429        > {
4430            self.inner
4431                .ready()
4432                .await
4433                .map_err(|e| {
4434                    tonic::Status::unknown(
4435                        format!("Service was not ready: {}", e.into()),
4436                    )
4437                })?;
4438            let codec = tonic_prost::ProstCodec::default();
4439            let path = http::uri::PathAndQuery::from_static(
4440                "/Vine.CocoonService/ShowWarningMessage",
4441            );
4442            let mut req = request.into_request();
4443            req.extensions_mut()
4444                .insert(GrpcMethod::new("Vine.CocoonService", "ShowWarningMessage"));
4445            self.inner.unary(req, path, codec).await
4446        }
4447        /// Show Error Message - Display an error message
4448        pub async fn show_error_message(
4449            &mut self,
4450            request: impl tonic::IntoRequest<super::ShowMessageRequest>,
4451        ) -> std::result::Result<
4452            tonic::Response<super::ShowMessageResponse>,
4453            tonic::Status,
4454        > {
4455            self.inner
4456                .ready()
4457                .await
4458                .map_err(|e| {
4459                    tonic::Status::unknown(
4460                        format!("Service was not ready: {}", e.into()),
4461                    )
4462                })?;
4463            let codec = tonic_prost::ProstCodec::default();
4464            let path = http::uri::PathAndQuery::from_static(
4465                "/Vine.CocoonService/ShowErrorMessage",
4466            );
4467            let mut req = request.into_request();
4468            req.extensions_mut()
4469                .insert(GrpcMethod::new("Vine.CocoonService", "ShowErrorMessage"));
4470            self.inner.unary(req, path, codec).await
4471        }
4472        /// Create Status Bar Item - Create a status bar item
4473        pub async fn create_status_bar_item(
4474            &mut self,
4475            request: impl tonic::IntoRequest<super::CreateStatusBarItemRequest>,
4476        ) -> std::result::Result<
4477            tonic::Response<super::CreateStatusBarItemResponse>,
4478            tonic::Status,
4479        > {
4480            self.inner
4481                .ready()
4482                .await
4483                .map_err(|e| {
4484                    tonic::Status::unknown(
4485                        format!("Service was not ready: {}", e.into()),
4486                    )
4487                })?;
4488            let codec = tonic_prost::ProstCodec::default();
4489            let path = http::uri::PathAndQuery::from_static(
4490                "/Vine.CocoonService/CreateStatusBarItem",
4491            );
4492            let mut req = request.into_request();
4493            req.extensions_mut()
4494                .insert(GrpcMethod::new("Vine.CocoonService", "CreateStatusBarItem"));
4495            self.inner.unary(req, path, codec).await
4496        }
4497        /// Set Status Bar Text - Set status bar text
4498        pub async fn set_status_bar_text(
4499            &mut self,
4500            request: impl tonic::IntoRequest<super::SetStatusBarTextRequest>,
4501        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4502            self.inner
4503                .ready()
4504                .await
4505                .map_err(|e| {
4506                    tonic::Status::unknown(
4507                        format!("Service was not ready: {}", e.into()),
4508                    )
4509                })?;
4510            let codec = tonic_prost::ProstCodec::default();
4511            let path = http::uri::PathAndQuery::from_static(
4512                "/Vine.CocoonService/SetStatusBarText",
4513            );
4514            let mut req = request.into_request();
4515            req.extensions_mut()
4516                .insert(GrpcMethod::new("Vine.CocoonService", "SetStatusBarText"));
4517            self.inner.unary(req, path, codec).await
4518        }
4519        /// Create Webview Panel - Create a new webview panel
4520        pub async fn create_webview_panel(
4521            &mut self,
4522            request: impl tonic::IntoRequest<super::CreateWebviewPanelRequest>,
4523        ) -> std::result::Result<
4524            tonic::Response<super::CreateWebviewPanelResponse>,
4525            tonic::Status,
4526        > {
4527            self.inner
4528                .ready()
4529                .await
4530                .map_err(|e| {
4531                    tonic::Status::unknown(
4532                        format!("Service was not ready: {}", e.into()),
4533                    )
4534                })?;
4535            let codec = tonic_prost::ProstCodec::default();
4536            let path = http::uri::PathAndQuery::from_static(
4537                "/Vine.CocoonService/CreateWebviewPanel",
4538            );
4539            let mut req = request.into_request();
4540            req.extensions_mut()
4541                .insert(GrpcMethod::new("Vine.CocoonService", "CreateWebviewPanel"));
4542            self.inner.unary(req, path, codec).await
4543        }
4544        /// Set Webview HTML - Update webview HTML content
4545        pub async fn set_webview_html(
4546            &mut self,
4547            request: impl tonic::IntoRequest<super::SetWebviewHtmlRequest>,
4548        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4549            self.inner
4550                .ready()
4551                .await
4552                .map_err(|e| {
4553                    tonic::Status::unknown(
4554                        format!("Service was not ready: {}", e.into()),
4555                    )
4556                })?;
4557            let codec = tonic_prost::ProstCodec::default();
4558            let path = http::uri::PathAndQuery::from_static(
4559                "/Vine.CocoonService/SetWebviewHTML",
4560            );
4561            let mut req = request.into_request();
4562            req.extensions_mut()
4563                .insert(GrpcMethod::new("Vine.CocoonService", "SetWebviewHTML"));
4564            self.inner.unary(req, path, codec).await
4565        }
4566        /// On Did Receive Message - Receive message from webview
4567        pub async fn on_did_receive_message(
4568            &mut self,
4569            request: impl tonic::IntoRequest<super::OnDidReceiveMessageRequest>,
4570        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4571            self.inner
4572                .ready()
4573                .await
4574                .map_err(|e| {
4575                    tonic::Status::unknown(
4576                        format!("Service was not ready: {}", e.into()),
4577                    )
4578                })?;
4579            let codec = tonic_prost::ProstCodec::default();
4580            let path = http::uri::PathAndQuery::from_static(
4581                "/Vine.CocoonService/OnDidReceiveMessage",
4582            );
4583            let mut req = request.into_request();
4584            req.extensions_mut()
4585                .insert(GrpcMethod::new("Vine.CocoonService", "OnDidReceiveMessage"));
4586            self.inner.unary(req, path, codec).await
4587        }
4588        /// Read File - Read file contents
4589        pub async fn read_file(
4590            &mut self,
4591            request: impl tonic::IntoRequest<super::ReadFileRequest>,
4592        ) -> std::result::Result<
4593            tonic::Response<super::ReadFileResponse>,
4594            tonic::Status,
4595        > {
4596            self.inner
4597                .ready()
4598                .await
4599                .map_err(|e| {
4600                    tonic::Status::unknown(
4601                        format!("Service was not ready: {}", e.into()),
4602                    )
4603                })?;
4604            let codec = tonic_prost::ProstCodec::default();
4605            let path = http::uri::PathAndQuery::from_static(
4606                "/Vine.CocoonService/ReadFile",
4607            );
4608            let mut req = request.into_request();
4609            req.extensions_mut()
4610                .insert(GrpcMethod::new("Vine.CocoonService", "ReadFile"));
4611            self.inner.unary(req, path, codec).await
4612        }
4613        /// Write File - Write file contents
4614        pub async fn write_file(
4615            &mut self,
4616            request: impl tonic::IntoRequest<super::WriteFileRequest>,
4617        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4618            self.inner
4619                .ready()
4620                .await
4621                .map_err(|e| {
4622                    tonic::Status::unknown(
4623                        format!("Service was not ready: {}", e.into()),
4624                    )
4625                })?;
4626            let codec = tonic_prost::ProstCodec::default();
4627            let path = http::uri::PathAndQuery::from_static(
4628                "/Vine.CocoonService/WriteFile",
4629            );
4630            let mut req = request.into_request();
4631            req.extensions_mut()
4632                .insert(GrpcMethod::new("Vine.CocoonService", "WriteFile"));
4633            self.inner.unary(req, path, codec).await
4634        }
4635        /// Stat - Get file metadata
4636        pub async fn stat(
4637            &mut self,
4638            request: impl tonic::IntoRequest<super::StatRequest>,
4639        ) -> std::result::Result<tonic::Response<super::StatResponse>, tonic::Status> {
4640            self.inner
4641                .ready()
4642                .await
4643                .map_err(|e| {
4644                    tonic::Status::unknown(
4645                        format!("Service was not ready: {}", e.into()),
4646                    )
4647                })?;
4648            let codec = tonic_prost::ProstCodec::default();
4649            let path = http::uri::PathAndQuery::from_static("/Vine.CocoonService/Stat");
4650            let mut req = request.into_request();
4651            req.extensions_mut().insert(GrpcMethod::new("Vine.CocoonService", "Stat"));
4652            self.inner.unary(req, path, codec).await
4653        }
4654        /// Read Directory - List directory contents
4655        pub async fn readdir(
4656            &mut self,
4657            request: impl tonic::IntoRequest<super::ReaddirRequest>,
4658        ) -> std::result::Result<
4659            tonic::Response<super::ReaddirResponse>,
4660            tonic::Status,
4661        > {
4662            self.inner
4663                .ready()
4664                .await
4665                .map_err(|e| {
4666                    tonic::Status::unknown(
4667                        format!("Service was not ready: {}", e.into()),
4668                    )
4669                })?;
4670            let codec = tonic_prost::ProstCodec::default();
4671            let path = http::uri::PathAndQuery::from_static(
4672                "/Vine.CocoonService/Readdir",
4673            );
4674            let mut req = request.into_request();
4675            req.extensions_mut()
4676                .insert(GrpcMethod::new("Vine.CocoonService", "Readdir"));
4677            self.inner.unary(req, path, codec).await
4678        }
4679        /// Watch File - Watch file for changes
4680        pub async fn watch_file(
4681            &mut self,
4682            request: impl tonic::IntoRequest<super::WatchFileRequest>,
4683        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4684            self.inner
4685                .ready()
4686                .await
4687                .map_err(|e| {
4688                    tonic::Status::unknown(
4689                        format!("Service was not ready: {}", e.into()),
4690                    )
4691                })?;
4692            let codec = tonic_prost::ProstCodec::default();
4693            let path = http::uri::PathAndQuery::from_static(
4694                "/Vine.CocoonService/WatchFile",
4695            );
4696            let mut req = request.into_request();
4697            req.extensions_mut()
4698                .insert(GrpcMethod::new("Vine.CocoonService", "WatchFile"));
4699            self.inner.unary(req, path, codec).await
4700        }
4701        /// Find Files - Search for files
4702        pub async fn find_files(
4703            &mut self,
4704            request: impl tonic::IntoRequest<super::FindFilesRequest>,
4705        ) -> std::result::Result<
4706            tonic::Response<super::FindFilesResponse>,
4707            tonic::Status,
4708        > {
4709            self.inner
4710                .ready()
4711                .await
4712                .map_err(|e| {
4713                    tonic::Status::unknown(
4714                        format!("Service was not ready: {}", e.into()),
4715                    )
4716                })?;
4717            let codec = tonic_prost::ProstCodec::default();
4718            let path = http::uri::PathAndQuery::from_static(
4719                "/Vine.CocoonService/FindFiles",
4720            );
4721            let mut req = request.into_request();
4722            req.extensions_mut()
4723                .insert(GrpcMethod::new("Vine.CocoonService", "FindFiles"));
4724            self.inner.unary(req, path, codec).await
4725        }
4726        /// Find Text in Files - Search for text across files
4727        pub async fn find_text_in_files(
4728            &mut self,
4729            request: impl tonic::IntoRequest<super::FindTextInFilesRequest>,
4730        ) -> std::result::Result<
4731            tonic::Response<super::FindTextInFilesResponse>,
4732            tonic::Status,
4733        > {
4734            self.inner
4735                .ready()
4736                .await
4737                .map_err(|e| {
4738                    tonic::Status::unknown(
4739                        format!("Service was not ready: {}", e.into()),
4740                    )
4741                })?;
4742            let codec = tonic_prost::ProstCodec::default();
4743            let path = http::uri::PathAndQuery::from_static(
4744                "/Vine.CocoonService/FindTextInFiles",
4745            );
4746            let mut req = request.into_request();
4747            req.extensions_mut()
4748                .insert(GrpcMethod::new("Vine.CocoonService", "FindTextInFiles"));
4749            self.inner.unary(req, path, codec).await
4750        }
4751        /// Open Document - Open a document
4752        pub async fn open_document(
4753            &mut self,
4754            request: impl tonic::IntoRequest<super::OpenDocumentRequest>,
4755        ) -> std::result::Result<
4756            tonic::Response<super::OpenDocumentResponse>,
4757            tonic::Status,
4758        > {
4759            self.inner
4760                .ready()
4761                .await
4762                .map_err(|e| {
4763                    tonic::Status::unknown(
4764                        format!("Service was not ready: {}", e.into()),
4765                    )
4766                })?;
4767            let codec = tonic_prost::ProstCodec::default();
4768            let path = http::uri::PathAndQuery::from_static(
4769                "/Vine.CocoonService/OpenDocument",
4770            );
4771            let mut req = request.into_request();
4772            req.extensions_mut()
4773                .insert(GrpcMethod::new("Vine.CocoonService", "OpenDocument"));
4774            self.inner.unary(req, path, codec).await
4775        }
4776        /// Save All - Save all open documents
4777        pub async fn save_all(
4778            &mut self,
4779            request: impl tonic::IntoRequest<super::SaveAllRequest>,
4780        ) -> std::result::Result<
4781            tonic::Response<super::SaveAllResponse>,
4782            tonic::Status,
4783        > {
4784            self.inner
4785                .ready()
4786                .await
4787                .map_err(|e| {
4788                    tonic::Status::unknown(
4789                        format!("Service was not ready: {}", e.into()),
4790                    )
4791                })?;
4792            let codec = tonic_prost::ProstCodec::default();
4793            let path = http::uri::PathAndQuery::from_static(
4794                "/Vine.CocoonService/SaveAll",
4795            );
4796            let mut req = request.into_request();
4797            req.extensions_mut()
4798                .insert(GrpcMethod::new("Vine.CocoonService", "SaveAll"));
4799            self.inner.unary(req, path, codec).await
4800        }
4801        /// Apply Edit - Apply a text edit to a document
4802        pub async fn apply_edit(
4803            &mut self,
4804            request: impl tonic::IntoRequest<super::ApplyEditRequest>,
4805        ) -> std::result::Result<
4806            tonic::Response<super::ApplyEditResponse>,
4807            tonic::Status,
4808        > {
4809            self.inner
4810                .ready()
4811                .await
4812                .map_err(|e| {
4813                    tonic::Status::unknown(
4814                        format!("Service was not ready: {}", e.into()),
4815                    )
4816                })?;
4817            let codec = tonic_prost::ProstCodec::default();
4818            let path = http::uri::PathAndQuery::from_static(
4819                "/Vine.CocoonService/ApplyEdit",
4820            );
4821            let mut req = request.into_request();
4822            req.extensions_mut()
4823                .insert(GrpcMethod::new("Vine.CocoonService", "ApplyEdit"));
4824            self.inner.unary(req, path, codec).await
4825        }
4826        /// Update Configuration - Notify of configuration changes
4827        pub async fn update_configuration(
4828            &mut self,
4829            request: impl tonic::IntoRequest<super::UpdateConfigurationRequest>,
4830        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4831            self.inner
4832                .ready()
4833                .await
4834                .map_err(|e| {
4835                    tonic::Status::unknown(
4836                        format!("Service was not ready: {}", e.into()),
4837                    )
4838                })?;
4839            let codec = tonic_prost::ProstCodec::default();
4840            let path = http::uri::PathAndQuery::from_static(
4841                "/Vine.CocoonService/UpdateConfiguration",
4842            );
4843            let mut req = request.into_request();
4844            req.extensions_mut()
4845                .insert(GrpcMethod::new("Vine.CocoonService", "UpdateConfiguration"));
4846            self.inner.unary(req, path, codec).await
4847        }
4848        /// Update Workspace Folders - Update workspace folders
4849        pub async fn update_workspace_folders(
4850            &mut self,
4851            request: impl tonic::IntoRequest<super::UpdateWorkspaceFoldersRequest>,
4852        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4853            self.inner
4854                .ready()
4855                .await
4856                .map_err(|e| {
4857                    tonic::Status::unknown(
4858                        format!("Service was not ready: {}", e.into()),
4859                    )
4860                })?;
4861            let codec = tonic_prost::ProstCodec::default();
4862            let path = http::uri::PathAndQuery::from_static(
4863                "/Vine.CocoonService/UpdateWorkspaceFolders",
4864            );
4865            let mut req = request.into_request();
4866            req.extensions_mut()
4867                .insert(GrpcMethod::new("Vine.CocoonService", "UpdateWorkspaceFolders"));
4868            self.inner.unary(req, path, codec).await
4869        }
4870        /// Open Terminal - Open a new terminal
4871        pub async fn open_terminal(
4872            &mut self,
4873            request: impl tonic::IntoRequest<super::OpenTerminalRequest>,
4874        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4875            self.inner
4876                .ready()
4877                .await
4878                .map_err(|e| {
4879                    tonic::Status::unknown(
4880                        format!("Service was not ready: {}", e.into()),
4881                    )
4882                })?;
4883            let codec = tonic_prost::ProstCodec::default();
4884            let path = http::uri::PathAndQuery::from_static(
4885                "/Vine.CocoonService/OpenTerminal",
4886            );
4887            let mut req = request.into_request();
4888            req.extensions_mut()
4889                .insert(GrpcMethod::new("Vine.CocoonService", "OpenTerminal"));
4890            self.inner.unary(req, path, codec).await
4891        }
4892        /// Terminal Input - Send input to terminal
4893        pub async fn terminal_input(
4894            &mut self,
4895            request: impl tonic::IntoRequest<super::TerminalInputRequest>,
4896        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4897            self.inner
4898                .ready()
4899                .await
4900                .map_err(|e| {
4901                    tonic::Status::unknown(
4902                        format!("Service was not ready: {}", e.into()),
4903                    )
4904                })?;
4905            let codec = tonic_prost::ProstCodec::default();
4906            let path = http::uri::PathAndQuery::from_static(
4907                "/Vine.CocoonService/TerminalInput",
4908            );
4909            let mut req = request.into_request();
4910            req.extensions_mut()
4911                .insert(GrpcMethod::new("Vine.CocoonService", "TerminalInput"));
4912            self.inner.unary(req, path, codec).await
4913        }
4914        /// Close Terminal - Close a terminal
4915        pub async fn close_terminal(
4916            &mut self,
4917            request: impl tonic::IntoRequest<super::CloseTerminalRequest>,
4918        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4919            self.inner
4920                .ready()
4921                .await
4922                .map_err(|e| {
4923                    tonic::Status::unknown(
4924                        format!("Service was not ready: {}", e.into()),
4925                    )
4926                })?;
4927            let codec = tonic_prost::ProstCodec::default();
4928            let path = http::uri::PathAndQuery::from_static(
4929                "/Vine.CocoonService/CloseTerminal",
4930            );
4931            let mut req = request.into_request();
4932            req.extensions_mut()
4933                .insert(GrpcMethod::new("Vine.CocoonService", "CloseTerminal"));
4934            self.inner.unary(req, path, codec).await
4935        }
4936        /// Accept Terminal Opened - Notification: Terminal opened
4937        pub async fn accept_terminal_opened(
4938            &mut self,
4939            request: impl tonic::IntoRequest<super::TerminalOpenedNotification>,
4940        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4941            self.inner
4942                .ready()
4943                .await
4944                .map_err(|e| {
4945                    tonic::Status::unknown(
4946                        format!("Service was not ready: {}", e.into()),
4947                    )
4948                })?;
4949            let codec = tonic_prost::ProstCodec::default();
4950            let path = http::uri::PathAndQuery::from_static(
4951                "/Vine.CocoonService/AcceptTerminalOpened",
4952            );
4953            let mut req = request.into_request();
4954            req.extensions_mut()
4955                .insert(GrpcMethod::new("Vine.CocoonService", "AcceptTerminalOpened"));
4956            self.inner.unary(req, path, codec).await
4957        }
4958        /// Accept Terminal Closed - Notification: Terminal closed
4959        pub async fn accept_terminal_closed(
4960            &mut self,
4961            request: impl tonic::IntoRequest<super::TerminalClosedNotification>,
4962        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4963            self.inner
4964                .ready()
4965                .await
4966                .map_err(|e| {
4967                    tonic::Status::unknown(
4968                        format!("Service was not ready: {}", e.into()),
4969                    )
4970                })?;
4971            let codec = tonic_prost::ProstCodec::default();
4972            let path = http::uri::PathAndQuery::from_static(
4973                "/Vine.CocoonService/AcceptTerminalClosed",
4974            );
4975            let mut req = request.into_request();
4976            req.extensions_mut()
4977                .insert(GrpcMethod::new("Vine.CocoonService", "AcceptTerminalClosed"));
4978            self.inner.unary(req, path, codec).await
4979        }
4980        /// Accept Terminal Process ID - Notification: Terminal process ID
4981        pub async fn accept_terminal_process_id(
4982            &mut self,
4983            request: impl tonic::IntoRequest<super::TerminalProcessIdNotification>,
4984        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
4985            self.inner
4986                .ready()
4987                .await
4988                .map_err(|e| {
4989                    tonic::Status::unknown(
4990                        format!("Service was not ready: {}", e.into()),
4991                    )
4992                })?;
4993            let codec = tonic_prost::ProstCodec::default();
4994            let path = http::uri::PathAndQuery::from_static(
4995                "/Vine.CocoonService/AcceptTerminalProcessId",
4996            );
4997            let mut req = request.into_request();
4998            req.extensions_mut()
4999                .insert(
5000                    GrpcMethod::new("Vine.CocoonService", "AcceptTerminalProcessId"),
5001                );
5002            self.inner.unary(req, path, codec).await
5003        }
5004        /// Accept Terminal Process Data - Notification: Terminal output
5005        pub async fn accept_terminal_process_data(
5006            &mut self,
5007            request: impl tonic::IntoRequest<super::TerminalDataNotification>,
5008        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5009            self.inner
5010                .ready()
5011                .await
5012                .map_err(|e| {
5013                    tonic::Status::unknown(
5014                        format!("Service was not ready: {}", e.into()),
5015                    )
5016                })?;
5017            let codec = tonic_prost::ProstCodec::default();
5018            let path = http::uri::PathAndQuery::from_static(
5019                "/Vine.CocoonService/AcceptTerminalProcessData",
5020            );
5021            let mut req = request.into_request();
5022            req.extensions_mut()
5023                .insert(
5024                    GrpcMethod::new("Vine.CocoonService", "AcceptTerminalProcessData"),
5025                );
5026            self.inner.unary(req, path, codec).await
5027        }
5028        /// Register Tree View Provider - Register a tree view provider
5029        pub async fn register_tree_view_provider(
5030            &mut self,
5031            request: impl tonic::IntoRequest<super::RegisterTreeViewProviderRequest>,
5032        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5033            self.inner
5034                .ready()
5035                .await
5036                .map_err(|e| {
5037                    tonic::Status::unknown(
5038                        format!("Service was not ready: {}", e.into()),
5039                    )
5040                })?;
5041            let codec = tonic_prost::ProstCodec::default();
5042            let path = http::uri::PathAndQuery::from_static(
5043                "/Vine.CocoonService/RegisterTreeViewProvider",
5044            );
5045            let mut req = request.into_request();
5046            req.extensions_mut()
5047                .insert(
5048                    GrpcMethod::new("Vine.CocoonService", "RegisterTreeViewProvider"),
5049                );
5050            self.inner.unary(req, path, codec).await
5051        }
5052        /// Get Tree Children - Request tree view children
5053        pub async fn get_tree_children(
5054            &mut self,
5055            request: impl tonic::IntoRequest<super::GetTreeChildrenRequest>,
5056        ) -> std::result::Result<
5057            tonic::Response<super::GetTreeChildrenResponse>,
5058            tonic::Status,
5059        > {
5060            self.inner
5061                .ready()
5062                .await
5063                .map_err(|e| {
5064                    tonic::Status::unknown(
5065                        format!("Service was not ready: {}", e.into()),
5066                    )
5067                })?;
5068            let codec = tonic_prost::ProstCodec::default();
5069            let path = http::uri::PathAndQuery::from_static(
5070                "/Vine.CocoonService/GetTreeChildren",
5071            );
5072            let mut req = request.into_request();
5073            req.extensions_mut()
5074                .insert(GrpcMethod::new("Vine.CocoonService", "GetTreeChildren"));
5075            self.inner.unary(req, path, codec).await
5076        }
5077        /// Register SCM Provider - Register source control provider
5078        pub async fn register_scm_provider(
5079            &mut self,
5080            request: impl tonic::IntoRequest<super::RegisterScmProviderRequest>,
5081        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5082            self.inner
5083                .ready()
5084                .await
5085                .map_err(|e| {
5086                    tonic::Status::unknown(
5087                        format!("Service was not ready: {}", e.into()),
5088                    )
5089                })?;
5090            let codec = tonic_prost::ProstCodec::default();
5091            let path = http::uri::PathAndQuery::from_static(
5092                "/Vine.CocoonService/RegisterSCMProvider",
5093            );
5094            let mut req = request.into_request();
5095            req.extensions_mut()
5096                .insert(GrpcMethod::new("Vine.CocoonService", "RegisterSCMProvider"));
5097            self.inner.unary(req, path, codec).await
5098        }
5099        /// Update SCM Group - Update SCM group
5100        pub async fn update_scm_group(
5101            &mut self,
5102            request: impl tonic::IntoRequest<super::UpdateScmGroupRequest>,
5103        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5104            self.inner
5105                .ready()
5106                .await
5107                .map_err(|e| {
5108                    tonic::Status::unknown(
5109                        format!("Service was not ready: {}", e.into()),
5110                    )
5111                })?;
5112            let codec = tonic_prost::ProstCodec::default();
5113            let path = http::uri::PathAndQuery::from_static(
5114                "/Vine.CocoonService/UpdateSCMGroup",
5115            );
5116            let mut req = request.into_request();
5117            req.extensions_mut()
5118                .insert(GrpcMethod::new("Vine.CocoonService", "UpdateSCMGroup"));
5119            self.inner.unary(req, path, codec).await
5120        }
5121        /// Execute Git - Execute git command
5122        pub async fn git_exec(
5123            &mut self,
5124            request: impl tonic::IntoRequest<super::GitExecRequest>,
5125        ) -> std::result::Result<
5126            tonic::Response<super::GitExecResponse>,
5127            tonic::Status,
5128        > {
5129            self.inner
5130                .ready()
5131                .await
5132                .map_err(|e| {
5133                    tonic::Status::unknown(
5134                        format!("Service was not ready: {}", e.into()),
5135                    )
5136                })?;
5137            let codec = tonic_prost::ProstCodec::default();
5138            let path = http::uri::PathAndQuery::from_static(
5139                "/Vine.CocoonService/GitExec",
5140            );
5141            let mut req = request.into_request();
5142            req.extensions_mut()
5143                .insert(GrpcMethod::new("Vine.CocoonService", "GitExec"));
5144            self.inner.unary(req, path, codec).await
5145        }
5146        /// Register Debug Adapter - Register debug adapter
5147        pub async fn register_debug_adapter(
5148            &mut self,
5149            request: impl tonic::IntoRequest<super::RegisterDebugAdapterRequest>,
5150        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5151            self.inner
5152                .ready()
5153                .await
5154                .map_err(|e| {
5155                    tonic::Status::unknown(
5156                        format!("Service was not ready: {}", e.into()),
5157                    )
5158                })?;
5159            let codec = tonic_prost::ProstCodec::default();
5160            let path = http::uri::PathAndQuery::from_static(
5161                "/Vine.CocoonService/RegisterDebugAdapter",
5162            );
5163            let mut req = request.into_request();
5164            req.extensions_mut()
5165                .insert(GrpcMethod::new("Vine.CocoonService", "RegisterDebugAdapter"));
5166            self.inner.unary(req, path, codec).await
5167        }
5168        /// Start Debugging - Start debug session
5169        pub async fn start_debugging(
5170            &mut self,
5171            request: impl tonic::IntoRequest<super::StartDebuggingRequest>,
5172        ) -> std::result::Result<
5173            tonic::Response<super::StartDebuggingResponse>,
5174            tonic::Status,
5175        > {
5176            self.inner
5177                .ready()
5178                .await
5179                .map_err(|e| {
5180                    tonic::Status::unknown(
5181                        format!("Service was not ready: {}", e.into()),
5182                    )
5183                })?;
5184            let codec = tonic_prost::ProstCodec::default();
5185            let path = http::uri::PathAndQuery::from_static(
5186                "/Vine.CocoonService/StartDebugging",
5187            );
5188            let mut req = request.into_request();
5189            req.extensions_mut()
5190                .insert(GrpcMethod::new("Vine.CocoonService", "StartDebugging"));
5191            self.inner.unary(req, path, codec).await
5192        }
5193        /// Participate in Save - Extension participates in save
5194        pub async fn participate_in_save(
5195            &mut self,
5196            request: impl tonic::IntoRequest<super::ParticipateInSaveRequest>,
5197        ) -> std::result::Result<
5198            tonic::Response<super::ParticipateInSaveResponse>,
5199            tonic::Status,
5200        > {
5201            self.inner
5202                .ready()
5203                .await
5204                .map_err(|e| {
5205                    tonic::Status::unknown(
5206                        format!("Service was not ready: {}", e.into()),
5207                    )
5208                })?;
5209            let codec = tonic_prost::ProstCodec::default();
5210            let path = http::uri::PathAndQuery::from_static(
5211                "/Vine.CocoonService/ParticipateInSave",
5212            );
5213            let mut req = request.into_request();
5214            req.extensions_mut()
5215                .insert(GrpcMethod::new("Vine.CocoonService", "ParticipateInSave"));
5216            self.inner.unary(req, path, codec).await
5217        }
5218        /// Get Secret - Retrieve a secret from storage
5219        pub async fn get_secret(
5220            &mut self,
5221            request: impl tonic::IntoRequest<super::GetSecretRequest>,
5222        ) -> std::result::Result<
5223            tonic::Response<super::GetSecretResponse>,
5224            tonic::Status,
5225        > {
5226            self.inner
5227                .ready()
5228                .await
5229                .map_err(|e| {
5230                    tonic::Status::unknown(
5231                        format!("Service was not ready: {}", e.into()),
5232                    )
5233                })?;
5234            let codec = tonic_prost::ProstCodec::default();
5235            let path = http::uri::PathAndQuery::from_static(
5236                "/Vine.CocoonService/GetSecret",
5237            );
5238            let mut req = request.into_request();
5239            req.extensions_mut()
5240                .insert(GrpcMethod::new("Vine.CocoonService", "GetSecret"));
5241            self.inner.unary(req, path, codec).await
5242        }
5243        /// Store Secret - Store a secret in storage
5244        pub async fn store_secret(
5245            &mut self,
5246            request: impl tonic::IntoRequest<super::StoreSecretRequest>,
5247        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5248            self.inner
5249                .ready()
5250                .await
5251                .map_err(|e| {
5252                    tonic::Status::unknown(
5253                        format!("Service was not ready: {}", e.into()),
5254                    )
5255                })?;
5256            let codec = tonic_prost::ProstCodec::default();
5257            let path = http::uri::PathAndQuery::from_static(
5258                "/Vine.CocoonService/StoreSecret",
5259            );
5260            let mut req = request.into_request();
5261            req.extensions_mut()
5262                .insert(GrpcMethod::new("Vine.CocoonService", "StoreSecret"));
5263            self.inner.unary(req, path, codec).await
5264        }
5265        /// Delete Secret - Delete a secret from storage
5266        pub async fn delete_secret(
5267            &mut self,
5268            request: impl tonic::IntoRequest<super::DeleteSecretRequest>,
5269        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
5270            self.inner
5271                .ready()
5272                .await
5273                .map_err(|e| {
5274                    tonic::Status::unknown(
5275                        format!("Service was not ready: {}", e.into()),
5276                    )
5277                })?;
5278            let codec = tonic_prost::ProstCodec::default();
5279            let path = http::uri::PathAndQuery::from_static(
5280                "/Vine.CocoonService/DeleteSecret",
5281            );
5282            let mut req = request.into_request();
5283            req.extensions_mut()
5284                .insert(GrpcMethod::new("Vine.CocoonService", "DeleteSecret"));
5285            self.inner.unary(req, path, codec).await
5286        }
5287    }
5288}
5289/// Generated server implementations.
5290pub mod cocoon_service_server {
5291    #![allow(
5292        unused_variables,
5293        dead_code,
5294        missing_docs,
5295        clippy::wildcard_imports,
5296        clippy::let_unit_value,
5297    )]
5298    use tonic::codegen::*;
5299    /// Generated trait containing gRPC methods that should be implemented for use with CocoonServiceServer.
5300    #[async_trait]
5301    pub trait CocoonService: std::marker::Send + std::marker::Sync + 'static {
5302        /// A generic request-response method for Mountain to call a function on Cocoon.
5303        async fn process_mountain_request(
5304            &self,
5305            request: tonic::Request<super::GenericRequest>,
5306        ) -> std::result::Result<tonic::Response<super::GenericResponse>, tonic::Status>;
5307        /// A generic fire-and-forget method for Mountain to send a notification to Cocoon.
5308        async fn send_mountain_notification(
5309            &self,
5310            request: tonic::Request<super::GenericNotification>,
5311        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5312        /// A method for Mountain to request that Cocoon cancel a long-running operation.
5313        async fn cancel_operation(
5314            &self,
5315            request: tonic::Request<super::CancelOperationRequest>,
5316        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5317        /// Server streaming response type for the OpenChannelFromMountain method.
5318        type OpenChannelFromMountainStream: tonic::codegen::tokio_stream::Stream<
5319                Item = std::result::Result<super::Envelope, tonic::Status>,
5320            >
5321            + std::marker::Send
5322            + 'static;
5323        /// LAND-PATCH B7-S6 P2: bidirectional streaming channel (mirror of
5324        /// MountainService::OpenChannelFromCocoon). Mountain opens this
5325        /// stream once per Cocoon connection; all subsequent traffic
5326        /// multiplexes over it. Reverses the call direction so Mountain is
5327        /// the streaming initiator (which matches the typical "client
5328        /// opens stream, server replies" gRPC idiom).
5329        async fn open_channel_from_mountain(
5330            &self,
5331            request: tonic::Request<tonic::Streaming<super::Envelope>>,
5332        ) -> std::result::Result<
5333            tonic::Response<Self::OpenChannelFromMountainStream>,
5334            tonic::Status,
5335        >;
5336        /// Handshake - Called by Cocoon to signal readiness
5337        async fn initial_handshake(
5338            &self,
5339            request: tonic::Request<super::Empty>,
5340        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5341        /// Initialize Extension Host - Mountain sends initialization data to Cocoon
5342        async fn init_extension_host(
5343            &self,
5344            request: tonic::Request<super::InitExtensionHostRequest>,
5345        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5346        /// Register Command - Cocoon registers an extension command
5347        async fn register_command(
5348            &self,
5349            request: tonic::Request<super::RegisterCommandRequest>,
5350        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5351        /// Execute Contributed Command - Mountain executes an extension command
5352        async fn execute_contributed_command(
5353            &self,
5354            request: tonic::Request<super::ExecuteCommandRequest>,
5355        ) -> std::result::Result<
5356            tonic::Response<super::ExecuteCommandResponse>,
5357            tonic::Status,
5358        >;
5359        /// Unregister Command - Unregister a previously registered command
5360        async fn unregister_command(
5361            &self,
5362            request: tonic::Request<super::UnregisterCommandRequest>,
5363        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5364        /// Register Hover Provider - Register a hover provider
5365        async fn register_hover_provider(
5366            &self,
5367            request: tonic::Request<super::RegisterProviderRequest>,
5368        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5369        /// Provide Hover - Request hover information
5370        async fn provide_hover(
5371            &self,
5372            request: tonic::Request<super::ProvideHoverRequest>,
5373        ) -> std::result::Result<
5374            tonic::Response<super::ProvideHoverResponse>,
5375            tonic::Status,
5376        >;
5377        /// Register Completion Item Provider - Register a completion provider
5378        async fn register_completion_item_provider(
5379            &self,
5380            request: tonic::Request<super::RegisterProviderRequest>,
5381        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5382        /// Provide Completion Items - Request completion items
5383        async fn provide_completion_items(
5384            &self,
5385            request: tonic::Request<super::ProvideCompletionItemsRequest>,
5386        ) -> std::result::Result<
5387            tonic::Response<super::ProvideCompletionItemsResponse>,
5388            tonic::Status,
5389        >;
5390        /// Register Definition Provider - Register a definition provider
5391        async fn register_definition_provider(
5392            &self,
5393            request: tonic::Request<super::RegisterProviderRequest>,
5394        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5395        /// Provide Definition - Request definition location
5396        async fn provide_definition(
5397            &self,
5398            request: tonic::Request<super::ProvideDefinitionRequest>,
5399        ) -> std::result::Result<
5400            tonic::Response<super::ProvideDefinitionResponse>,
5401            tonic::Status,
5402        >;
5403        /// Register Reference Provider - Register a reference provider
5404        async fn register_reference_provider(
5405            &self,
5406            request: tonic::Request<super::RegisterProviderRequest>,
5407        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5408        /// Provide References - Request references
5409        async fn provide_references(
5410            &self,
5411            request: tonic::Request<super::ProvideReferencesRequest>,
5412        ) -> std::result::Result<
5413            tonic::Response<super::ProvideReferencesResponse>,
5414            tonic::Status,
5415        >;
5416        /// Register Code Actions Provider - Register code actions provider
5417        async fn register_code_actions_provider(
5418            &self,
5419            request: tonic::Request<super::RegisterProviderRequest>,
5420        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5421        /// Provide Code Actions - Request code actions
5422        async fn provide_code_actions(
5423            &self,
5424            request: tonic::Request<super::ProvideCodeActionsRequest>,
5425        ) -> std::result::Result<
5426            tonic::Response<super::ProvideCodeActionsResponse>,
5427            tonic::Status,
5428        >;
5429        /// Register Document Highlight Provider
5430        async fn register_document_highlight_provider(
5431            &self,
5432            request: tonic::Request<super::RegisterProviderRequest>,
5433        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5434        /// Provide Document Highlights
5435        async fn provide_document_highlights(
5436            &self,
5437            request: tonic::Request<super::ProvideDocumentHighlightsRequest>,
5438        ) -> std::result::Result<
5439            tonic::Response<super::ProvideDocumentHighlightsResponse>,
5440            tonic::Status,
5441        >;
5442        /// Register Document Symbol Provider
5443        async fn register_document_symbol_provider(
5444            &self,
5445            request: tonic::Request<super::RegisterProviderRequest>,
5446        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5447        /// Provide Document Symbols
5448        async fn provide_document_symbols(
5449            &self,
5450            request: tonic::Request<super::ProvideDocumentSymbolsRequest>,
5451        ) -> std::result::Result<
5452            tonic::Response<super::ProvideDocumentSymbolsResponse>,
5453            tonic::Status,
5454        >;
5455        /// Register Workspace Symbol Provider
5456        async fn register_workspace_symbol_provider(
5457            &self,
5458            request: tonic::Request<super::RegisterProviderRequest>,
5459        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5460        /// Provide Workspace Symbols
5461        async fn provide_workspace_symbols(
5462            &self,
5463            request: tonic::Request<super::ProvideWorkspaceSymbolsRequest>,
5464        ) -> std::result::Result<
5465            tonic::Response<super::ProvideWorkspaceSymbolsResponse>,
5466            tonic::Status,
5467        >;
5468        /// Register Rename Provider
5469        async fn register_rename_provider(
5470            &self,
5471            request: tonic::Request<super::RegisterProviderRequest>,
5472        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5473        /// Provide Rename Edits
5474        async fn provide_rename_edits(
5475            &self,
5476            request: tonic::Request<super::ProvideRenameEditsRequest>,
5477        ) -> std::result::Result<
5478            tonic::Response<super::ProvideRenameEditsResponse>,
5479            tonic::Status,
5480        >;
5481        /// Register Document Formatting Provider
5482        async fn register_document_formatting_provider(
5483            &self,
5484            request: tonic::Request<super::RegisterProviderRequest>,
5485        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5486        /// Provide Document Formatting
5487        async fn provide_document_formatting(
5488            &self,
5489            request: tonic::Request<super::ProvideDocumentFormattingRequest>,
5490        ) -> std::result::Result<
5491            tonic::Response<super::ProvideDocumentFormattingResponse>,
5492            tonic::Status,
5493        >;
5494        /// Register Document Range Formatting Provider
5495        async fn register_document_range_formatting_provider(
5496            &self,
5497            request: tonic::Request<super::RegisterProviderRequest>,
5498        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5499        /// Provide Document Range Formatting
5500        async fn provide_document_range_formatting(
5501            &self,
5502            request: tonic::Request<super::ProvideDocumentRangeFormattingRequest>,
5503        ) -> std::result::Result<
5504            tonic::Response<super::ProvideDocumentRangeFormattingResponse>,
5505            tonic::Status,
5506        >;
5507        /// Register On Type Formatting Provider
5508        async fn register_on_type_formatting_provider(
5509            &self,
5510            request: tonic::Request<super::RegisterOnTypeFormattingProviderRequest>,
5511        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5512        /// Provide On Type Formatting
5513        async fn provide_on_type_formatting(
5514            &self,
5515            request: tonic::Request<super::ProvideOnTypeFormattingRequest>,
5516        ) -> std::result::Result<
5517            tonic::Response<super::ProvideOnTypeFormattingResponse>,
5518            tonic::Status,
5519        >;
5520        /// Register Signature Help Provider
5521        async fn register_signature_help_provider(
5522            &self,
5523            request: tonic::Request<super::RegisterSignatureHelpProviderRequest>,
5524        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5525        /// Provide Signature Help
5526        async fn provide_signature_help(
5527            &self,
5528            request: tonic::Request<super::ProvideSignatureHelpRequest>,
5529        ) -> std::result::Result<
5530            tonic::Response<super::ProvideSignatureHelpResponse>,
5531            tonic::Status,
5532        >;
5533        /// Register Code Lens Provider
5534        async fn register_code_lens_provider(
5535            &self,
5536            request: tonic::Request<super::RegisterProviderRequest>,
5537        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5538        /// Provide Code Lenses
5539        async fn provide_code_lenses(
5540            &self,
5541            request: tonic::Request<super::ProvideCodeLensesRequest>,
5542        ) -> std::result::Result<
5543            tonic::Response<super::ProvideCodeLensesResponse>,
5544            tonic::Status,
5545        >;
5546        /// Register Folding Range Provider
5547        async fn register_folding_range_provider(
5548            &self,
5549            request: tonic::Request<super::RegisterProviderRequest>,
5550        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5551        /// Provide Folding Ranges
5552        async fn provide_folding_ranges(
5553            &self,
5554            request: tonic::Request<super::ProvideFoldingRangesRequest>,
5555        ) -> std::result::Result<
5556            tonic::Response<super::ProvideFoldingRangesResponse>,
5557            tonic::Status,
5558        >;
5559        /// Register Selection Range Provider
5560        async fn register_selection_range_provider(
5561            &self,
5562            request: tonic::Request<super::RegisterProviderRequest>,
5563        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5564        /// Provide Selection Ranges
5565        async fn provide_selection_ranges(
5566            &self,
5567            request: tonic::Request<super::ProvideSelectionRangesRequest>,
5568        ) -> std::result::Result<
5569            tonic::Response<super::ProvideSelectionRangesResponse>,
5570            tonic::Status,
5571        >;
5572        /// Register Semantic Tokens Provider
5573        async fn register_semantic_tokens_provider(
5574            &self,
5575            request: tonic::Request<super::RegisterSemanticTokensProviderRequest>,
5576        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5577        /// Provide Semantic Tokens Full
5578        async fn provide_semantic_tokens_full(
5579            &self,
5580            request: tonic::Request<super::ProvideSemanticTokensRequest>,
5581        ) -> std::result::Result<
5582            tonic::Response<super::ProvideSemanticTokensResponse>,
5583            tonic::Status,
5584        >;
5585        /// Register Inlay Hints Provider
5586        async fn register_inlay_hints_provider(
5587            &self,
5588            request: tonic::Request<super::RegisterProviderRequest>,
5589        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5590        /// Provide Inlay Hints
5591        async fn provide_inlay_hints(
5592            &self,
5593            request: tonic::Request<super::ProvideInlayHintsRequest>,
5594        ) -> std::result::Result<
5595            tonic::Response<super::ProvideInlayHintsResponse>,
5596            tonic::Status,
5597        >;
5598        /// Register Type Hierarchy Provider
5599        async fn register_type_hierarchy_provider(
5600            &self,
5601            request: tonic::Request<super::RegisterProviderRequest>,
5602        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5603        /// Provide Type Hierarchy Supertypes
5604        async fn provide_type_hierarchy_supertypes(
5605            &self,
5606            request: tonic::Request<super::ProvideTypeHierarchyRequest>,
5607        ) -> std::result::Result<
5608            tonic::Response<super::ProvideTypeHierarchyResponse>,
5609            tonic::Status,
5610        >;
5611        /// Provide Type Hierarchy Subtypes
5612        async fn provide_type_hierarchy_subtypes(
5613            &self,
5614            request: tonic::Request<super::ProvideTypeHierarchyRequest>,
5615        ) -> std::result::Result<
5616            tonic::Response<super::ProvideTypeHierarchyResponse>,
5617            tonic::Status,
5618        >;
5619        /// Register Call Hierarchy Provider
5620        async fn register_call_hierarchy_provider(
5621            &self,
5622            request: tonic::Request<super::RegisterProviderRequest>,
5623        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5624        /// Provide Call Hierarchy Incoming Calls
5625        async fn provide_call_hierarchy_incoming_calls(
5626            &self,
5627            request: tonic::Request<super::ProvideCallHierarchyRequest>,
5628        ) -> std::result::Result<
5629            tonic::Response<super::ProvideCallHierarchyResponse>,
5630            tonic::Status,
5631        >;
5632        /// Provide Call Hierarchy Outgoing Calls
5633        async fn provide_call_hierarchy_outgoing_calls(
5634            &self,
5635            request: tonic::Request<super::ProvideCallHierarchyRequest>,
5636        ) -> std::result::Result<
5637            tonic::Response<super::ProvideCallHierarchyResponse>,
5638            tonic::Status,
5639        >;
5640        /// Register Linked Editing Range Provider
5641        async fn register_linked_editing_range_provider(
5642            &self,
5643            request: tonic::Request<super::RegisterProviderRequest>,
5644        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5645        /// Provide Linked Editing Ranges
5646        async fn provide_linked_editing_ranges(
5647            &self,
5648            request: tonic::Request<super::ProvideLinkedEditingRangesRequest>,
5649        ) -> std::result::Result<
5650            tonic::Response<super::ProvideLinkedEditingRangesResponse>,
5651            tonic::Status,
5652        >;
5653        /// Show Quick Pick
5654        async fn show_quick_pick(
5655            &self,
5656            request: tonic::Request<super::ShowQuickPickRequest>,
5657        ) -> std::result::Result<
5658            tonic::Response<super::ShowQuickPickResponse>,
5659            tonic::Status,
5660        >;
5661        /// Show Input Box
5662        async fn show_input_box(
5663            &self,
5664            request: tonic::Request<super::ShowInputBoxRequest>,
5665        ) -> std::result::Result<
5666            tonic::Response<super::ShowInputBoxResponse>,
5667            tonic::Status,
5668        >;
5669        /// Show Progress
5670        async fn show_progress(
5671            &self,
5672            request: tonic::Request<super::ShowProgressRequest>,
5673        ) -> std::result::Result<
5674            tonic::Response<super::ShowProgressResponse>,
5675            tonic::Status,
5676        >;
5677        /// Report Progress
5678        async fn report_progress(
5679            &self,
5680            request: tonic::Request<super::ReportProgressRequest>,
5681        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5682        /// Post Message to Webview
5683        async fn post_webview_message(
5684            &self,
5685            request: tonic::Request<super::PostWebviewMessageRequest>,
5686        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5687        /// Dispose Webview Panel
5688        async fn dispose_webview_panel(
5689            &self,
5690            request: tonic::Request<super::DisposeWebviewPanelRequest>,
5691        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5692        /// Open External URI
5693        async fn open_external(
5694            &self,
5695            request: tonic::Request<super::OpenExternalRequest>,
5696        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5697        /// Delete File
5698        async fn delete_file(
5699            &self,
5700            request: tonic::Request<super::DeleteFileRequest>,
5701        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5702        /// Rename File
5703        async fn rename_file(
5704            &self,
5705            request: tonic::Request<super::RenameFileRequest>,
5706        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5707        /// Copy File
5708        async fn copy_file(
5709            &self,
5710            request: tonic::Request<super::CopyFileRequest>,
5711        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5712        /// Create Directory
5713        async fn create_directory(
5714            &self,
5715            request: tonic::Request<super::CreateDirectoryRequest>,
5716        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5717        /// Create Output Channel
5718        async fn create_output_channel(
5719            &self,
5720            request: tonic::Request<super::CreateOutputChannelRequest>,
5721        ) -> std::result::Result<
5722            tonic::Response<super::CreateOutputChannelResponse>,
5723            tonic::Status,
5724        >;
5725        /// Append to Output Channel
5726        async fn append_output(
5727            &self,
5728            request: tonic::Request<super::AppendOutputRequest>,
5729        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5730        /// Clear Output Channel
5731        async fn clear_output(
5732            &self,
5733            request: tonic::Request<super::ClearOutputRequest>,
5734        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5735        /// Show Output Channel
5736        async fn show_output(
5737            &self,
5738            request: tonic::Request<super::ShowOutputRequest>,
5739        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5740        /// Dispose Output Channel
5741        async fn dispose_output(
5742            &self,
5743            request: tonic::Request<super::DisposeOutputRequest>,
5744        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5745        /// Register Task Provider
5746        async fn register_task_provider(
5747            &self,
5748            request: tonic::Request<super::RegisterTaskProviderRequest>,
5749        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5750        /// Execute Task
5751        async fn execute_task(
5752            &self,
5753            request: tonic::Request<super::ExecuteTaskRequest>,
5754        ) -> std::result::Result<
5755            tonic::Response<super::ExecuteTaskResponse>,
5756            tonic::Status,
5757        >;
5758        /// Terminate Task
5759        async fn terminate_task(
5760            &self,
5761            request: tonic::Request<super::TerminateTaskRequest>,
5762        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5763        /// Get Authentication Session
5764        async fn get_authentication_session(
5765            &self,
5766            request: tonic::Request<super::GetAuthenticationSessionRequest>,
5767        ) -> std::result::Result<
5768            tonic::Response<super::GetAuthenticationSessionResponse>,
5769            tonic::Status,
5770        >;
5771        /// Register Authentication Provider
5772        async fn register_authentication_provider(
5773            &self,
5774            request: tonic::Request<super::RegisterAuthenticationProviderRequest>,
5775        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5776        /// Stop Debugging
5777        async fn stop_debugging(
5778            &self,
5779            request: tonic::Request<super::StopDebuggingRequest>,
5780        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5781        /// Get Extension
5782        async fn get_extension(
5783            &self,
5784            request: tonic::Request<super::GetExtensionRequest>,
5785        ) -> std::result::Result<
5786            tonic::Response<super::GetExtensionResponse>,
5787            tonic::Status,
5788        >;
5789        /// Get All Extensions
5790        async fn get_all_extensions(
5791            &self,
5792            request: tonic::Request<super::Empty>,
5793        ) -> std::result::Result<
5794            tonic::Response<super::GetAllExtensionsResponse>,
5795            tonic::Status,
5796        >;
5797        /// Resize Terminal
5798        async fn resize_terminal(
5799            &self,
5800            request: tonic::Request<super::ResizeTerminalRequest>,
5801        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5802        /// Get Configuration Value
5803        async fn get_configuration(
5804            &self,
5805            request: tonic::Request<super::GetConfigurationRequest>,
5806        ) -> std::result::Result<
5807            tonic::Response<super::GetConfigurationResponse>,
5808            tonic::Status,
5809        >;
5810        /// Show Text Document - Open a text document
5811        async fn show_text_document(
5812            &self,
5813            request: tonic::Request<super::ShowTextDocumentRequest>,
5814        ) -> std::result::Result<
5815            tonic::Response<super::ShowTextDocumentResponse>,
5816            tonic::Status,
5817        >;
5818        /// Show Information Message - Display an info message
5819        async fn show_information_message(
5820            &self,
5821            request: tonic::Request<super::ShowMessageRequest>,
5822        ) -> std::result::Result<
5823            tonic::Response<super::ShowMessageResponse>,
5824            tonic::Status,
5825        >;
5826        /// Show Warning Message - Display a warning message
5827        async fn show_warning_message(
5828            &self,
5829            request: tonic::Request<super::ShowMessageRequest>,
5830        ) -> std::result::Result<
5831            tonic::Response<super::ShowMessageResponse>,
5832            tonic::Status,
5833        >;
5834        /// Show Error Message - Display an error message
5835        async fn show_error_message(
5836            &self,
5837            request: tonic::Request<super::ShowMessageRequest>,
5838        ) -> std::result::Result<
5839            tonic::Response<super::ShowMessageResponse>,
5840            tonic::Status,
5841        >;
5842        /// Create Status Bar Item - Create a status bar item
5843        async fn create_status_bar_item(
5844            &self,
5845            request: tonic::Request<super::CreateStatusBarItemRequest>,
5846        ) -> std::result::Result<
5847            tonic::Response<super::CreateStatusBarItemResponse>,
5848            tonic::Status,
5849        >;
5850        /// Set Status Bar Text - Set status bar text
5851        async fn set_status_bar_text(
5852            &self,
5853            request: tonic::Request<super::SetStatusBarTextRequest>,
5854        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5855        /// Create Webview Panel - Create a new webview panel
5856        async fn create_webview_panel(
5857            &self,
5858            request: tonic::Request<super::CreateWebviewPanelRequest>,
5859        ) -> std::result::Result<
5860            tonic::Response<super::CreateWebviewPanelResponse>,
5861            tonic::Status,
5862        >;
5863        /// Set Webview HTML - Update webview HTML content
5864        async fn set_webview_html(
5865            &self,
5866            request: tonic::Request<super::SetWebviewHtmlRequest>,
5867        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5868        /// On Did Receive Message - Receive message from webview
5869        async fn on_did_receive_message(
5870            &self,
5871            request: tonic::Request<super::OnDidReceiveMessageRequest>,
5872        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5873        /// Read File - Read file contents
5874        async fn read_file(
5875            &self,
5876            request: tonic::Request<super::ReadFileRequest>,
5877        ) -> std::result::Result<
5878            tonic::Response<super::ReadFileResponse>,
5879            tonic::Status,
5880        >;
5881        /// Write File - Write file contents
5882        async fn write_file(
5883            &self,
5884            request: tonic::Request<super::WriteFileRequest>,
5885        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5886        /// Stat - Get file metadata
5887        async fn stat(
5888            &self,
5889            request: tonic::Request<super::StatRequest>,
5890        ) -> std::result::Result<tonic::Response<super::StatResponse>, tonic::Status>;
5891        /// Read Directory - List directory contents
5892        async fn readdir(
5893            &self,
5894            request: tonic::Request<super::ReaddirRequest>,
5895        ) -> std::result::Result<tonic::Response<super::ReaddirResponse>, tonic::Status>;
5896        /// Watch File - Watch file for changes
5897        async fn watch_file(
5898            &self,
5899            request: tonic::Request<super::WatchFileRequest>,
5900        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5901        /// Find Files - Search for files
5902        async fn find_files(
5903            &self,
5904            request: tonic::Request<super::FindFilesRequest>,
5905        ) -> std::result::Result<
5906            tonic::Response<super::FindFilesResponse>,
5907            tonic::Status,
5908        >;
5909        /// Find Text in Files - Search for text across files
5910        async fn find_text_in_files(
5911            &self,
5912            request: tonic::Request<super::FindTextInFilesRequest>,
5913        ) -> std::result::Result<
5914            tonic::Response<super::FindTextInFilesResponse>,
5915            tonic::Status,
5916        >;
5917        /// Open Document - Open a document
5918        async fn open_document(
5919            &self,
5920            request: tonic::Request<super::OpenDocumentRequest>,
5921        ) -> std::result::Result<
5922            tonic::Response<super::OpenDocumentResponse>,
5923            tonic::Status,
5924        >;
5925        /// Save All - Save all open documents
5926        async fn save_all(
5927            &self,
5928            request: tonic::Request<super::SaveAllRequest>,
5929        ) -> std::result::Result<tonic::Response<super::SaveAllResponse>, tonic::Status>;
5930        /// Apply Edit - Apply a text edit to a document
5931        async fn apply_edit(
5932            &self,
5933            request: tonic::Request<super::ApplyEditRequest>,
5934        ) -> std::result::Result<
5935            tonic::Response<super::ApplyEditResponse>,
5936            tonic::Status,
5937        >;
5938        /// Update Configuration - Notify of configuration changes
5939        async fn update_configuration(
5940            &self,
5941            request: tonic::Request<super::UpdateConfigurationRequest>,
5942        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5943        /// Update Workspace Folders - Update workspace folders
5944        async fn update_workspace_folders(
5945            &self,
5946            request: tonic::Request<super::UpdateWorkspaceFoldersRequest>,
5947        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5948        /// Open Terminal - Open a new terminal
5949        async fn open_terminal(
5950            &self,
5951            request: tonic::Request<super::OpenTerminalRequest>,
5952        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5953        /// Terminal Input - Send input to terminal
5954        async fn terminal_input(
5955            &self,
5956            request: tonic::Request<super::TerminalInputRequest>,
5957        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5958        /// Close Terminal - Close a terminal
5959        async fn close_terminal(
5960            &self,
5961            request: tonic::Request<super::CloseTerminalRequest>,
5962        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5963        /// Accept Terminal Opened - Notification: Terminal opened
5964        async fn accept_terminal_opened(
5965            &self,
5966            request: tonic::Request<super::TerminalOpenedNotification>,
5967        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5968        /// Accept Terminal Closed - Notification: Terminal closed
5969        async fn accept_terminal_closed(
5970            &self,
5971            request: tonic::Request<super::TerminalClosedNotification>,
5972        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5973        /// Accept Terminal Process ID - Notification: Terminal process ID
5974        async fn accept_terminal_process_id(
5975            &self,
5976            request: tonic::Request<super::TerminalProcessIdNotification>,
5977        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5978        /// Accept Terminal Process Data - Notification: Terminal output
5979        async fn accept_terminal_process_data(
5980            &self,
5981            request: tonic::Request<super::TerminalDataNotification>,
5982        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5983        /// Register Tree View Provider - Register a tree view provider
5984        async fn register_tree_view_provider(
5985            &self,
5986            request: tonic::Request<super::RegisterTreeViewProviderRequest>,
5987        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
5988        /// Get Tree Children - Request tree view children
5989        async fn get_tree_children(
5990            &self,
5991            request: tonic::Request<super::GetTreeChildrenRequest>,
5992        ) -> std::result::Result<
5993            tonic::Response<super::GetTreeChildrenResponse>,
5994            tonic::Status,
5995        >;
5996        /// Register SCM Provider - Register source control provider
5997        async fn register_scm_provider(
5998            &self,
5999            request: tonic::Request<super::RegisterScmProviderRequest>,
6000        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6001        /// Update SCM Group - Update SCM group
6002        async fn update_scm_group(
6003            &self,
6004            request: tonic::Request<super::UpdateScmGroupRequest>,
6005        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6006        /// Execute Git - Execute git command
6007        async fn git_exec(
6008            &self,
6009            request: tonic::Request<super::GitExecRequest>,
6010        ) -> std::result::Result<tonic::Response<super::GitExecResponse>, tonic::Status>;
6011        /// Register Debug Adapter - Register debug adapter
6012        async fn register_debug_adapter(
6013            &self,
6014            request: tonic::Request<super::RegisterDebugAdapterRequest>,
6015        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6016        /// Start Debugging - Start debug session
6017        async fn start_debugging(
6018            &self,
6019            request: tonic::Request<super::StartDebuggingRequest>,
6020        ) -> std::result::Result<
6021            tonic::Response<super::StartDebuggingResponse>,
6022            tonic::Status,
6023        >;
6024        /// Participate in Save - Extension participates in save
6025        async fn participate_in_save(
6026            &self,
6027            request: tonic::Request<super::ParticipateInSaveRequest>,
6028        ) -> std::result::Result<
6029            tonic::Response<super::ParticipateInSaveResponse>,
6030            tonic::Status,
6031        >;
6032        /// Get Secret - Retrieve a secret from storage
6033        async fn get_secret(
6034            &self,
6035            request: tonic::Request<super::GetSecretRequest>,
6036        ) -> std::result::Result<
6037            tonic::Response<super::GetSecretResponse>,
6038            tonic::Status,
6039        >;
6040        /// Store Secret - Store a secret in storage
6041        async fn store_secret(
6042            &self,
6043            request: tonic::Request<super::StoreSecretRequest>,
6044        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6045        /// Delete Secret - Delete a secret from storage
6046        async fn delete_secret(
6047            &self,
6048            request: tonic::Request<super::DeleteSecretRequest>,
6049        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
6050    }
6051    /// Service running on the Cocoon sidecar, listening for requests from Mountain.
6052    #[derive(Debug)]
6053    pub struct CocoonServiceServer<T> {
6054        inner: Arc<T>,
6055        accept_compression_encodings: EnabledCompressionEncodings,
6056        send_compression_encodings: EnabledCompressionEncodings,
6057        max_decoding_message_size: Option<usize>,
6058        max_encoding_message_size: Option<usize>,
6059    }
6060    impl<T> CocoonServiceServer<T> {
6061        pub fn new(inner: T) -> Self {
6062            Self::from_arc(Arc::new(inner))
6063        }
6064        pub fn from_arc(inner: Arc<T>) -> Self {
6065            Self {
6066                inner,
6067                accept_compression_encodings: Default::default(),
6068                send_compression_encodings: Default::default(),
6069                max_decoding_message_size: None,
6070                max_encoding_message_size: None,
6071            }
6072        }
6073        pub fn with_interceptor<F>(
6074            inner: T,
6075            interceptor: F,
6076        ) -> InterceptedService<Self, F>
6077        where
6078            F: tonic::service::Interceptor,
6079        {
6080            InterceptedService::new(Self::new(inner), interceptor)
6081        }
6082        /// Enable decompressing requests with the given encoding.
6083        #[must_use]
6084        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
6085            self.accept_compression_encodings.enable(encoding);
6086            self
6087        }
6088        /// Compress responses with the given encoding, if the client supports it.
6089        #[must_use]
6090        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
6091            self.send_compression_encodings.enable(encoding);
6092            self
6093        }
6094        /// Limits the maximum size of a decoded message.
6095        ///
6096        /// Default: `4MB`
6097        #[must_use]
6098        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
6099            self.max_decoding_message_size = Some(limit);
6100            self
6101        }
6102        /// Limits the maximum size of an encoded message.
6103        ///
6104        /// Default: `usize::MAX`
6105        #[must_use]
6106        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
6107            self.max_encoding_message_size = Some(limit);
6108            self
6109        }
6110    }
6111    impl<T, B> tonic::codegen::Service<http::Request<B>> for CocoonServiceServer<T>
6112    where
6113        T: CocoonService,
6114        B: Body + std::marker::Send + 'static,
6115        B::Error: Into<StdError> + std::marker::Send + 'static,
6116    {
6117        type Response = http::Response<tonic::body::Body>;
6118        type Error = std::convert::Infallible;
6119        type Future = BoxFuture<Self::Response, Self::Error>;
6120        fn poll_ready(
6121            &mut self,
6122            _cx: &mut Context<'_>,
6123        ) -> Poll<std::result::Result<(), Self::Error>> {
6124            Poll::Ready(Ok(()))
6125        }
6126        fn call(&mut self, req: http::Request<B>) -> Self::Future {
6127            match req.uri().path() {
6128                "/Vine.CocoonService/ProcessMountainRequest" => {
6129                    #[allow(non_camel_case_types)]
6130                    struct ProcessMountainRequestSvc<T: CocoonService>(pub Arc<T>);
6131                    impl<
6132                        T: CocoonService,
6133                    > tonic::server::UnaryService<super::GenericRequest>
6134                    for ProcessMountainRequestSvc<T> {
6135                        type Response = super::GenericResponse;
6136                        type Future = BoxFuture<
6137                            tonic::Response<Self::Response>,
6138                            tonic::Status,
6139                        >;
6140                        fn call(
6141                            &mut self,
6142                            request: tonic::Request<super::GenericRequest>,
6143                        ) -> Self::Future {
6144                            let inner = Arc::clone(&self.0);
6145                            let fut = async move {
6146                                <T as CocoonService>::process_mountain_request(
6147                                        &inner,
6148                                        request,
6149                                    )
6150                                    .await
6151                            };
6152                            Box::pin(fut)
6153                        }
6154                    }
6155                    let accept_compression_encodings = self.accept_compression_encodings;
6156                    let send_compression_encodings = self.send_compression_encodings;
6157                    let max_decoding_message_size = self.max_decoding_message_size;
6158                    let max_encoding_message_size = self.max_encoding_message_size;
6159                    let inner = self.inner.clone();
6160                    let fut = async move {
6161                        let method = ProcessMountainRequestSvc(inner);
6162                        let codec = tonic_prost::ProstCodec::default();
6163                        let mut grpc = tonic::server::Grpc::new(codec)
6164                            .apply_compression_config(
6165                                accept_compression_encodings,
6166                                send_compression_encodings,
6167                            )
6168                            .apply_max_message_size_config(
6169                                max_decoding_message_size,
6170                                max_encoding_message_size,
6171                            );
6172                        let res = grpc.unary(method, req).await;
6173                        Ok(res)
6174                    };
6175                    Box::pin(fut)
6176                }
6177                "/Vine.CocoonService/SendMountainNotification" => {
6178                    #[allow(non_camel_case_types)]
6179                    struct SendMountainNotificationSvc<T: CocoonService>(pub Arc<T>);
6180                    impl<
6181                        T: CocoonService,
6182                    > tonic::server::UnaryService<super::GenericNotification>
6183                    for SendMountainNotificationSvc<T> {
6184                        type Response = super::Empty;
6185                        type Future = BoxFuture<
6186                            tonic::Response<Self::Response>,
6187                            tonic::Status,
6188                        >;
6189                        fn call(
6190                            &mut self,
6191                            request: tonic::Request<super::GenericNotification>,
6192                        ) -> Self::Future {
6193                            let inner = Arc::clone(&self.0);
6194                            let fut = async move {
6195                                <T as CocoonService>::send_mountain_notification(
6196                                        &inner,
6197                                        request,
6198                                    )
6199                                    .await
6200                            };
6201                            Box::pin(fut)
6202                        }
6203                    }
6204                    let accept_compression_encodings = self.accept_compression_encodings;
6205                    let send_compression_encodings = self.send_compression_encodings;
6206                    let max_decoding_message_size = self.max_decoding_message_size;
6207                    let max_encoding_message_size = self.max_encoding_message_size;
6208                    let inner = self.inner.clone();
6209                    let fut = async move {
6210                        let method = SendMountainNotificationSvc(inner);
6211                        let codec = tonic_prost::ProstCodec::default();
6212                        let mut grpc = tonic::server::Grpc::new(codec)
6213                            .apply_compression_config(
6214                                accept_compression_encodings,
6215                                send_compression_encodings,
6216                            )
6217                            .apply_max_message_size_config(
6218                                max_decoding_message_size,
6219                                max_encoding_message_size,
6220                            );
6221                        let res = grpc.unary(method, req).await;
6222                        Ok(res)
6223                    };
6224                    Box::pin(fut)
6225                }
6226                "/Vine.CocoonService/CancelOperation" => {
6227                    #[allow(non_camel_case_types)]
6228                    struct CancelOperationSvc<T: CocoonService>(pub Arc<T>);
6229                    impl<
6230                        T: CocoonService,
6231                    > tonic::server::UnaryService<super::CancelOperationRequest>
6232                    for CancelOperationSvc<T> {
6233                        type Response = super::Empty;
6234                        type Future = BoxFuture<
6235                            tonic::Response<Self::Response>,
6236                            tonic::Status,
6237                        >;
6238                        fn call(
6239                            &mut self,
6240                            request: tonic::Request<super::CancelOperationRequest>,
6241                        ) -> Self::Future {
6242                            let inner = Arc::clone(&self.0);
6243                            let fut = async move {
6244                                <T as CocoonService>::cancel_operation(&inner, request)
6245                                    .await
6246                            };
6247                            Box::pin(fut)
6248                        }
6249                    }
6250                    let accept_compression_encodings = self.accept_compression_encodings;
6251                    let send_compression_encodings = self.send_compression_encodings;
6252                    let max_decoding_message_size = self.max_decoding_message_size;
6253                    let max_encoding_message_size = self.max_encoding_message_size;
6254                    let inner = self.inner.clone();
6255                    let fut = async move {
6256                        let method = CancelOperationSvc(inner);
6257                        let codec = tonic_prost::ProstCodec::default();
6258                        let mut grpc = tonic::server::Grpc::new(codec)
6259                            .apply_compression_config(
6260                                accept_compression_encodings,
6261                                send_compression_encodings,
6262                            )
6263                            .apply_max_message_size_config(
6264                                max_decoding_message_size,
6265                                max_encoding_message_size,
6266                            );
6267                        let res = grpc.unary(method, req).await;
6268                        Ok(res)
6269                    };
6270                    Box::pin(fut)
6271                }
6272                "/Vine.CocoonService/OpenChannelFromMountain" => {
6273                    #[allow(non_camel_case_types)]
6274                    struct OpenChannelFromMountainSvc<T: CocoonService>(pub Arc<T>);
6275                    impl<
6276                        T: CocoonService,
6277                    > tonic::server::StreamingService<super::Envelope>
6278                    for OpenChannelFromMountainSvc<T> {
6279                        type Response = super::Envelope;
6280                        type ResponseStream = T::OpenChannelFromMountainStream;
6281                        type Future = BoxFuture<
6282                            tonic::Response<Self::ResponseStream>,
6283                            tonic::Status,
6284                        >;
6285                        fn call(
6286                            &mut self,
6287                            request: tonic::Request<tonic::Streaming<super::Envelope>>,
6288                        ) -> Self::Future {
6289                            let inner = Arc::clone(&self.0);
6290                            let fut = async move {
6291                                <T as CocoonService>::open_channel_from_mountain(
6292                                        &inner,
6293                                        request,
6294                                    )
6295                                    .await
6296                            };
6297                            Box::pin(fut)
6298                        }
6299                    }
6300                    let accept_compression_encodings = self.accept_compression_encodings;
6301                    let send_compression_encodings = self.send_compression_encodings;
6302                    let max_decoding_message_size = self.max_decoding_message_size;
6303                    let max_encoding_message_size = self.max_encoding_message_size;
6304                    let inner = self.inner.clone();
6305                    let fut = async move {
6306                        let method = OpenChannelFromMountainSvc(inner);
6307                        let codec = tonic_prost::ProstCodec::default();
6308                        let mut grpc = tonic::server::Grpc::new(codec)
6309                            .apply_compression_config(
6310                                accept_compression_encodings,
6311                                send_compression_encodings,
6312                            )
6313                            .apply_max_message_size_config(
6314                                max_decoding_message_size,
6315                                max_encoding_message_size,
6316                            );
6317                        let res = grpc.streaming(method, req).await;
6318                        Ok(res)
6319                    };
6320                    Box::pin(fut)
6321                }
6322                "/Vine.CocoonService/InitialHandshake" => {
6323                    #[allow(non_camel_case_types)]
6324                    struct InitialHandshakeSvc<T: CocoonService>(pub Arc<T>);
6325                    impl<T: CocoonService> tonic::server::UnaryService<super::Empty>
6326                    for InitialHandshakeSvc<T> {
6327                        type Response = super::Empty;
6328                        type Future = BoxFuture<
6329                            tonic::Response<Self::Response>,
6330                            tonic::Status,
6331                        >;
6332                        fn call(
6333                            &mut self,
6334                            request: tonic::Request<super::Empty>,
6335                        ) -> Self::Future {
6336                            let inner = Arc::clone(&self.0);
6337                            let fut = async move {
6338                                <T as CocoonService>::initial_handshake(&inner, request)
6339                                    .await
6340                            };
6341                            Box::pin(fut)
6342                        }
6343                    }
6344                    let accept_compression_encodings = self.accept_compression_encodings;
6345                    let send_compression_encodings = self.send_compression_encodings;
6346                    let max_decoding_message_size = self.max_decoding_message_size;
6347                    let max_encoding_message_size = self.max_encoding_message_size;
6348                    let inner = self.inner.clone();
6349                    let fut = async move {
6350                        let method = InitialHandshakeSvc(inner);
6351                        let codec = tonic_prost::ProstCodec::default();
6352                        let mut grpc = tonic::server::Grpc::new(codec)
6353                            .apply_compression_config(
6354                                accept_compression_encodings,
6355                                send_compression_encodings,
6356                            )
6357                            .apply_max_message_size_config(
6358                                max_decoding_message_size,
6359                                max_encoding_message_size,
6360                            );
6361                        let res = grpc.unary(method, req).await;
6362                        Ok(res)
6363                    };
6364                    Box::pin(fut)
6365                }
6366                "/Vine.CocoonService/InitExtensionHost" => {
6367                    #[allow(non_camel_case_types)]
6368                    struct InitExtensionHostSvc<T: CocoonService>(pub Arc<T>);
6369                    impl<
6370                        T: CocoonService,
6371                    > tonic::server::UnaryService<super::InitExtensionHostRequest>
6372                    for InitExtensionHostSvc<T> {
6373                        type Response = super::Empty;
6374                        type Future = BoxFuture<
6375                            tonic::Response<Self::Response>,
6376                            tonic::Status,
6377                        >;
6378                        fn call(
6379                            &mut self,
6380                            request: tonic::Request<super::InitExtensionHostRequest>,
6381                        ) -> Self::Future {
6382                            let inner = Arc::clone(&self.0);
6383                            let fut = async move {
6384                                <T as CocoonService>::init_extension_host(&inner, request)
6385                                    .await
6386                            };
6387                            Box::pin(fut)
6388                        }
6389                    }
6390                    let accept_compression_encodings = self.accept_compression_encodings;
6391                    let send_compression_encodings = self.send_compression_encodings;
6392                    let max_decoding_message_size = self.max_decoding_message_size;
6393                    let max_encoding_message_size = self.max_encoding_message_size;
6394                    let inner = self.inner.clone();
6395                    let fut = async move {
6396                        let method = InitExtensionHostSvc(inner);
6397                        let codec = tonic_prost::ProstCodec::default();
6398                        let mut grpc = tonic::server::Grpc::new(codec)
6399                            .apply_compression_config(
6400                                accept_compression_encodings,
6401                                send_compression_encodings,
6402                            )
6403                            .apply_max_message_size_config(
6404                                max_decoding_message_size,
6405                                max_encoding_message_size,
6406                            );
6407                        let res = grpc.unary(method, req).await;
6408                        Ok(res)
6409                    };
6410                    Box::pin(fut)
6411                }
6412                "/Vine.CocoonService/RegisterCommand" => {
6413                    #[allow(non_camel_case_types)]
6414                    struct RegisterCommandSvc<T: CocoonService>(pub Arc<T>);
6415                    impl<
6416                        T: CocoonService,
6417                    > tonic::server::UnaryService<super::RegisterCommandRequest>
6418                    for RegisterCommandSvc<T> {
6419                        type Response = super::Empty;
6420                        type Future = BoxFuture<
6421                            tonic::Response<Self::Response>,
6422                            tonic::Status,
6423                        >;
6424                        fn call(
6425                            &mut self,
6426                            request: tonic::Request<super::RegisterCommandRequest>,
6427                        ) -> Self::Future {
6428                            let inner = Arc::clone(&self.0);
6429                            let fut = async move {
6430                                <T as CocoonService>::register_command(&inner, request)
6431                                    .await
6432                            };
6433                            Box::pin(fut)
6434                        }
6435                    }
6436                    let accept_compression_encodings = self.accept_compression_encodings;
6437                    let send_compression_encodings = self.send_compression_encodings;
6438                    let max_decoding_message_size = self.max_decoding_message_size;
6439                    let max_encoding_message_size = self.max_encoding_message_size;
6440                    let inner = self.inner.clone();
6441                    let fut = async move {
6442                        let method = RegisterCommandSvc(inner);
6443                        let codec = tonic_prost::ProstCodec::default();
6444                        let mut grpc = tonic::server::Grpc::new(codec)
6445                            .apply_compression_config(
6446                                accept_compression_encodings,
6447                                send_compression_encodings,
6448                            )
6449                            .apply_max_message_size_config(
6450                                max_decoding_message_size,
6451                                max_encoding_message_size,
6452                            );
6453                        let res = grpc.unary(method, req).await;
6454                        Ok(res)
6455                    };
6456                    Box::pin(fut)
6457                }
6458                "/Vine.CocoonService/ExecuteContributedCommand" => {
6459                    #[allow(non_camel_case_types)]
6460                    struct ExecuteContributedCommandSvc<T: CocoonService>(pub Arc<T>);
6461                    impl<
6462                        T: CocoonService,
6463                    > tonic::server::UnaryService<super::ExecuteCommandRequest>
6464                    for ExecuteContributedCommandSvc<T> {
6465                        type Response = super::ExecuteCommandResponse;
6466                        type Future = BoxFuture<
6467                            tonic::Response<Self::Response>,
6468                            tonic::Status,
6469                        >;
6470                        fn call(
6471                            &mut self,
6472                            request: tonic::Request<super::ExecuteCommandRequest>,
6473                        ) -> Self::Future {
6474                            let inner = Arc::clone(&self.0);
6475                            let fut = async move {
6476                                <T as CocoonService>::execute_contributed_command(
6477                                        &inner,
6478                                        request,
6479                                    )
6480                                    .await
6481                            };
6482                            Box::pin(fut)
6483                        }
6484                    }
6485                    let accept_compression_encodings = self.accept_compression_encodings;
6486                    let send_compression_encodings = self.send_compression_encodings;
6487                    let max_decoding_message_size = self.max_decoding_message_size;
6488                    let max_encoding_message_size = self.max_encoding_message_size;
6489                    let inner = self.inner.clone();
6490                    let fut = async move {
6491                        let method = ExecuteContributedCommandSvc(inner);
6492                        let codec = tonic_prost::ProstCodec::default();
6493                        let mut grpc = tonic::server::Grpc::new(codec)
6494                            .apply_compression_config(
6495                                accept_compression_encodings,
6496                                send_compression_encodings,
6497                            )
6498                            .apply_max_message_size_config(
6499                                max_decoding_message_size,
6500                                max_encoding_message_size,
6501                            );
6502                        let res = grpc.unary(method, req).await;
6503                        Ok(res)
6504                    };
6505                    Box::pin(fut)
6506                }
6507                "/Vine.CocoonService/UnregisterCommand" => {
6508                    #[allow(non_camel_case_types)]
6509                    struct UnregisterCommandSvc<T: CocoonService>(pub Arc<T>);
6510                    impl<
6511                        T: CocoonService,
6512                    > tonic::server::UnaryService<super::UnregisterCommandRequest>
6513                    for UnregisterCommandSvc<T> {
6514                        type Response = super::Empty;
6515                        type Future = BoxFuture<
6516                            tonic::Response<Self::Response>,
6517                            tonic::Status,
6518                        >;
6519                        fn call(
6520                            &mut self,
6521                            request: tonic::Request<super::UnregisterCommandRequest>,
6522                        ) -> Self::Future {
6523                            let inner = Arc::clone(&self.0);
6524                            let fut = async move {
6525                                <T as CocoonService>::unregister_command(&inner, request)
6526                                    .await
6527                            };
6528                            Box::pin(fut)
6529                        }
6530                    }
6531                    let accept_compression_encodings = self.accept_compression_encodings;
6532                    let send_compression_encodings = self.send_compression_encodings;
6533                    let max_decoding_message_size = self.max_decoding_message_size;
6534                    let max_encoding_message_size = self.max_encoding_message_size;
6535                    let inner = self.inner.clone();
6536                    let fut = async move {
6537                        let method = UnregisterCommandSvc(inner);
6538                        let codec = tonic_prost::ProstCodec::default();
6539                        let mut grpc = tonic::server::Grpc::new(codec)
6540                            .apply_compression_config(
6541                                accept_compression_encodings,
6542                                send_compression_encodings,
6543                            )
6544                            .apply_max_message_size_config(
6545                                max_decoding_message_size,
6546                                max_encoding_message_size,
6547                            );
6548                        let res = grpc.unary(method, req).await;
6549                        Ok(res)
6550                    };
6551                    Box::pin(fut)
6552                }
6553                "/Vine.CocoonService/RegisterHoverProvider" => {
6554                    #[allow(non_camel_case_types)]
6555                    struct RegisterHoverProviderSvc<T: CocoonService>(pub Arc<T>);
6556                    impl<
6557                        T: CocoonService,
6558                    > tonic::server::UnaryService<super::RegisterProviderRequest>
6559                    for RegisterHoverProviderSvc<T> {
6560                        type Response = super::Empty;
6561                        type Future = BoxFuture<
6562                            tonic::Response<Self::Response>,
6563                            tonic::Status,
6564                        >;
6565                        fn call(
6566                            &mut self,
6567                            request: tonic::Request<super::RegisterProviderRequest>,
6568                        ) -> Self::Future {
6569                            let inner = Arc::clone(&self.0);
6570                            let fut = async move {
6571                                <T as CocoonService>::register_hover_provider(
6572                                        &inner,
6573                                        request,
6574                                    )
6575                                    .await
6576                            };
6577                            Box::pin(fut)
6578                        }
6579                    }
6580                    let accept_compression_encodings = self.accept_compression_encodings;
6581                    let send_compression_encodings = self.send_compression_encodings;
6582                    let max_decoding_message_size = self.max_decoding_message_size;
6583                    let max_encoding_message_size = self.max_encoding_message_size;
6584                    let inner = self.inner.clone();
6585                    let fut = async move {
6586                        let method = RegisterHoverProviderSvc(inner);
6587                        let codec = tonic_prost::ProstCodec::default();
6588                        let mut grpc = tonic::server::Grpc::new(codec)
6589                            .apply_compression_config(
6590                                accept_compression_encodings,
6591                                send_compression_encodings,
6592                            )
6593                            .apply_max_message_size_config(
6594                                max_decoding_message_size,
6595                                max_encoding_message_size,
6596                            );
6597                        let res = grpc.unary(method, req).await;
6598                        Ok(res)
6599                    };
6600                    Box::pin(fut)
6601                }
6602                "/Vine.CocoonService/ProvideHover" => {
6603                    #[allow(non_camel_case_types)]
6604                    struct ProvideHoverSvc<T: CocoonService>(pub Arc<T>);
6605                    impl<
6606                        T: CocoonService,
6607                    > tonic::server::UnaryService<super::ProvideHoverRequest>
6608                    for ProvideHoverSvc<T> {
6609                        type Response = super::ProvideHoverResponse;
6610                        type Future = BoxFuture<
6611                            tonic::Response<Self::Response>,
6612                            tonic::Status,
6613                        >;
6614                        fn call(
6615                            &mut self,
6616                            request: tonic::Request<super::ProvideHoverRequest>,
6617                        ) -> Self::Future {
6618                            let inner = Arc::clone(&self.0);
6619                            let fut = async move {
6620                                <T as CocoonService>::provide_hover(&inner, request).await
6621                            };
6622                            Box::pin(fut)
6623                        }
6624                    }
6625                    let accept_compression_encodings = self.accept_compression_encodings;
6626                    let send_compression_encodings = self.send_compression_encodings;
6627                    let max_decoding_message_size = self.max_decoding_message_size;
6628                    let max_encoding_message_size = self.max_encoding_message_size;
6629                    let inner = self.inner.clone();
6630                    let fut = async move {
6631                        let method = ProvideHoverSvc(inner);
6632                        let codec = tonic_prost::ProstCodec::default();
6633                        let mut grpc = tonic::server::Grpc::new(codec)
6634                            .apply_compression_config(
6635                                accept_compression_encodings,
6636                                send_compression_encodings,
6637                            )
6638                            .apply_max_message_size_config(
6639                                max_decoding_message_size,
6640                                max_encoding_message_size,
6641                            );
6642                        let res = grpc.unary(method, req).await;
6643                        Ok(res)
6644                    };
6645                    Box::pin(fut)
6646                }
6647                "/Vine.CocoonService/RegisterCompletionItemProvider" => {
6648                    #[allow(non_camel_case_types)]
6649                    struct RegisterCompletionItemProviderSvc<T: CocoonService>(
6650                        pub Arc<T>,
6651                    );
6652                    impl<
6653                        T: CocoonService,
6654                    > tonic::server::UnaryService<super::RegisterProviderRequest>
6655                    for RegisterCompletionItemProviderSvc<T> {
6656                        type Response = super::Empty;
6657                        type Future = BoxFuture<
6658                            tonic::Response<Self::Response>,
6659                            tonic::Status,
6660                        >;
6661                        fn call(
6662                            &mut self,
6663                            request: tonic::Request<super::RegisterProviderRequest>,
6664                        ) -> Self::Future {
6665                            let inner = Arc::clone(&self.0);
6666                            let fut = async move {
6667                                <T as CocoonService>::register_completion_item_provider(
6668                                        &inner,
6669                                        request,
6670                                    )
6671                                    .await
6672                            };
6673                            Box::pin(fut)
6674                        }
6675                    }
6676                    let accept_compression_encodings = self.accept_compression_encodings;
6677                    let send_compression_encodings = self.send_compression_encodings;
6678                    let max_decoding_message_size = self.max_decoding_message_size;
6679                    let max_encoding_message_size = self.max_encoding_message_size;
6680                    let inner = self.inner.clone();
6681                    let fut = async move {
6682                        let method = RegisterCompletionItemProviderSvc(inner);
6683                        let codec = tonic_prost::ProstCodec::default();
6684                        let mut grpc = tonic::server::Grpc::new(codec)
6685                            .apply_compression_config(
6686                                accept_compression_encodings,
6687                                send_compression_encodings,
6688                            )
6689                            .apply_max_message_size_config(
6690                                max_decoding_message_size,
6691                                max_encoding_message_size,
6692                            );
6693                        let res = grpc.unary(method, req).await;
6694                        Ok(res)
6695                    };
6696                    Box::pin(fut)
6697                }
6698                "/Vine.CocoonService/ProvideCompletionItems" => {
6699                    #[allow(non_camel_case_types)]
6700                    struct ProvideCompletionItemsSvc<T: CocoonService>(pub Arc<T>);
6701                    impl<
6702                        T: CocoonService,
6703                    > tonic::server::UnaryService<super::ProvideCompletionItemsRequest>
6704                    for ProvideCompletionItemsSvc<T> {
6705                        type Response = super::ProvideCompletionItemsResponse;
6706                        type Future = BoxFuture<
6707                            tonic::Response<Self::Response>,
6708                            tonic::Status,
6709                        >;
6710                        fn call(
6711                            &mut self,
6712                            request: tonic::Request<super::ProvideCompletionItemsRequest>,
6713                        ) -> Self::Future {
6714                            let inner = Arc::clone(&self.0);
6715                            let fut = async move {
6716                                <T as CocoonService>::provide_completion_items(
6717                                        &inner,
6718                                        request,
6719                                    )
6720                                    .await
6721                            };
6722                            Box::pin(fut)
6723                        }
6724                    }
6725                    let accept_compression_encodings = self.accept_compression_encodings;
6726                    let send_compression_encodings = self.send_compression_encodings;
6727                    let max_decoding_message_size = self.max_decoding_message_size;
6728                    let max_encoding_message_size = self.max_encoding_message_size;
6729                    let inner = self.inner.clone();
6730                    let fut = async move {
6731                        let method = ProvideCompletionItemsSvc(inner);
6732                        let codec = tonic_prost::ProstCodec::default();
6733                        let mut grpc = tonic::server::Grpc::new(codec)
6734                            .apply_compression_config(
6735                                accept_compression_encodings,
6736                                send_compression_encodings,
6737                            )
6738                            .apply_max_message_size_config(
6739                                max_decoding_message_size,
6740                                max_encoding_message_size,
6741                            );
6742                        let res = grpc.unary(method, req).await;
6743                        Ok(res)
6744                    };
6745                    Box::pin(fut)
6746                }
6747                "/Vine.CocoonService/RegisterDefinitionProvider" => {
6748                    #[allow(non_camel_case_types)]
6749                    struct RegisterDefinitionProviderSvc<T: CocoonService>(pub Arc<T>);
6750                    impl<
6751                        T: CocoonService,
6752                    > tonic::server::UnaryService<super::RegisterProviderRequest>
6753                    for RegisterDefinitionProviderSvc<T> {
6754                        type Response = super::Empty;
6755                        type Future = BoxFuture<
6756                            tonic::Response<Self::Response>,
6757                            tonic::Status,
6758                        >;
6759                        fn call(
6760                            &mut self,
6761                            request: tonic::Request<super::RegisterProviderRequest>,
6762                        ) -> Self::Future {
6763                            let inner = Arc::clone(&self.0);
6764                            let fut = async move {
6765                                <T as CocoonService>::register_definition_provider(
6766                                        &inner,
6767                                        request,
6768                                    )
6769                                    .await
6770                            };
6771                            Box::pin(fut)
6772                        }
6773                    }
6774                    let accept_compression_encodings = self.accept_compression_encodings;
6775                    let send_compression_encodings = self.send_compression_encodings;
6776                    let max_decoding_message_size = self.max_decoding_message_size;
6777                    let max_encoding_message_size = self.max_encoding_message_size;
6778                    let inner = self.inner.clone();
6779                    let fut = async move {
6780                        let method = RegisterDefinitionProviderSvc(inner);
6781                        let codec = tonic_prost::ProstCodec::default();
6782                        let mut grpc = tonic::server::Grpc::new(codec)
6783                            .apply_compression_config(
6784                                accept_compression_encodings,
6785                                send_compression_encodings,
6786                            )
6787                            .apply_max_message_size_config(
6788                                max_decoding_message_size,
6789                                max_encoding_message_size,
6790                            );
6791                        let res = grpc.unary(method, req).await;
6792                        Ok(res)
6793                    };
6794                    Box::pin(fut)
6795                }
6796                "/Vine.CocoonService/ProvideDefinition" => {
6797                    #[allow(non_camel_case_types)]
6798                    struct ProvideDefinitionSvc<T: CocoonService>(pub Arc<T>);
6799                    impl<
6800                        T: CocoonService,
6801                    > tonic::server::UnaryService<super::ProvideDefinitionRequest>
6802                    for ProvideDefinitionSvc<T> {
6803                        type Response = super::ProvideDefinitionResponse;
6804                        type Future = BoxFuture<
6805                            tonic::Response<Self::Response>,
6806                            tonic::Status,
6807                        >;
6808                        fn call(
6809                            &mut self,
6810                            request: tonic::Request<super::ProvideDefinitionRequest>,
6811                        ) -> Self::Future {
6812                            let inner = Arc::clone(&self.0);
6813                            let fut = async move {
6814                                <T as CocoonService>::provide_definition(&inner, request)
6815                                    .await
6816                            };
6817                            Box::pin(fut)
6818                        }
6819                    }
6820                    let accept_compression_encodings = self.accept_compression_encodings;
6821                    let send_compression_encodings = self.send_compression_encodings;
6822                    let max_decoding_message_size = self.max_decoding_message_size;
6823                    let max_encoding_message_size = self.max_encoding_message_size;
6824                    let inner = self.inner.clone();
6825                    let fut = async move {
6826                        let method = ProvideDefinitionSvc(inner);
6827                        let codec = tonic_prost::ProstCodec::default();
6828                        let mut grpc = tonic::server::Grpc::new(codec)
6829                            .apply_compression_config(
6830                                accept_compression_encodings,
6831                                send_compression_encodings,
6832                            )
6833                            .apply_max_message_size_config(
6834                                max_decoding_message_size,
6835                                max_encoding_message_size,
6836                            );
6837                        let res = grpc.unary(method, req).await;
6838                        Ok(res)
6839                    };
6840                    Box::pin(fut)
6841                }
6842                "/Vine.CocoonService/RegisterReferenceProvider" => {
6843                    #[allow(non_camel_case_types)]
6844                    struct RegisterReferenceProviderSvc<T: CocoonService>(pub Arc<T>);
6845                    impl<
6846                        T: CocoonService,
6847                    > tonic::server::UnaryService<super::RegisterProviderRequest>
6848                    for RegisterReferenceProviderSvc<T> {
6849                        type Response = super::Empty;
6850                        type Future = BoxFuture<
6851                            tonic::Response<Self::Response>,
6852                            tonic::Status,
6853                        >;
6854                        fn call(
6855                            &mut self,
6856                            request: tonic::Request<super::RegisterProviderRequest>,
6857                        ) -> Self::Future {
6858                            let inner = Arc::clone(&self.0);
6859                            let fut = async move {
6860                                <T as CocoonService>::register_reference_provider(
6861                                        &inner,
6862                                        request,
6863                                    )
6864                                    .await
6865                            };
6866                            Box::pin(fut)
6867                        }
6868                    }
6869                    let accept_compression_encodings = self.accept_compression_encodings;
6870                    let send_compression_encodings = self.send_compression_encodings;
6871                    let max_decoding_message_size = self.max_decoding_message_size;
6872                    let max_encoding_message_size = self.max_encoding_message_size;
6873                    let inner = self.inner.clone();
6874                    let fut = async move {
6875                        let method = RegisterReferenceProviderSvc(inner);
6876                        let codec = tonic_prost::ProstCodec::default();
6877                        let mut grpc = tonic::server::Grpc::new(codec)
6878                            .apply_compression_config(
6879                                accept_compression_encodings,
6880                                send_compression_encodings,
6881                            )
6882                            .apply_max_message_size_config(
6883                                max_decoding_message_size,
6884                                max_encoding_message_size,
6885                            );
6886                        let res = grpc.unary(method, req).await;
6887                        Ok(res)
6888                    };
6889                    Box::pin(fut)
6890                }
6891                "/Vine.CocoonService/ProvideReferences" => {
6892                    #[allow(non_camel_case_types)]
6893                    struct ProvideReferencesSvc<T: CocoonService>(pub Arc<T>);
6894                    impl<
6895                        T: CocoonService,
6896                    > tonic::server::UnaryService<super::ProvideReferencesRequest>
6897                    for ProvideReferencesSvc<T> {
6898                        type Response = super::ProvideReferencesResponse;
6899                        type Future = BoxFuture<
6900                            tonic::Response<Self::Response>,
6901                            tonic::Status,
6902                        >;
6903                        fn call(
6904                            &mut self,
6905                            request: tonic::Request<super::ProvideReferencesRequest>,
6906                        ) -> Self::Future {
6907                            let inner = Arc::clone(&self.0);
6908                            let fut = async move {
6909                                <T as CocoonService>::provide_references(&inner, request)
6910                                    .await
6911                            };
6912                            Box::pin(fut)
6913                        }
6914                    }
6915                    let accept_compression_encodings = self.accept_compression_encodings;
6916                    let send_compression_encodings = self.send_compression_encodings;
6917                    let max_decoding_message_size = self.max_decoding_message_size;
6918                    let max_encoding_message_size = self.max_encoding_message_size;
6919                    let inner = self.inner.clone();
6920                    let fut = async move {
6921                        let method = ProvideReferencesSvc(inner);
6922                        let codec = tonic_prost::ProstCodec::default();
6923                        let mut grpc = tonic::server::Grpc::new(codec)
6924                            .apply_compression_config(
6925                                accept_compression_encodings,
6926                                send_compression_encodings,
6927                            )
6928                            .apply_max_message_size_config(
6929                                max_decoding_message_size,
6930                                max_encoding_message_size,
6931                            );
6932                        let res = grpc.unary(method, req).await;
6933                        Ok(res)
6934                    };
6935                    Box::pin(fut)
6936                }
6937                "/Vine.CocoonService/RegisterCodeActionsProvider" => {
6938                    #[allow(non_camel_case_types)]
6939                    struct RegisterCodeActionsProviderSvc<T: CocoonService>(pub Arc<T>);
6940                    impl<
6941                        T: CocoonService,
6942                    > tonic::server::UnaryService<super::RegisterProviderRequest>
6943                    for RegisterCodeActionsProviderSvc<T> {
6944                        type Response = super::Empty;
6945                        type Future = BoxFuture<
6946                            tonic::Response<Self::Response>,
6947                            tonic::Status,
6948                        >;
6949                        fn call(
6950                            &mut self,
6951                            request: tonic::Request<super::RegisterProviderRequest>,
6952                        ) -> Self::Future {
6953                            let inner = Arc::clone(&self.0);
6954                            let fut = async move {
6955                                <T as CocoonService>::register_code_actions_provider(
6956                                        &inner,
6957                                        request,
6958                                    )
6959                                    .await
6960                            };
6961                            Box::pin(fut)
6962                        }
6963                    }
6964                    let accept_compression_encodings = self.accept_compression_encodings;
6965                    let send_compression_encodings = self.send_compression_encodings;
6966                    let max_decoding_message_size = self.max_decoding_message_size;
6967                    let max_encoding_message_size = self.max_encoding_message_size;
6968                    let inner = self.inner.clone();
6969                    let fut = async move {
6970                        let method = RegisterCodeActionsProviderSvc(inner);
6971                        let codec = tonic_prost::ProstCodec::default();
6972                        let mut grpc = tonic::server::Grpc::new(codec)
6973                            .apply_compression_config(
6974                                accept_compression_encodings,
6975                                send_compression_encodings,
6976                            )
6977                            .apply_max_message_size_config(
6978                                max_decoding_message_size,
6979                                max_encoding_message_size,
6980                            );
6981                        let res = grpc.unary(method, req).await;
6982                        Ok(res)
6983                    };
6984                    Box::pin(fut)
6985                }
6986                "/Vine.CocoonService/ProvideCodeActions" => {
6987                    #[allow(non_camel_case_types)]
6988                    struct ProvideCodeActionsSvc<T: CocoonService>(pub Arc<T>);
6989                    impl<
6990                        T: CocoonService,
6991                    > tonic::server::UnaryService<super::ProvideCodeActionsRequest>
6992                    for ProvideCodeActionsSvc<T> {
6993                        type Response = super::ProvideCodeActionsResponse;
6994                        type Future = BoxFuture<
6995                            tonic::Response<Self::Response>,
6996                            tonic::Status,
6997                        >;
6998                        fn call(
6999                            &mut self,
7000                            request: tonic::Request<super::ProvideCodeActionsRequest>,
7001                        ) -> Self::Future {
7002                            let inner = Arc::clone(&self.0);
7003                            let fut = async move {
7004                                <T as CocoonService>::provide_code_actions(&inner, request)
7005                                    .await
7006                            };
7007                            Box::pin(fut)
7008                        }
7009                    }
7010                    let accept_compression_encodings = self.accept_compression_encodings;
7011                    let send_compression_encodings = self.send_compression_encodings;
7012                    let max_decoding_message_size = self.max_decoding_message_size;
7013                    let max_encoding_message_size = self.max_encoding_message_size;
7014                    let inner = self.inner.clone();
7015                    let fut = async move {
7016                        let method = ProvideCodeActionsSvc(inner);
7017                        let codec = tonic_prost::ProstCodec::default();
7018                        let mut grpc = tonic::server::Grpc::new(codec)
7019                            .apply_compression_config(
7020                                accept_compression_encodings,
7021                                send_compression_encodings,
7022                            )
7023                            .apply_max_message_size_config(
7024                                max_decoding_message_size,
7025                                max_encoding_message_size,
7026                            );
7027                        let res = grpc.unary(method, req).await;
7028                        Ok(res)
7029                    };
7030                    Box::pin(fut)
7031                }
7032                "/Vine.CocoonService/RegisterDocumentHighlightProvider" => {
7033                    #[allow(non_camel_case_types)]
7034                    struct RegisterDocumentHighlightProviderSvc<T: CocoonService>(
7035                        pub Arc<T>,
7036                    );
7037                    impl<
7038                        T: CocoonService,
7039                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7040                    for RegisterDocumentHighlightProviderSvc<T> {
7041                        type Response = super::Empty;
7042                        type Future = BoxFuture<
7043                            tonic::Response<Self::Response>,
7044                            tonic::Status,
7045                        >;
7046                        fn call(
7047                            &mut self,
7048                            request: tonic::Request<super::RegisterProviderRequest>,
7049                        ) -> Self::Future {
7050                            let inner = Arc::clone(&self.0);
7051                            let fut = async move {
7052                                <T as CocoonService>::register_document_highlight_provider(
7053                                        &inner,
7054                                        request,
7055                                    )
7056                                    .await
7057                            };
7058                            Box::pin(fut)
7059                        }
7060                    }
7061                    let accept_compression_encodings = self.accept_compression_encodings;
7062                    let send_compression_encodings = self.send_compression_encodings;
7063                    let max_decoding_message_size = self.max_decoding_message_size;
7064                    let max_encoding_message_size = self.max_encoding_message_size;
7065                    let inner = self.inner.clone();
7066                    let fut = async move {
7067                        let method = RegisterDocumentHighlightProviderSvc(inner);
7068                        let codec = tonic_prost::ProstCodec::default();
7069                        let mut grpc = tonic::server::Grpc::new(codec)
7070                            .apply_compression_config(
7071                                accept_compression_encodings,
7072                                send_compression_encodings,
7073                            )
7074                            .apply_max_message_size_config(
7075                                max_decoding_message_size,
7076                                max_encoding_message_size,
7077                            );
7078                        let res = grpc.unary(method, req).await;
7079                        Ok(res)
7080                    };
7081                    Box::pin(fut)
7082                }
7083                "/Vine.CocoonService/ProvideDocumentHighlights" => {
7084                    #[allow(non_camel_case_types)]
7085                    struct ProvideDocumentHighlightsSvc<T: CocoonService>(pub Arc<T>);
7086                    impl<
7087                        T: CocoonService,
7088                    > tonic::server::UnaryService<
7089                        super::ProvideDocumentHighlightsRequest,
7090                    > for ProvideDocumentHighlightsSvc<T> {
7091                        type Response = super::ProvideDocumentHighlightsResponse;
7092                        type Future = BoxFuture<
7093                            tonic::Response<Self::Response>,
7094                            tonic::Status,
7095                        >;
7096                        fn call(
7097                            &mut self,
7098                            request: tonic::Request<
7099                                super::ProvideDocumentHighlightsRequest,
7100                            >,
7101                        ) -> Self::Future {
7102                            let inner = Arc::clone(&self.0);
7103                            let fut = async move {
7104                                <T as CocoonService>::provide_document_highlights(
7105                                        &inner,
7106                                        request,
7107                                    )
7108                                    .await
7109                            };
7110                            Box::pin(fut)
7111                        }
7112                    }
7113                    let accept_compression_encodings = self.accept_compression_encodings;
7114                    let send_compression_encodings = self.send_compression_encodings;
7115                    let max_decoding_message_size = self.max_decoding_message_size;
7116                    let max_encoding_message_size = self.max_encoding_message_size;
7117                    let inner = self.inner.clone();
7118                    let fut = async move {
7119                        let method = ProvideDocumentHighlightsSvc(inner);
7120                        let codec = tonic_prost::ProstCodec::default();
7121                        let mut grpc = tonic::server::Grpc::new(codec)
7122                            .apply_compression_config(
7123                                accept_compression_encodings,
7124                                send_compression_encodings,
7125                            )
7126                            .apply_max_message_size_config(
7127                                max_decoding_message_size,
7128                                max_encoding_message_size,
7129                            );
7130                        let res = grpc.unary(method, req).await;
7131                        Ok(res)
7132                    };
7133                    Box::pin(fut)
7134                }
7135                "/Vine.CocoonService/RegisterDocumentSymbolProvider" => {
7136                    #[allow(non_camel_case_types)]
7137                    struct RegisterDocumentSymbolProviderSvc<T: CocoonService>(
7138                        pub Arc<T>,
7139                    );
7140                    impl<
7141                        T: CocoonService,
7142                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7143                    for RegisterDocumentSymbolProviderSvc<T> {
7144                        type Response = super::Empty;
7145                        type Future = BoxFuture<
7146                            tonic::Response<Self::Response>,
7147                            tonic::Status,
7148                        >;
7149                        fn call(
7150                            &mut self,
7151                            request: tonic::Request<super::RegisterProviderRequest>,
7152                        ) -> Self::Future {
7153                            let inner = Arc::clone(&self.0);
7154                            let fut = async move {
7155                                <T as CocoonService>::register_document_symbol_provider(
7156                                        &inner,
7157                                        request,
7158                                    )
7159                                    .await
7160                            };
7161                            Box::pin(fut)
7162                        }
7163                    }
7164                    let accept_compression_encodings = self.accept_compression_encodings;
7165                    let send_compression_encodings = self.send_compression_encodings;
7166                    let max_decoding_message_size = self.max_decoding_message_size;
7167                    let max_encoding_message_size = self.max_encoding_message_size;
7168                    let inner = self.inner.clone();
7169                    let fut = async move {
7170                        let method = RegisterDocumentSymbolProviderSvc(inner);
7171                        let codec = tonic_prost::ProstCodec::default();
7172                        let mut grpc = tonic::server::Grpc::new(codec)
7173                            .apply_compression_config(
7174                                accept_compression_encodings,
7175                                send_compression_encodings,
7176                            )
7177                            .apply_max_message_size_config(
7178                                max_decoding_message_size,
7179                                max_encoding_message_size,
7180                            );
7181                        let res = grpc.unary(method, req).await;
7182                        Ok(res)
7183                    };
7184                    Box::pin(fut)
7185                }
7186                "/Vine.CocoonService/ProvideDocumentSymbols" => {
7187                    #[allow(non_camel_case_types)]
7188                    struct ProvideDocumentSymbolsSvc<T: CocoonService>(pub Arc<T>);
7189                    impl<
7190                        T: CocoonService,
7191                    > tonic::server::UnaryService<super::ProvideDocumentSymbolsRequest>
7192                    for ProvideDocumentSymbolsSvc<T> {
7193                        type Response = super::ProvideDocumentSymbolsResponse;
7194                        type Future = BoxFuture<
7195                            tonic::Response<Self::Response>,
7196                            tonic::Status,
7197                        >;
7198                        fn call(
7199                            &mut self,
7200                            request: tonic::Request<super::ProvideDocumentSymbolsRequest>,
7201                        ) -> Self::Future {
7202                            let inner = Arc::clone(&self.0);
7203                            let fut = async move {
7204                                <T as CocoonService>::provide_document_symbols(
7205                                        &inner,
7206                                        request,
7207                                    )
7208                                    .await
7209                            };
7210                            Box::pin(fut)
7211                        }
7212                    }
7213                    let accept_compression_encodings = self.accept_compression_encodings;
7214                    let send_compression_encodings = self.send_compression_encodings;
7215                    let max_decoding_message_size = self.max_decoding_message_size;
7216                    let max_encoding_message_size = self.max_encoding_message_size;
7217                    let inner = self.inner.clone();
7218                    let fut = async move {
7219                        let method = ProvideDocumentSymbolsSvc(inner);
7220                        let codec = tonic_prost::ProstCodec::default();
7221                        let mut grpc = tonic::server::Grpc::new(codec)
7222                            .apply_compression_config(
7223                                accept_compression_encodings,
7224                                send_compression_encodings,
7225                            )
7226                            .apply_max_message_size_config(
7227                                max_decoding_message_size,
7228                                max_encoding_message_size,
7229                            );
7230                        let res = grpc.unary(method, req).await;
7231                        Ok(res)
7232                    };
7233                    Box::pin(fut)
7234                }
7235                "/Vine.CocoonService/RegisterWorkspaceSymbolProvider" => {
7236                    #[allow(non_camel_case_types)]
7237                    struct RegisterWorkspaceSymbolProviderSvc<T: CocoonService>(
7238                        pub Arc<T>,
7239                    );
7240                    impl<
7241                        T: CocoonService,
7242                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7243                    for RegisterWorkspaceSymbolProviderSvc<T> {
7244                        type Response = super::Empty;
7245                        type Future = BoxFuture<
7246                            tonic::Response<Self::Response>,
7247                            tonic::Status,
7248                        >;
7249                        fn call(
7250                            &mut self,
7251                            request: tonic::Request<super::RegisterProviderRequest>,
7252                        ) -> Self::Future {
7253                            let inner = Arc::clone(&self.0);
7254                            let fut = async move {
7255                                <T as CocoonService>::register_workspace_symbol_provider(
7256                                        &inner,
7257                                        request,
7258                                    )
7259                                    .await
7260                            };
7261                            Box::pin(fut)
7262                        }
7263                    }
7264                    let accept_compression_encodings = self.accept_compression_encodings;
7265                    let send_compression_encodings = self.send_compression_encodings;
7266                    let max_decoding_message_size = self.max_decoding_message_size;
7267                    let max_encoding_message_size = self.max_encoding_message_size;
7268                    let inner = self.inner.clone();
7269                    let fut = async move {
7270                        let method = RegisterWorkspaceSymbolProviderSvc(inner);
7271                        let codec = tonic_prost::ProstCodec::default();
7272                        let mut grpc = tonic::server::Grpc::new(codec)
7273                            .apply_compression_config(
7274                                accept_compression_encodings,
7275                                send_compression_encodings,
7276                            )
7277                            .apply_max_message_size_config(
7278                                max_decoding_message_size,
7279                                max_encoding_message_size,
7280                            );
7281                        let res = grpc.unary(method, req).await;
7282                        Ok(res)
7283                    };
7284                    Box::pin(fut)
7285                }
7286                "/Vine.CocoonService/ProvideWorkspaceSymbols" => {
7287                    #[allow(non_camel_case_types)]
7288                    struct ProvideWorkspaceSymbolsSvc<T: CocoonService>(pub Arc<T>);
7289                    impl<
7290                        T: CocoonService,
7291                    > tonic::server::UnaryService<super::ProvideWorkspaceSymbolsRequest>
7292                    for ProvideWorkspaceSymbolsSvc<T> {
7293                        type Response = super::ProvideWorkspaceSymbolsResponse;
7294                        type Future = BoxFuture<
7295                            tonic::Response<Self::Response>,
7296                            tonic::Status,
7297                        >;
7298                        fn call(
7299                            &mut self,
7300                            request: tonic::Request<
7301                                super::ProvideWorkspaceSymbolsRequest,
7302                            >,
7303                        ) -> Self::Future {
7304                            let inner = Arc::clone(&self.0);
7305                            let fut = async move {
7306                                <T as CocoonService>::provide_workspace_symbols(
7307                                        &inner,
7308                                        request,
7309                                    )
7310                                    .await
7311                            };
7312                            Box::pin(fut)
7313                        }
7314                    }
7315                    let accept_compression_encodings = self.accept_compression_encodings;
7316                    let send_compression_encodings = self.send_compression_encodings;
7317                    let max_decoding_message_size = self.max_decoding_message_size;
7318                    let max_encoding_message_size = self.max_encoding_message_size;
7319                    let inner = self.inner.clone();
7320                    let fut = async move {
7321                        let method = ProvideWorkspaceSymbolsSvc(inner);
7322                        let codec = tonic_prost::ProstCodec::default();
7323                        let mut grpc = tonic::server::Grpc::new(codec)
7324                            .apply_compression_config(
7325                                accept_compression_encodings,
7326                                send_compression_encodings,
7327                            )
7328                            .apply_max_message_size_config(
7329                                max_decoding_message_size,
7330                                max_encoding_message_size,
7331                            );
7332                        let res = grpc.unary(method, req).await;
7333                        Ok(res)
7334                    };
7335                    Box::pin(fut)
7336                }
7337                "/Vine.CocoonService/RegisterRenameProvider" => {
7338                    #[allow(non_camel_case_types)]
7339                    struct RegisterRenameProviderSvc<T: CocoonService>(pub Arc<T>);
7340                    impl<
7341                        T: CocoonService,
7342                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7343                    for RegisterRenameProviderSvc<T> {
7344                        type Response = super::Empty;
7345                        type Future = BoxFuture<
7346                            tonic::Response<Self::Response>,
7347                            tonic::Status,
7348                        >;
7349                        fn call(
7350                            &mut self,
7351                            request: tonic::Request<super::RegisterProviderRequest>,
7352                        ) -> Self::Future {
7353                            let inner = Arc::clone(&self.0);
7354                            let fut = async move {
7355                                <T as CocoonService>::register_rename_provider(
7356                                        &inner,
7357                                        request,
7358                                    )
7359                                    .await
7360                            };
7361                            Box::pin(fut)
7362                        }
7363                    }
7364                    let accept_compression_encodings = self.accept_compression_encodings;
7365                    let send_compression_encodings = self.send_compression_encodings;
7366                    let max_decoding_message_size = self.max_decoding_message_size;
7367                    let max_encoding_message_size = self.max_encoding_message_size;
7368                    let inner = self.inner.clone();
7369                    let fut = async move {
7370                        let method = RegisterRenameProviderSvc(inner);
7371                        let codec = tonic_prost::ProstCodec::default();
7372                        let mut grpc = tonic::server::Grpc::new(codec)
7373                            .apply_compression_config(
7374                                accept_compression_encodings,
7375                                send_compression_encodings,
7376                            )
7377                            .apply_max_message_size_config(
7378                                max_decoding_message_size,
7379                                max_encoding_message_size,
7380                            );
7381                        let res = grpc.unary(method, req).await;
7382                        Ok(res)
7383                    };
7384                    Box::pin(fut)
7385                }
7386                "/Vine.CocoonService/ProvideRenameEdits" => {
7387                    #[allow(non_camel_case_types)]
7388                    struct ProvideRenameEditsSvc<T: CocoonService>(pub Arc<T>);
7389                    impl<
7390                        T: CocoonService,
7391                    > tonic::server::UnaryService<super::ProvideRenameEditsRequest>
7392                    for ProvideRenameEditsSvc<T> {
7393                        type Response = super::ProvideRenameEditsResponse;
7394                        type Future = BoxFuture<
7395                            tonic::Response<Self::Response>,
7396                            tonic::Status,
7397                        >;
7398                        fn call(
7399                            &mut self,
7400                            request: tonic::Request<super::ProvideRenameEditsRequest>,
7401                        ) -> Self::Future {
7402                            let inner = Arc::clone(&self.0);
7403                            let fut = async move {
7404                                <T as CocoonService>::provide_rename_edits(&inner, request)
7405                                    .await
7406                            };
7407                            Box::pin(fut)
7408                        }
7409                    }
7410                    let accept_compression_encodings = self.accept_compression_encodings;
7411                    let send_compression_encodings = self.send_compression_encodings;
7412                    let max_decoding_message_size = self.max_decoding_message_size;
7413                    let max_encoding_message_size = self.max_encoding_message_size;
7414                    let inner = self.inner.clone();
7415                    let fut = async move {
7416                        let method = ProvideRenameEditsSvc(inner);
7417                        let codec = tonic_prost::ProstCodec::default();
7418                        let mut grpc = tonic::server::Grpc::new(codec)
7419                            .apply_compression_config(
7420                                accept_compression_encodings,
7421                                send_compression_encodings,
7422                            )
7423                            .apply_max_message_size_config(
7424                                max_decoding_message_size,
7425                                max_encoding_message_size,
7426                            );
7427                        let res = grpc.unary(method, req).await;
7428                        Ok(res)
7429                    };
7430                    Box::pin(fut)
7431                }
7432                "/Vine.CocoonService/RegisterDocumentFormattingProvider" => {
7433                    #[allow(non_camel_case_types)]
7434                    struct RegisterDocumentFormattingProviderSvc<T: CocoonService>(
7435                        pub Arc<T>,
7436                    );
7437                    impl<
7438                        T: CocoonService,
7439                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7440                    for RegisterDocumentFormattingProviderSvc<T> {
7441                        type Response = super::Empty;
7442                        type Future = BoxFuture<
7443                            tonic::Response<Self::Response>,
7444                            tonic::Status,
7445                        >;
7446                        fn call(
7447                            &mut self,
7448                            request: tonic::Request<super::RegisterProviderRequest>,
7449                        ) -> Self::Future {
7450                            let inner = Arc::clone(&self.0);
7451                            let fut = async move {
7452                                <T as CocoonService>::register_document_formatting_provider(
7453                                        &inner,
7454                                        request,
7455                                    )
7456                                    .await
7457                            };
7458                            Box::pin(fut)
7459                        }
7460                    }
7461                    let accept_compression_encodings = self.accept_compression_encodings;
7462                    let send_compression_encodings = self.send_compression_encodings;
7463                    let max_decoding_message_size = self.max_decoding_message_size;
7464                    let max_encoding_message_size = self.max_encoding_message_size;
7465                    let inner = self.inner.clone();
7466                    let fut = async move {
7467                        let method = RegisterDocumentFormattingProviderSvc(inner);
7468                        let codec = tonic_prost::ProstCodec::default();
7469                        let mut grpc = tonic::server::Grpc::new(codec)
7470                            .apply_compression_config(
7471                                accept_compression_encodings,
7472                                send_compression_encodings,
7473                            )
7474                            .apply_max_message_size_config(
7475                                max_decoding_message_size,
7476                                max_encoding_message_size,
7477                            );
7478                        let res = grpc.unary(method, req).await;
7479                        Ok(res)
7480                    };
7481                    Box::pin(fut)
7482                }
7483                "/Vine.CocoonService/ProvideDocumentFormatting" => {
7484                    #[allow(non_camel_case_types)]
7485                    struct ProvideDocumentFormattingSvc<T: CocoonService>(pub Arc<T>);
7486                    impl<
7487                        T: CocoonService,
7488                    > tonic::server::UnaryService<
7489                        super::ProvideDocumentFormattingRequest,
7490                    > for ProvideDocumentFormattingSvc<T> {
7491                        type Response = super::ProvideDocumentFormattingResponse;
7492                        type Future = BoxFuture<
7493                            tonic::Response<Self::Response>,
7494                            tonic::Status,
7495                        >;
7496                        fn call(
7497                            &mut self,
7498                            request: tonic::Request<
7499                                super::ProvideDocumentFormattingRequest,
7500                            >,
7501                        ) -> Self::Future {
7502                            let inner = Arc::clone(&self.0);
7503                            let fut = async move {
7504                                <T as CocoonService>::provide_document_formatting(
7505                                        &inner,
7506                                        request,
7507                                    )
7508                                    .await
7509                            };
7510                            Box::pin(fut)
7511                        }
7512                    }
7513                    let accept_compression_encodings = self.accept_compression_encodings;
7514                    let send_compression_encodings = self.send_compression_encodings;
7515                    let max_decoding_message_size = self.max_decoding_message_size;
7516                    let max_encoding_message_size = self.max_encoding_message_size;
7517                    let inner = self.inner.clone();
7518                    let fut = async move {
7519                        let method = ProvideDocumentFormattingSvc(inner);
7520                        let codec = tonic_prost::ProstCodec::default();
7521                        let mut grpc = tonic::server::Grpc::new(codec)
7522                            .apply_compression_config(
7523                                accept_compression_encodings,
7524                                send_compression_encodings,
7525                            )
7526                            .apply_max_message_size_config(
7527                                max_decoding_message_size,
7528                                max_encoding_message_size,
7529                            );
7530                        let res = grpc.unary(method, req).await;
7531                        Ok(res)
7532                    };
7533                    Box::pin(fut)
7534                }
7535                "/Vine.CocoonService/RegisterDocumentRangeFormattingProvider" => {
7536                    #[allow(non_camel_case_types)]
7537                    struct RegisterDocumentRangeFormattingProviderSvc<T: CocoonService>(
7538                        pub Arc<T>,
7539                    );
7540                    impl<
7541                        T: CocoonService,
7542                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7543                    for RegisterDocumentRangeFormattingProviderSvc<T> {
7544                        type Response = super::Empty;
7545                        type Future = BoxFuture<
7546                            tonic::Response<Self::Response>,
7547                            tonic::Status,
7548                        >;
7549                        fn call(
7550                            &mut self,
7551                            request: tonic::Request<super::RegisterProviderRequest>,
7552                        ) -> Self::Future {
7553                            let inner = Arc::clone(&self.0);
7554                            let fut = async move {
7555                                <T as CocoonService>::register_document_range_formatting_provider(
7556                                        &inner,
7557                                        request,
7558                                    )
7559                                    .await
7560                            };
7561                            Box::pin(fut)
7562                        }
7563                    }
7564                    let accept_compression_encodings = self.accept_compression_encodings;
7565                    let send_compression_encodings = self.send_compression_encodings;
7566                    let max_decoding_message_size = self.max_decoding_message_size;
7567                    let max_encoding_message_size = self.max_encoding_message_size;
7568                    let inner = self.inner.clone();
7569                    let fut = async move {
7570                        let method = RegisterDocumentRangeFormattingProviderSvc(inner);
7571                        let codec = tonic_prost::ProstCodec::default();
7572                        let mut grpc = tonic::server::Grpc::new(codec)
7573                            .apply_compression_config(
7574                                accept_compression_encodings,
7575                                send_compression_encodings,
7576                            )
7577                            .apply_max_message_size_config(
7578                                max_decoding_message_size,
7579                                max_encoding_message_size,
7580                            );
7581                        let res = grpc.unary(method, req).await;
7582                        Ok(res)
7583                    };
7584                    Box::pin(fut)
7585                }
7586                "/Vine.CocoonService/ProvideDocumentRangeFormatting" => {
7587                    #[allow(non_camel_case_types)]
7588                    struct ProvideDocumentRangeFormattingSvc<T: CocoonService>(
7589                        pub Arc<T>,
7590                    );
7591                    impl<
7592                        T: CocoonService,
7593                    > tonic::server::UnaryService<
7594                        super::ProvideDocumentRangeFormattingRequest,
7595                    > for ProvideDocumentRangeFormattingSvc<T> {
7596                        type Response = super::ProvideDocumentRangeFormattingResponse;
7597                        type Future = BoxFuture<
7598                            tonic::Response<Self::Response>,
7599                            tonic::Status,
7600                        >;
7601                        fn call(
7602                            &mut self,
7603                            request: tonic::Request<
7604                                super::ProvideDocumentRangeFormattingRequest,
7605                            >,
7606                        ) -> Self::Future {
7607                            let inner = Arc::clone(&self.0);
7608                            let fut = async move {
7609                                <T as CocoonService>::provide_document_range_formatting(
7610                                        &inner,
7611                                        request,
7612                                    )
7613                                    .await
7614                            };
7615                            Box::pin(fut)
7616                        }
7617                    }
7618                    let accept_compression_encodings = self.accept_compression_encodings;
7619                    let send_compression_encodings = self.send_compression_encodings;
7620                    let max_decoding_message_size = self.max_decoding_message_size;
7621                    let max_encoding_message_size = self.max_encoding_message_size;
7622                    let inner = self.inner.clone();
7623                    let fut = async move {
7624                        let method = ProvideDocumentRangeFormattingSvc(inner);
7625                        let codec = tonic_prost::ProstCodec::default();
7626                        let mut grpc = tonic::server::Grpc::new(codec)
7627                            .apply_compression_config(
7628                                accept_compression_encodings,
7629                                send_compression_encodings,
7630                            )
7631                            .apply_max_message_size_config(
7632                                max_decoding_message_size,
7633                                max_encoding_message_size,
7634                            );
7635                        let res = grpc.unary(method, req).await;
7636                        Ok(res)
7637                    };
7638                    Box::pin(fut)
7639                }
7640                "/Vine.CocoonService/RegisterOnTypeFormattingProvider" => {
7641                    #[allow(non_camel_case_types)]
7642                    struct RegisterOnTypeFormattingProviderSvc<T: CocoonService>(
7643                        pub Arc<T>,
7644                    );
7645                    impl<
7646                        T: CocoonService,
7647                    > tonic::server::UnaryService<
7648                        super::RegisterOnTypeFormattingProviderRequest,
7649                    > for RegisterOnTypeFormattingProviderSvc<T> {
7650                        type Response = super::Empty;
7651                        type Future = BoxFuture<
7652                            tonic::Response<Self::Response>,
7653                            tonic::Status,
7654                        >;
7655                        fn call(
7656                            &mut self,
7657                            request: tonic::Request<
7658                                super::RegisterOnTypeFormattingProviderRequest,
7659                            >,
7660                        ) -> Self::Future {
7661                            let inner = Arc::clone(&self.0);
7662                            let fut = async move {
7663                                <T as CocoonService>::register_on_type_formatting_provider(
7664                                        &inner,
7665                                        request,
7666                                    )
7667                                    .await
7668                            };
7669                            Box::pin(fut)
7670                        }
7671                    }
7672                    let accept_compression_encodings = self.accept_compression_encodings;
7673                    let send_compression_encodings = self.send_compression_encodings;
7674                    let max_decoding_message_size = self.max_decoding_message_size;
7675                    let max_encoding_message_size = self.max_encoding_message_size;
7676                    let inner = self.inner.clone();
7677                    let fut = async move {
7678                        let method = RegisterOnTypeFormattingProviderSvc(inner);
7679                        let codec = tonic_prost::ProstCodec::default();
7680                        let mut grpc = tonic::server::Grpc::new(codec)
7681                            .apply_compression_config(
7682                                accept_compression_encodings,
7683                                send_compression_encodings,
7684                            )
7685                            .apply_max_message_size_config(
7686                                max_decoding_message_size,
7687                                max_encoding_message_size,
7688                            );
7689                        let res = grpc.unary(method, req).await;
7690                        Ok(res)
7691                    };
7692                    Box::pin(fut)
7693                }
7694                "/Vine.CocoonService/ProvideOnTypeFormatting" => {
7695                    #[allow(non_camel_case_types)]
7696                    struct ProvideOnTypeFormattingSvc<T: CocoonService>(pub Arc<T>);
7697                    impl<
7698                        T: CocoonService,
7699                    > tonic::server::UnaryService<super::ProvideOnTypeFormattingRequest>
7700                    for ProvideOnTypeFormattingSvc<T> {
7701                        type Response = super::ProvideOnTypeFormattingResponse;
7702                        type Future = BoxFuture<
7703                            tonic::Response<Self::Response>,
7704                            tonic::Status,
7705                        >;
7706                        fn call(
7707                            &mut self,
7708                            request: tonic::Request<
7709                                super::ProvideOnTypeFormattingRequest,
7710                            >,
7711                        ) -> Self::Future {
7712                            let inner = Arc::clone(&self.0);
7713                            let fut = async move {
7714                                <T as CocoonService>::provide_on_type_formatting(
7715                                        &inner,
7716                                        request,
7717                                    )
7718                                    .await
7719                            };
7720                            Box::pin(fut)
7721                        }
7722                    }
7723                    let accept_compression_encodings = self.accept_compression_encodings;
7724                    let send_compression_encodings = self.send_compression_encodings;
7725                    let max_decoding_message_size = self.max_decoding_message_size;
7726                    let max_encoding_message_size = self.max_encoding_message_size;
7727                    let inner = self.inner.clone();
7728                    let fut = async move {
7729                        let method = ProvideOnTypeFormattingSvc(inner);
7730                        let codec = tonic_prost::ProstCodec::default();
7731                        let mut grpc = tonic::server::Grpc::new(codec)
7732                            .apply_compression_config(
7733                                accept_compression_encodings,
7734                                send_compression_encodings,
7735                            )
7736                            .apply_max_message_size_config(
7737                                max_decoding_message_size,
7738                                max_encoding_message_size,
7739                            );
7740                        let res = grpc.unary(method, req).await;
7741                        Ok(res)
7742                    };
7743                    Box::pin(fut)
7744                }
7745                "/Vine.CocoonService/RegisterSignatureHelpProvider" => {
7746                    #[allow(non_camel_case_types)]
7747                    struct RegisterSignatureHelpProviderSvc<T: CocoonService>(
7748                        pub Arc<T>,
7749                    );
7750                    impl<
7751                        T: CocoonService,
7752                    > tonic::server::UnaryService<
7753                        super::RegisterSignatureHelpProviderRequest,
7754                    > for RegisterSignatureHelpProviderSvc<T> {
7755                        type Response = super::Empty;
7756                        type Future = BoxFuture<
7757                            tonic::Response<Self::Response>,
7758                            tonic::Status,
7759                        >;
7760                        fn call(
7761                            &mut self,
7762                            request: tonic::Request<
7763                                super::RegisterSignatureHelpProviderRequest,
7764                            >,
7765                        ) -> Self::Future {
7766                            let inner = Arc::clone(&self.0);
7767                            let fut = async move {
7768                                <T as CocoonService>::register_signature_help_provider(
7769                                        &inner,
7770                                        request,
7771                                    )
7772                                    .await
7773                            };
7774                            Box::pin(fut)
7775                        }
7776                    }
7777                    let accept_compression_encodings = self.accept_compression_encodings;
7778                    let send_compression_encodings = self.send_compression_encodings;
7779                    let max_decoding_message_size = self.max_decoding_message_size;
7780                    let max_encoding_message_size = self.max_encoding_message_size;
7781                    let inner = self.inner.clone();
7782                    let fut = async move {
7783                        let method = RegisterSignatureHelpProviderSvc(inner);
7784                        let codec = tonic_prost::ProstCodec::default();
7785                        let mut grpc = tonic::server::Grpc::new(codec)
7786                            .apply_compression_config(
7787                                accept_compression_encodings,
7788                                send_compression_encodings,
7789                            )
7790                            .apply_max_message_size_config(
7791                                max_decoding_message_size,
7792                                max_encoding_message_size,
7793                            );
7794                        let res = grpc.unary(method, req).await;
7795                        Ok(res)
7796                    };
7797                    Box::pin(fut)
7798                }
7799                "/Vine.CocoonService/ProvideSignatureHelp" => {
7800                    #[allow(non_camel_case_types)]
7801                    struct ProvideSignatureHelpSvc<T: CocoonService>(pub Arc<T>);
7802                    impl<
7803                        T: CocoonService,
7804                    > tonic::server::UnaryService<super::ProvideSignatureHelpRequest>
7805                    for ProvideSignatureHelpSvc<T> {
7806                        type Response = super::ProvideSignatureHelpResponse;
7807                        type Future = BoxFuture<
7808                            tonic::Response<Self::Response>,
7809                            tonic::Status,
7810                        >;
7811                        fn call(
7812                            &mut self,
7813                            request: tonic::Request<super::ProvideSignatureHelpRequest>,
7814                        ) -> Self::Future {
7815                            let inner = Arc::clone(&self.0);
7816                            let fut = async move {
7817                                <T as CocoonService>::provide_signature_help(
7818                                        &inner,
7819                                        request,
7820                                    )
7821                                    .await
7822                            };
7823                            Box::pin(fut)
7824                        }
7825                    }
7826                    let accept_compression_encodings = self.accept_compression_encodings;
7827                    let send_compression_encodings = self.send_compression_encodings;
7828                    let max_decoding_message_size = self.max_decoding_message_size;
7829                    let max_encoding_message_size = self.max_encoding_message_size;
7830                    let inner = self.inner.clone();
7831                    let fut = async move {
7832                        let method = ProvideSignatureHelpSvc(inner);
7833                        let codec = tonic_prost::ProstCodec::default();
7834                        let mut grpc = tonic::server::Grpc::new(codec)
7835                            .apply_compression_config(
7836                                accept_compression_encodings,
7837                                send_compression_encodings,
7838                            )
7839                            .apply_max_message_size_config(
7840                                max_decoding_message_size,
7841                                max_encoding_message_size,
7842                            );
7843                        let res = grpc.unary(method, req).await;
7844                        Ok(res)
7845                    };
7846                    Box::pin(fut)
7847                }
7848                "/Vine.CocoonService/RegisterCodeLensProvider" => {
7849                    #[allow(non_camel_case_types)]
7850                    struct RegisterCodeLensProviderSvc<T: CocoonService>(pub Arc<T>);
7851                    impl<
7852                        T: CocoonService,
7853                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7854                    for RegisterCodeLensProviderSvc<T> {
7855                        type Response = super::Empty;
7856                        type Future = BoxFuture<
7857                            tonic::Response<Self::Response>,
7858                            tonic::Status,
7859                        >;
7860                        fn call(
7861                            &mut self,
7862                            request: tonic::Request<super::RegisterProviderRequest>,
7863                        ) -> Self::Future {
7864                            let inner = Arc::clone(&self.0);
7865                            let fut = async move {
7866                                <T as CocoonService>::register_code_lens_provider(
7867                                        &inner,
7868                                        request,
7869                                    )
7870                                    .await
7871                            };
7872                            Box::pin(fut)
7873                        }
7874                    }
7875                    let accept_compression_encodings = self.accept_compression_encodings;
7876                    let send_compression_encodings = self.send_compression_encodings;
7877                    let max_decoding_message_size = self.max_decoding_message_size;
7878                    let max_encoding_message_size = self.max_encoding_message_size;
7879                    let inner = self.inner.clone();
7880                    let fut = async move {
7881                        let method = RegisterCodeLensProviderSvc(inner);
7882                        let codec = tonic_prost::ProstCodec::default();
7883                        let mut grpc = tonic::server::Grpc::new(codec)
7884                            .apply_compression_config(
7885                                accept_compression_encodings,
7886                                send_compression_encodings,
7887                            )
7888                            .apply_max_message_size_config(
7889                                max_decoding_message_size,
7890                                max_encoding_message_size,
7891                            );
7892                        let res = grpc.unary(method, req).await;
7893                        Ok(res)
7894                    };
7895                    Box::pin(fut)
7896                }
7897                "/Vine.CocoonService/ProvideCodeLenses" => {
7898                    #[allow(non_camel_case_types)]
7899                    struct ProvideCodeLensesSvc<T: CocoonService>(pub Arc<T>);
7900                    impl<
7901                        T: CocoonService,
7902                    > tonic::server::UnaryService<super::ProvideCodeLensesRequest>
7903                    for ProvideCodeLensesSvc<T> {
7904                        type Response = super::ProvideCodeLensesResponse;
7905                        type Future = BoxFuture<
7906                            tonic::Response<Self::Response>,
7907                            tonic::Status,
7908                        >;
7909                        fn call(
7910                            &mut self,
7911                            request: tonic::Request<super::ProvideCodeLensesRequest>,
7912                        ) -> Self::Future {
7913                            let inner = Arc::clone(&self.0);
7914                            let fut = async move {
7915                                <T as CocoonService>::provide_code_lenses(&inner, request)
7916                                    .await
7917                            };
7918                            Box::pin(fut)
7919                        }
7920                    }
7921                    let accept_compression_encodings = self.accept_compression_encodings;
7922                    let send_compression_encodings = self.send_compression_encodings;
7923                    let max_decoding_message_size = self.max_decoding_message_size;
7924                    let max_encoding_message_size = self.max_encoding_message_size;
7925                    let inner = self.inner.clone();
7926                    let fut = async move {
7927                        let method = ProvideCodeLensesSvc(inner);
7928                        let codec = tonic_prost::ProstCodec::default();
7929                        let mut grpc = tonic::server::Grpc::new(codec)
7930                            .apply_compression_config(
7931                                accept_compression_encodings,
7932                                send_compression_encodings,
7933                            )
7934                            .apply_max_message_size_config(
7935                                max_decoding_message_size,
7936                                max_encoding_message_size,
7937                            );
7938                        let res = grpc.unary(method, req).await;
7939                        Ok(res)
7940                    };
7941                    Box::pin(fut)
7942                }
7943                "/Vine.CocoonService/RegisterFoldingRangeProvider" => {
7944                    #[allow(non_camel_case_types)]
7945                    struct RegisterFoldingRangeProviderSvc<T: CocoonService>(pub Arc<T>);
7946                    impl<
7947                        T: CocoonService,
7948                    > tonic::server::UnaryService<super::RegisterProviderRequest>
7949                    for RegisterFoldingRangeProviderSvc<T> {
7950                        type Response = super::Empty;
7951                        type Future = BoxFuture<
7952                            tonic::Response<Self::Response>,
7953                            tonic::Status,
7954                        >;
7955                        fn call(
7956                            &mut self,
7957                            request: tonic::Request<super::RegisterProviderRequest>,
7958                        ) -> Self::Future {
7959                            let inner = Arc::clone(&self.0);
7960                            let fut = async move {
7961                                <T as CocoonService>::register_folding_range_provider(
7962                                        &inner,
7963                                        request,
7964                                    )
7965                                    .await
7966                            };
7967                            Box::pin(fut)
7968                        }
7969                    }
7970                    let accept_compression_encodings = self.accept_compression_encodings;
7971                    let send_compression_encodings = self.send_compression_encodings;
7972                    let max_decoding_message_size = self.max_decoding_message_size;
7973                    let max_encoding_message_size = self.max_encoding_message_size;
7974                    let inner = self.inner.clone();
7975                    let fut = async move {
7976                        let method = RegisterFoldingRangeProviderSvc(inner);
7977                        let codec = tonic_prost::ProstCodec::default();
7978                        let mut grpc = tonic::server::Grpc::new(codec)
7979                            .apply_compression_config(
7980                                accept_compression_encodings,
7981                                send_compression_encodings,
7982                            )
7983                            .apply_max_message_size_config(
7984                                max_decoding_message_size,
7985                                max_encoding_message_size,
7986                            );
7987                        let res = grpc.unary(method, req).await;
7988                        Ok(res)
7989                    };
7990                    Box::pin(fut)
7991                }
7992                "/Vine.CocoonService/ProvideFoldingRanges" => {
7993                    #[allow(non_camel_case_types)]
7994                    struct ProvideFoldingRangesSvc<T: CocoonService>(pub Arc<T>);
7995                    impl<
7996                        T: CocoonService,
7997                    > tonic::server::UnaryService<super::ProvideFoldingRangesRequest>
7998                    for ProvideFoldingRangesSvc<T> {
7999                        type Response = super::ProvideFoldingRangesResponse;
8000                        type Future = BoxFuture<
8001                            tonic::Response<Self::Response>,
8002                            tonic::Status,
8003                        >;
8004                        fn call(
8005                            &mut self,
8006                            request: tonic::Request<super::ProvideFoldingRangesRequest>,
8007                        ) -> Self::Future {
8008                            let inner = Arc::clone(&self.0);
8009                            let fut = async move {
8010                                <T as CocoonService>::provide_folding_ranges(
8011                                        &inner,
8012                                        request,
8013                                    )
8014                                    .await
8015                            };
8016                            Box::pin(fut)
8017                        }
8018                    }
8019                    let accept_compression_encodings = self.accept_compression_encodings;
8020                    let send_compression_encodings = self.send_compression_encodings;
8021                    let max_decoding_message_size = self.max_decoding_message_size;
8022                    let max_encoding_message_size = self.max_encoding_message_size;
8023                    let inner = self.inner.clone();
8024                    let fut = async move {
8025                        let method = ProvideFoldingRangesSvc(inner);
8026                        let codec = tonic_prost::ProstCodec::default();
8027                        let mut grpc = tonic::server::Grpc::new(codec)
8028                            .apply_compression_config(
8029                                accept_compression_encodings,
8030                                send_compression_encodings,
8031                            )
8032                            .apply_max_message_size_config(
8033                                max_decoding_message_size,
8034                                max_encoding_message_size,
8035                            );
8036                        let res = grpc.unary(method, req).await;
8037                        Ok(res)
8038                    };
8039                    Box::pin(fut)
8040                }
8041                "/Vine.CocoonService/RegisterSelectionRangeProvider" => {
8042                    #[allow(non_camel_case_types)]
8043                    struct RegisterSelectionRangeProviderSvc<T: CocoonService>(
8044                        pub Arc<T>,
8045                    );
8046                    impl<
8047                        T: CocoonService,
8048                    > tonic::server::UnaryService<super::RegisterProviderRequest>
8049                    for RegisterSelectionRangeProviderSvc<T> {
8050                        type Response = super::Empty;
8051                        type Future = BoxFuture<
8052                            tonic::Response<Self::Response>,
8053                            tonic::Status,
8054                        >;
8055                        fn call(
8056                            &mut self,
8057                            request: tonic::Request<super::RegisterProviderRequest>,
8058                        ) -> Self::Future {
8059                            let inner = Arc::clone(&self.0);
8060                            let fut = async move {
8061                                <T as CocoonService>::register_selection_range_provider(
8062                                        &inner,
8063                                        request,
8064                                    )
8065                                    .await
8066                            };
8067                            Box::pin(fut)
8068                        }
8069                    }
8070                    let accept_compression_encodings = self.accept_compression_encodings;
8071                    let send_compression_encodings = self.send_compression_encodings;
8072                    let max_decoding_message_size = self.max_decoding_message_size;
8073                    let max_encoding_message_size = self.max_encoding_message_size;
8074                    let inner = self.inner.clone();
8075                    let fut = async move {
8076                        let method = RegisterSelectionRangeProviderSvc(inner);
8077                        let codec = tonic_prost::ProstCodec::default();
8078                        let mut grpc = tonic::server::Grpc::new(codec)
8079                            .apply_compression_config(
8080                                accept_compression_encodings,
8081                                send_compression_encodings,
8082                            )
8083                            .apply_max_message_size_config(
8084                                max_decoding_message_size,
8085                                max_encoding_message_size,
8086                            );
8087                        let res = grpc.unary(method, req).await;
8088                        Ok(res)
8089                    };
8090                    Box::pin(fut)
8091                }
8092                "/Vine.CocoonService/ProvideSelectionRanges" => {
8093                    #[allow(non_camel_case_types)]
8094                    struct ProvideSelectionRangesSvc<T: CocoonService>(pub Arc<T>);
8095                    impl<
8096                        T: CocoonService,
8097                    > tonic::server::UnaryService<super::ProvideSelectionRangesRequest>
8098                    for ProvideSelectionRangesSvc<T> {
8099                        type Response = super::ProvideSelectionRangesResponse;
8100                        type Future = BoxFuture<
8101                            tonic::Response<Self::Response>,
8102                            tonic::Status,
8103                        >;
8104                        fn call(
8105                            &mut self,
8106                            request: tonic::Request<super::ProvideSelectionRangesRequest>,
8107                        ) -> Self::Future {
8108                            let inner = Arc::clone(&self.0);
8109                            let fut = async move {
8110                                <T as CocoonService>::provide_selection_ranges(
8111                                        &inner,
8112                                        request,
8113                                    )
8114                                    .await
8115                            };
8116                            Box::pin(fut)
8117                        }
8118                    }
8119                    let accept_compression_encodings = self.accept_compression_encodings;
8120                    let send_compression_encodings = self.send_compression_encodings;
8121                    let max_decoding_message_size = self.max_decoding_message_size;
8122                    let max_encoding_message_size = self.max_encoding_message_size;
8123                    let inner = self.inner.clone();
8124                    let fut = async move {
8125                        let method = ProvideSelectionRangesSvc(inner);
8126                        let codec = tonic_prost::ProstCodec::default();
8127                        let mut grpc = tonic::server::Grpc::new(codec)
8128                            .apply_compression_config(
8129                                accept_compression_encodings,
8130                                send_compression_encodings,
8131                            )
8132                            .apply_max_message_size_config(
8133                                max_decoding_message_size,
8134                                max_encoding_message_size,
8135                            );
8136                        let res = grpc.unary(method, req).await;
8137                        Ok(res)
8138                    };
8139                    Box::pin(fut)
8140                }
8141                "/Vine.CocoonService/RegisterSemanticTokensProvider" => {
8142                    #[allow(non_camel_case_types)]
8143                    struct RegisterSemanticTokensProviderSvc<T: CocoonService>(
8144                        pub Arc<T>,
8145                    );
8146                    impl<
8147                        T: CocoonService,
8148                    > tonic::server::UnaryService<
8149                        super::RegisterSemanticTokensProviderRequest,
8150                    > for RegisterSemanticTokensProviderSvc<T> {
8151                        type Response = super::Empty;
8152                        type Future = BoxFuture<
8153                            tonic::Response<Self::Response>,
8154                            tonic::Status,
8155                        >;
8156                        fn call(
8157                            &mut self,
8158                            request: tonic::Request<
8159                                super::RegisterSemanticTokensProviderRequest,
8160                            >,
8161                        ) -> Self::Future {
8162                            let inner = Arc::clone(&self.0);
8163                            let fut = async move {
8164                                <T as CocoonService>::register_semantic_tokens_provider(
8165                                        &inner,
8166                                        request,
8167                                    )
8168                                    .await
8169                            };
8170                            Box::pin(fut)
8171                        }
8172                    }
8173                    let accept_compression_encodings = self.accept_compression_encodings;
8174                    let send_compression_encodings = self.send_compression_encodings;
8175                    let max_decoding_message_size = self.max_decoding_message_size;
8176                    let max_encoding_message_size = self.max_encoding_message_size;
8177                    let inner = self.inner.clone();
8178                    let fut = async move {
8179                        let method = RegisterSemanticTokensProviderSvc(inner);
8180                        let codec = tonic_prost::ProstCodec::default();
8181                        let mut grpc = tonic::server::Grpc::new(codec)
8182                            .apply_compression_config(
8183                                accept_compression_encodings,
8184                                send_compression_encodings,
8185                            )
8186                            .apply_max_message_size_config(
8187                                max_decoding_message_size,
8188                                max_encoding_message_size,
8189                            );
8190                        let res = grpc.unary(method, req).await;
8191                        Ok(res)
8192                    };
8193                    Box::pin(fut)
8194                }
8195                "/Vine.CocoonService/ProvideSemanticTokensFull" => {
8196                    #[allow(non_camel_case_types)]
8197                    struct ProvideSemanticTokensFullSvc<T: CocoonService>(pub Arc<T>);
8198                    impl<
8199                        T: CocoonService,
8200                    > tonic::server::UnaryService<super::ProvideSemanticTokensRequest>
8201                    for ProvideSemanticTokensFullSvc<T> {
8202                        type Response = super::ProvideSemanticTokensResponse;
8203                        type Future = BoxFuture<
8204                            tonic::Response<Self::Response>,
8205                            tonic::Status,
8206                        >;
8207                        fn call(
8208                            &mut self,
8209                            request: tonic::Request<super::ProvideSemanticTokensRequest>,
8210                        ) -> Self::Future {
8211                            let inner = Arc::clone(&self.0);
8212                            let fut = async move {
8213                                <T as CocoonService>::provide_semantic_tokens_full(
8214                                        &inner,
8215                                        request,
8216                                    )
8217                                    .await
8218                            };
8219                            Box::pin(fut)
8220                        }
8221                    }
8222                    let accept_compression_encodings = self.accept_compression_encodings;
8223                    let send_compression_encodings = self.send_compression_encodings;
8224                    let max_decoding_message_size = self.max_decoding_message_size;
8225                    let max_encoding_message_size = self.max_encoding_message_size;
8226                    let inner = self.inner.clone();
8227                    let fut = async move {
8228                        let method = ProvideSemanticTokensFullSvc(inner);
8229                        let codec = tonic_prost::ProstCodec::default();
8230                        let mut grpc = tonic::server::Grpc::new(codec)
8231                            .apply_compression_config(
8232                                accept_compression_encodings,
8233                                send_compression_encodings,
8234                            )
8235                            .apply_max_message_size_config(
8236                                max_decoding_message_size,
8237                                max_encoding_message_size,
8238                            );
8239                        let res = grpc.unary(method, req).await;
8240                        Ok(res)
8241                    };
8242                    Box::pin(fut)
8243                }
8244                "/Vine.CocoonService/RegisterInlayHintsProvider" => {
8245                    #[allow(non_camel_case_types)]
8246                    struct RegisterInlayHintsProviderSvc<T: CocoonService>(pub Arc<T>);
8247                    impl<
8248                        T: CocoonService,
8249                    > tonic::server::UnaryService<super::RegisterProviderRequest>
8250                    for RegisterInlayHintsProviderSvc<T> {
8251                        type Response = super::Empty;
8252                        type Future = BoxFuture<
8253                            tonic::Response<Self::Response>,
8254                            tonic::Status,
8255                        >;
8256                        fn call(
8257                            &mut self,
8258                            request: tonic::Request<super::RegisterProviderRequest>,
8259                        ) -> Self::Future {
8260                            let inner = Arc::clone(&self.0);
8261                            let fut = async move {
8262                                <T as CocoonService>::register_inlay_hints_provider(
8263                                        &inner,
8264                                        request,
8265                                    )
8266                                    .await
8267                            };
8268                            Box::pin(fut)
8269                        }
8270                    }
8271                    let accept_compression_encodings = self.accept_compression_encodings;
8272                    let send_compression_encodings = self.send_compression_encodings;
8273                    let max_decoding_message_size = self.max_decoding_message_size;
8274                    let max_encoding_message_size = self.max_encoding_message_size;
8275                    let inner = self.inner.clone();
8276                    let fut = async move {
8277                        let method = RegisterInlayHintsProviderSvc(inner);
8278                        let codec = tonic_prost::ProstCodec::default();
8279                        let mut grpc = tonic::server::Grpc::new(codec)
8280                            .apply_compression_config(
8281                                accept_compression_encodings,
8282                                send_compression_encodings,
8283                            )
8284                            .apply_max_message_size_config(
8285                                max_decoding_message_size,
8286                                max_encoding_message_size,
8287                            );
8288                        let res = grpc.unary(method, req).await;
8289                        Ok(res)
8290                    };
8291                    Box::pin(fut)
8292                }
8293                "/Vine.CocoonService/ProvideInlayHints" => {
8294                    #[allow(non_camel_case_types)]
8295                    struct ProvideInlayHintsSvc<T: CocoonService>(pub Arc<T>);
8296                    impl<
8297                        T: CocoonService,
8298                    > tonic::server::UnaryService<super::ProvideInlayHintsRequest>
8299                    for ProvideInlayHintsSvc<T> {
8300                        type Response = super::ProvideInlayHintsResponse;
8301                        type Future = BoxFuture<
8302                            tonic::Response<Self::Response>,
8303                            tonic::Status,
8304                        >;
8305                        fn call(
8306                            &mut self,
8307                            request: tonic::Request<super::ProvideInlayHintsRequest>,
8308                        ) -> Self::Future {
8309                            let inner = Arc::clone(&self.0);
8310                            let fut = async move {
8311                                <T as CocoonService>::provide_inlay_hints(&inner, request)
8312                                    .await
8313                            };
8314                            Box::pin(fut)
8315                        }
8316                    }
8317                    let accept_compression_encodings = self.accept_compression_encodings;
8318                    let send_compression_encodings = self.send_compression_encodings;
8319                    let max_decoding_message_size = self.max_decoding_message_size;
8320                    let max_encoding_message_size = self.max_encoding_message_size;
8321                    let inner = self.inner.clone();
8322                    let fut = async move {
8323                        let method = ProvideInlayHintsSvc(inner);
8324                        let codec = tonic_prost::ProstCodec::default();
8325                        let mut grpc = tonic::server::Grpc::new(codec)
8326                            .apply_compression_config(
8327                                accept_compression_encodings,
8328                                send_compression_encodings,
8329                            )
8330                            .apply_max_message_size_config(
8331                                max_decoding_message_size,
8332                                max_encoding_message_size,
8333                            );
8334                        let res = grpc.unary(method, req).await;
8335                        Ok(res)
8336                    };
8337                    Box::pin(fut)
8338                }
8339                "/Vine.CocoonService/RegisterTypeHierarchyProvider" => {
8340                    #[allow(non_camel_case_types)]
8341                    struct RegisterTypeHierarchyProviderSvc<T: CocoonService>(
8342                        pub Arc<T>,
8343                    );
8344                    impl<
8345                        T: CocoonService,
8346                    > tonic::server::UnaryService<super::RegisterProviderRequest>
8347                    for RegisterTypeHierarchyProviderSvc<T> {
8348                        type Response = super::Empty;
8349                        type Future = BoxFuture<
8350                            tonic::Response<Self::Response>,
8351                            tonic::Status,
8352                        >;
8353                        fn call(
8354                            &mut self,
8355                            request: tonic::Request<super::RegisterProviderRequest>,
8356                        ) -> Self::Future {
8357                            let inner = Arc::clone(&self.0);
8358                            let fut = async move {
8359                                <T as CocoonService>::register_type_hierarchy_provider(
8360                                        &inner,
8361                                        request,
8362                                    )
8363                                    .await
8364                            };
8365                            Box::pin(fut)
8366                        }
8367                    }
8368                    let accept_compression_encodings = self.accept_compression_encodings;
8369                    let send_compression_encodings = self.send_compression_encodings;
8370                    let max_decoding_message_size = self.max_decoding_message_size;
8371                    let max_encoding_message_size = self.max_encoding_message_size;
8372                    let inner = self.inner.clone();
8373                    let fut = async move {
8374                        let method = RegisterTypeHierarchyProviderSvc(inner);
8375                        let codec = tonic_prost::ProstCodec::default();
8376                        let mut grpc = tonic::server::Grpc::new(codec)
8377                            .apply_compression_config(
8378                                accept_compression_encodings,
8379                                send_compression_encodings,
8380                            )
8381                            .apply_max_message_size_config(
8382                                max_decoding_message_size,
8383                                max_encoding_message_size,
8384                            );
8385                        let res = grpc.unary(method, req).await;
8386                        Ok(res)
8387                    };
8388                    Box::pin(fut)
8389                }
8390                "/Vine.CocoonService/ProvideTypeHierarchySupertypes" => {
8391                    #[allow(non_camel_case_types)]
8392                    struct ProvideTypeHierarchySupertypesSvc<T: CocoonService>(
8393                        pub Arc<T>,
8394                    );
8395                    impl<
8396                        T: CocoonService,
8397                    > tonic::server::UnaryService<super::ProvideTypeHierarchyRequest>
8398                    for ProvideTypeHierarchySupertypesSvc<T> {
8399                        type Response = super::ProvideTypeHierarchyResponse;
8400                        type Future = BoxFuture<
8401                            tonic::Response<Self::Response>,
8402                            tonic::Status,
8403                        >;
8404                        fn call(
8405                            &mut self,
8406                            request: tonic::Request<super::ProvideTypeHierarchyRequest>,
8407                        ) -> Self::Future {
8408                            let inner = Arc::clone(&self.0);
8409                            let fut = async move {
8410                                <T as CocoonService>::provide_type_hierarchy_supertypes(
8411                                        &inner,
8412                                        request,
8413                                    )
8414                                    .await
8415                            };
8416                            Box::pin(fut)
8417                        }
8418                    }
8419                    let accept_compression_encodings = self.accept_compression_encodings;
8420                    let send_compression_encodings = self.send_compression_encodings;
8421                    let max_decoding_message_size = self.max_decoding_message_size;
8422                    let max_encoding_message_size = self.max_encoding_message_size;
8423                    let inner = self.inner.clone();
8424                    let fut = async move {
8425                        let method = ProvideTypeHierarchySupertypesSvc(inner);
8426                        let codec = tonic_prost::ProstCodec::default();
8427                        let mut grpc = tonic::server::Grpc::new(codec)
8428                            .apply_compression_config(
8429                                accept_compression_encodings,
8430                                send_compression_encodings,
8431                            )
8432                            .apply_max_message_size_config(
8433                                max_decoding_message_size,
8434                                max_encoding_message_size,
8435                            );
8436                        let res = grpc.unary(method, req).await;
8437                        Ok(res)
8438                    };
8439                    Box::pin(fut)
8440                }
8441                "/Vine.CocoonService/ProvideTypeHierarchySubtypes" => {
8442                    #[allow(non_camel_case_types)]
8443                    struct ProvideTypeHierarchySubtypesSvc<T: CocoonService>(pub Arc<T>);
8444                    impl<
8445                        T: CocoonService,
8446                    > tonic::server::UnaryService<super::ProvideTypeHierarchyRequest>
8447                    for ProvideTypeHierarchySubtypesSvc<T> {
8448                        type Response = super::ProvideTypeHierarchyResponse;
8449                        type Future = BoxFuture<
8450                            tonic::Response<Self::Response>,
8451                            tonic::Status,
8452                        >;
8453                        fn call(
8454                            &mut self,
8455                            request: tonic::Request<super::ProvideTypeHierarchyRequest>,
8456                        ) -> Self::Future {
8457                            let inner = Arc::clone(&self.0);
8458                            let fut = async move {
8459                                <T as CocoonService>::provide_type_hierarchy_subtypes(
8460                                        &inner,
8461                                        request,
8462                                    )
8463                                    .await
8464                            };
8465                            Box::pin(fut)
8466                        }
8467                    }
8468                    let accept_compression_encodings = self.accept_compression_encodings;
8469                    let send_compression_encodings = self.send_compression_encodings;
8470                    let max_decoding_message_size = self.max_decoding_message_size;
8471                    let max_encoding_message_size = self.max_encoding_message_size;
8472                    let inner = self.inner.clone();
8473                    let fut = async move {
8474                        let method = ProvideTypeHierarchySubtypesSvc(inner);
8475                        let codec = tonic_prost::ProstCodec::default();
8476                        let mut grpc = tonic::server::Grpc::new(codec)
8477                            .apply_compression_config(
8478                                accept_compression_encodings,
8479                                send_compression_encodings,
8480                            )
8481                            .apply_max_message_size_config(
8482                                max_decoding_message_size,
8483                                max_encoding_message_size,
8484                            );
8485                        let res = grpc.unary(method, req).await;
8486                        Ok(res)
8487                    };
8488                    Box::pin(fut)
8489                }
8490                "/Vine.CocoonService/RegisterCallHierarchyProvider" => {
8491                    #[allow(non_camel_case_types)]
8492                    struct RegisterCallHierarchyProviderSvc<T: CocoonService>(
8493                        pub Arc<T>,
8494                    );
8495                    impl<
8496                        T: CocoonService,
8497                    > tonic::server::UnaryService<super::RegisterProviderRequest>
8498                    for RegisterCallHierarchyProviderSvc<T> {
8499                        type Response = super::Empty;
8500                        type Future = BoxFuture<
8501                            tonic::Response<Self::Response>,
8502                            tonic::Status,
8503                        >;
8504                        fn call(
8505                            &mut self,
8506                            request: tonic::Request<super::RegisterProviderRequest>,
8507                        ) -> Self::Future {
8508                            let inner = Arc::clone(&self.0);
8509                            let fut = async move {
8510                                <T as CocoonService>::register_call_hierarchy_provider(
8511                                        &inner,
8512                                        request,
8513                                    )
8514                                    .await
8515                            };
8516                            Box::pin(fut)
8517                        }
8518                    }
8519                    let accept_compression_encodings = self.accept_compression_encodings;
8520                    let send_compression_encodings = self.send_compression_encodings;
8521                    let max_decoding_message_size = self.max_decoding_message_size;
8522                    let max_encoding_message_size = self.max_encoding_message_size;
8523                    let inner = self.inner.clone();
8524                    let fut = async move {
8525                        let method = RegisterCallHierarchyProviderSvc(inner);
8526                        let codec = tonic_prost::ProstCodec::default();
8527                        let mut grpc = tonic::server::Grpc::new(codec)
8528                            .apply_compression_config(
8529                                accept_compression_encodings,
8530                                send_compression_encodings,
8531                            )
8532                            .apply_max_message_size_config(
8533                                max_decoding_message_size,
8534                                max_encoding_message_size,
8535                            );
8536                        let res = grpc.unary(method, req).await;
8537                        Ok(res)
8538                    };
8539                    Box::pin(fut)
8540                }
8541                "/Vine.CocoonService/ProvideCallHierarchyIncomingCalls" => {
8542                    #[allow(non_camel_case_types)]
8543                    struct ProvideCallHierarchyIncomingCallsSvc<T: CocoonService>(
8544                        pub Arc<T>,
8545                    );
8546                    impl<
8547                        T: CocoonService,
8548                    > tonic::server::UnaryService<super::ProvideCallHierarchyRequest>
8549                    for ProvideCallHierarchyIncomingCallsSvc<T> {
8550                        type Response = super::ProvideCallHierarchyResponse;
8551                        type Future = BoxFuture<
8552                            tonic::Response<Self::Response>,
8553                            tonic::Status,
8554                        >;
8555                        fn call(
8556                            &mut self,
8557                            request: tonic::Request<super::ProvideCallHierarchyRequest>,
8558                        ) -> Self::Future {
8559                            let inner = Arc::clone(&self.0);
8560                            let fut = async move {
8561                                <T as CocoonService>::provide_call_hierarchy_incoming_calls(
8562                                        &inner,
8563                                        request,
8564                                    )
8565                                    .await
8566                            };
8567                            Box::pin(fut)
8568                        }
8569                    }
8570                    let accept_compression_encodings = self.accept_compression_encodings;
8571                    let send_compression_encodings = self.send_compression_encodings;
8572                    let max_decoding_message_size = self.max_decoding_message_size;
8573                    let max_encoding_message_size = self.max_encoding_message_size;
8574                    let inner = self.inner.clone();
8575                    let fut = async move {
8576                        let method = ProvideCallHierarchyIncomingCallsSvc(inner);
8577                        let codec = tonic_prost::ProstCodec::default();
8578                        let mut grpc = tonic::server::Grpc::new(codec)
8579                            .apply_compression_config(
8580                                accept_compression_encodings,
8581                                send_compression_encodings,
8582                            )
8583                            .apply_max_message_size_config(
8584                                max_decoding_message_size,
8585                                max_encoding_message_size,
8586                            );
8587                        let res = grpc.unary(method, req).await;
8588                        Ok(res)
8589                    };
8590                    Box::pin(fut)
8591                }
8592                "/Vine.CocoonService/ProvideCallHierarchyOutgoingCalls" => {
8593                    #[allow(non_camel_case_types)]
8594                    struct ProvideCallHierarchyOutgoingCallsSvc<T: CocoonService>(
8595                        pub Arc<T>,
8596                    );
8597                    impl<
8598                        T: CocoonService,
8599                    > tonic::server::UnaryService<super::ProvideCallHierarchyRequest>
8600                    for ProvideCallHierarchyOutgoingCallsSvc<T> {
8601                        type Response = super::ProvideCallHierarchyResponse;
8602                        type Future = BoxFuture<
8603                            tonic::Response<Self::Response>,
8604                            tonic::Status,
8605                        >;
8606                        fn call(
8607                            &mut self,
8608                            request: tonic::Request<super::ProvideCallHierarchyRequest>,
8609                        ) -> Self::Future {
8610                            let inner = Arc::clone(&self.0);
8611                            let fut = async move {
8612                                <T as CocoonService>::provide_call_hierarchy_outgoing_calls(
8613                                        &inner,
8614                                        request,
8615                                    )
8616                                    .await
8617                            };
8618                            Box::pin(fut)
8619                        }
8620                    }
8621                    let accept_compression_encodings = self.accept_compression_encodings;
8622                    let send_compression_encodings = self.send_compression_encodings;
8623                    let max_decoding_message_size = self.max_decoding_message_size;
8624                    let max_encoding_message_size = self.max_encoding_message_size;
8625                    let inner = self.inner.clone();
8626                    let fut = async move {
8627                        let method = ProvideCallHierarchyOutgoingCallsSvc(inner);
8628                        let codec = tonic_prost::ProstCodec::default();
8629                        let mut grpc = tonic::server::Grpc::new(codec)
8630                            .apply_compression_config(
8631                                accept_compression_encodings,
8632                                send_compression_encodings,
8633                            )
8634                            .apply_max_message_size_config(
8635                                max_decoding_message_size,
8636                                max_encoding_message_size,
8637                            );
8638                        let res = grpc.unary(method, req).await;
8639                        Ok(res)
8640                    };
8641                    Box::pin(fut)
8642                }
8643                "/Vine.CocoonService/RegisterLinkedEditingRangeProvider" => {
8644                    #[allow(non_camel_case_types)]
8645                    struct RegisterLinkedEditingRangeProviderSvc<T: CocoonService>(
8646                        pub Arc<T>,
8647                    );
8648                    impl<
8649                        T: CocoonService,
8650                    > tonic::server::UnaryService<super::RegisterProviderRequest>
8651                    for RegisterLinkedEditingRangeProviderSvc<T> {
8652                        type Response = super::Empty;
8653                        type Future = BoxFuture<
8654                            tonic::Response<Self::Response>,
8655                            tonic::Status,
8656                        >;
8657                        fn call(
8658                            &mut self,
8659                            request: tonic::Request<super::RegisterProviderRequest>,
8660                        ) -> Self::Future {
8661                            let inner = Arc::clone(&self.0);
8662                            let fut = async move {
8663                                <T as CocoonService>::register_linked_editing_range_provider(
8664                                        &inner,
8665                                        request,
8666                                    )
8667                                    .await
8668                            };
8669                            Box::pin(fut)
8670                        }
8671                    }
8672                    let accept_compression_encodings = self.accept_compression_encodings;
8673                    let send_compression_encodings = self.send_compression_encodings;
8674                    let max_decoding_message_size = self.max_decoding_message_size;
8675                    let max_encoding_message_size = self.max_encoding_message_size;
8676                    let inner = self.inner.clone();
8677                    let fut = async move {
8678                        let method = RegisterLinkedEditingRangeProviderSvc(inner);
8679                        let codec = tonic_prost::ProstCodec::default();
8680                        let mut grpc = tonic::server::Grpc::new(codec)
8681                            .apply_compression_config(
8682                                accept_compression_encodings,
8683                                send_compression_encodings,
8684                            )
8685                            .apply_max_message_size_config(
8686                                max_decoding_message_size,
8687                                max_encoding_message_size,
8688                            );
8689                        let res = grpc.unary(method, req).await;
8690                        Ok(res)
8691                    };
8692                    Box::pin(fut)
8693                }
8694                "/Vine.CocoonService/ProvideLinkedEditingRanges" => {
8695                    #[allow(non_camel_case_types)]
8696                    struct ProvideLinkedEditingRangesSvc<T: CocoonService>(pub Arc<T>);
8697                    impl<
8698                        T: CocoonService,
8699                    > tonic::server::UnaryService<
8700                        super::ProvideLinkedEditingRangesRequest,
8701                    > for ProvideLinkedEditingRangesSvc<T> {
8702                        type Response = super::ProvideLinkedEditingRangesResponse;
8703                        type Future = BoxFuture<
8704                            tonic::Response<Self::Response>,
8705                            tonic::Status,
8706                        >;
8707                        fn call(
8708                            &mut self,
8709                            request: tonic::Request<
8710                                super::ProvideLinkedEditingRangesRequest,
8711                            >,
8712                        ) -> Self::Future {
8713                            let inner = Arc::clone(&self.0);
8714                            let fut = async move {
8715                                <T as CocoonService>::provide_linked_editing_ranges(
8716                                        &inner,
8717                                        request,
8718                                    )
8719                                    .await
8720                            };
8721                            Box::pin(fut)
8722                        }
8723                    }
8724                    let accept_compression_encodings = self.accept_compression_encodings;
8725                    let send_compression_encodings = self.send_compression_encodings;
8726                    let max_decoding_message_size = self.max_decoding_message_size;
8727                    let max_encoding_message_size = self.max_encoding_message_size;
8728                    let inner = self.inner.clone();
8729                    let fut = async move {
8730                        let method = ProvideLinkedEditingRangesSvc(inner);
8731                        let codec = tonic_prost::ProstCodec::default();
8732                        let mut grpc = tonic::server::Grpc::new(codec)
8733                            .apply_compression_config(
8734                                accept_compression_encodings,
8735                                send_compression_encodings,
8736                            )
8737                            .apply_max_message_size_config(
8738                                max_decoding_message_size,
8739                                max_encoding_message_size,
8740                            );
8741                        let res = grpc.unary(method, req).await;
8742                        Ok(res)
8743                    };
8744                    Box::pin(fut)
8745                }
8746                "/Vine.CocoonService/ShowQuickPick" => {
8747                    #[allow(non_camel_case_types)]
8748                    struct ShowQuickPickSvc<T: CocoonService>(pub Arc<T>);
8749                    impl<
8750                        T: CocoonService,
8751                    > tonic::server::UnaryService<super::ShowQuickPickRequest>
8752                    for ShowQuickPickSvc<T> {
8753                        type Response = super::ShowQuickPickResponse;
8754                        type Future = BoxFuture<
8755                            tonic::Response<Self::Response>,
8756                            tonic::Status,
8757                        >;
8758                        fn call(
8759                            &mut self,
8760                            request: tonic::Request<super::ShowQuickPickRequest>,
8761                        ) -> Self::Future {
8762                            let inner = Arc::clone(&self.0);
8763                            let fut = async move {
8764                                <T as CocoonService>::show_quick_pick(&inner, request).await
8765                            };
8766                            Box::pin(fut)
8767                        }
8768                    }
8769                    let accept_compression_encodings = self.accept_compression_encodings;
8770                    let send_compression_encodings = self.send_compression_encodings;
8771                    let max_decoding_message_size = self.max_decoding_message_size;
8772                    let max_encoding_message_size = self.max_encoding_message_size;
8773                    let inner = self.inner.clone();
8774                    let fut = async move {
8775                        let method = ShowQuickPickSvc(inner);
8776                        let codec = tonic_prost::ProstCodec::default();
8777                        let mut grpc = tonic::server::Grpc::new(codec)
8778                            .apply_compression_config(
8779                                accept_compression_encodings,
8780                                send_compression_encodings,
8781                            )
8782                            .apply_max_message_size_config(
8783                                max_decoding_message_size,
8784                                max_encoding_message_size,
8785                            );
8786                        let res = grpc.unary(method, req).await;
8787                        Ok(res)
8788                    };
8789                    Box::pin(fut)
8790                }
8791                "/Vine.CocoonService/ShowInputBox" => {
8792                    #[allow(non_camel_case_types)]
8793                    struct ShowInputBoxSvc<T: CocoonService>(pub Arc<T>);
8794                    impl<
8795                        T: CocoonService,
8796                    > tonic::server::UnaryService<super::ShowInputBoxRequest>
8797                    for ShowInputBoxSvc<T> {
8798                        type Response = super::ShowInputBoxResponse;
8799                        type Future = BoxFuture<
8800                            tonic::Response<Self::Response>,
8801                            tonic::Status,
8802                        >;
8803                        fn call(
8804                            &mut self,
8805                            request: tonic::Request<super::ShowInputBoxRequest>,
8806                        ) -> Self::Future {
8807                            let inner = Arc::clone(&self.0);
8808                            let fut = async move {
8809                                <T as CocoonService>::show_input_box(&inner, request).await
8810                            };
8811                            Box::pin(fut)
8812                        }
8813                    }
8814                    let accept_compression_encodings = self.accept_compression_encodings;
8815                    let send_compression_encodings = self.send_compression_encodings;
8816                    let max_decoding_message_size = self.max_decoding_message_size;
8817                    let max_encoding_message_size = self.max_encoding_message_size;
8818                    let inner = self.inner.clone();
8819                    let fut = async move {
8820                        let method = ShowInputBoxSvc(inner);
8821                        let codec = tonic_prost::ProstCodec::default();
8822                        let mut grpc = tonic::server::Grpc::new(codec)
8823                            .apply_compression_config(
8824                                accept_compression_encodings,
8825                                send_compression_encodings,
8826                            )
8827                            .apply_max_message_size_config(
8828                                max_decoding_message_size,
8829                                max_encoding_message_size,
8830                            );
8831                        let res = grpc.unary(method, req).await;
8832                        Ok(res)
8833                    };
8834                    Box::pin(fut)
8835                }
8836                "/Vine.CocoonService/ShowProgress" => {
8837                    #[allow(non_camel_case_types)]
8838                    struct ShowProgressSvc<T: CocoonService>(pub Arc<T>);
8839                    impl<
8840                        T: CocoonService,
8841                    > tonic::server::UnaryService<super::ShowProgressRequest>
8842                    for ShowProgressSvc<T> {
8843                        type Response = super::ShowProgressResponse;
8844                        type Future = BoxFuture<
8845                            tonic::Response<Self::Response>,
8846                            tonic::Status,
8847                        >;
8848                        fn call(
8849                            &mut self,
8850                            request: tonic::Request<super::ShowProgressRequest>,
8851                        ) -> Self::Future {
8852                            let inner = Arc::clone(&self.0);
8853                            let fut = async move {
8854                                <T as CocoonService>::show_progress(&inner, request).await
8855                            };
8856                            Box::pin(fut)
8857                        }
8858                    }
8859                    let accept_compression_encodings = self.accept_compression_encodings;
8860                    let send_compression_encodings = self.send_compression_encodings;
8861                    let max_decoding_message_size = self.max_decoding_message_size;
8862                    let max_encoding_message_size = self.max_encoding_message_size;
8863                    let inner = self.inner.clone();
8864                    let fut = async move {
8865                        let method = ShowProgressSvc(inner);
8866                        let codec = tonic_prost::ProstCodec::default();
8867                        let mut grpc = tonic::server::Grpc::new(codec)
8868                            .apply_compression_config(
8869                                accept_compression_encodings,
8870                                send_compression_encodings,
8871                            )
8872                            .apply_max_message_size_config(
8873                                max_decoding_message_size,
8874                                max_encoding_message_size,
8875                            );
8876                        let res = grpc.unary(method, req).await;
8877                        Ok(res)
8878                    };
8879                    Box::pin(fut)
8880                }
8881                "/Vine.CocoonService/ReportProgress" => {
8882                    #[allow(non_camel_case_types)]
8883                    struct ReportProgressSvc<T: CocoonService>(pub Arc<T>);
8884                    impl<
8885                        T: CocoonService,
8886                    > tonic::server::UnaryService<super::ReportProgressRequest>
8887                    for ReportProgressSvc<T> {
8888                        type Response = super::Empty;
8889                        type Future = BoxFuture<
8890                            tonic::Response<Self::Response>,
8891                            tonic::Status,
8892                        >;
8893                        fn call(
8894                            &mut self,
8895                            request: tonic::Request<super::ReportProgressRequest>,
8896                        ) -> Self::Future {
8897                            let inner = Arc::clone(&self.0);
8898                            let fut = async move {
8899                                <T as CocoonService>::report_progress(&inner, request).await
8900                            };
8901                            Box::pin(fut)
8902                        }
8903                    }
8904                    let accept_compression_encodings = self.accept_compression_encodings;
8905                    let send_compression_encodings = self.send_compression_encodings;
8906                    let max_decoding_message_size = self.max_decoding_message_size;
8907                    let max_encoding_message_size = self.max_encoding_message_size;
8908                    let inner = self.inner.clone();
8909                    let fut = async move {
8910                        let method = ReportProgressSvc(inner);
8911                        let codec = tonic_prost::ProstCodec::default();
8912                        let mut grpc = tonic::server::Grpc::new(codec)
8913                            .apply_compression_config(
8914                                accept_compression_encodings,
8915                                send_compression_encodings,
8916                            )
8917                            .apply_max_message_size_config(
8918                                max_decoding_message_size,
8919                                max_encoding_message_size,
8920                            );
8921                        let res = grpc.unary(method, req).await;
8922                        Ok(res)
8923                    };
8924                    Box::pin(fut)
8925                }
8926                "/Vine.CocoonService/PostWebviewMessage" => {
8927                    #[allow(non_camel_case_types)]
8928                    struct PostWebviewMessageSvc<T: CocoonService>(pub Arc<T>);
8929                    impl<
8930                        T: CocoonService,
8931                    > tonic::server::UnaryService<super::PostWebviewMessageRequest>
8932                    for PostWebviewMessageSvc<T> {
8933                        type Response = super::Empty;
8934                        type Future = BoxFuture<
8935                            tonic::Response<Self::Response>,
8936                            tonic::Status,
8937                        >;
8938                        fn call(
8939                            &mut self,
8940                            request: tonic::Request<super::PostWebviewMessageRequest>,
8941                        ) -> Self::Future {
8942                            let inner = Arc::clone(&self.0);
8943                            let fut = async move {
8944                                <T as CocoonService>::post_webview_message(&inner, request)
8945                                    .await
8946                            };
8947                            Box::pin(fut)
8948                        }
8949                    }
8950                    let accept_compression_encodings = self.accept_compression_encodings;
8951                    let send_compression_encodings = self.send_compression_encodings;
8952                    let max_decoding_message_size = self.max_decoding_message_size;
8953                    let max_encoding_message_size = self.max_encoding_message_size;
8954                    let inner = self.inner.clone();
8955                    let fut = async move {
8956                        let method = PostWebviewMessageSvc(inner);
8957                        let codec = tonic_prost::ProstCodec::default();
8958                        let mut grpc = tonic::server::Grpc::new(codec)
8959                            .apply_compression_config(
8960                                accept_compression_encodings,
8961                                send_compression_encodings,
8962                            )
8963                            .apply_max_message_size_config(
8964                                max_decoding_message_size,
8965                                max_encoding_message_size,
8966                            );
8967                        let res = grpc.unary(method, req).await;
8968                        Ok(res)
8969                    };
8970                    Box::pin(fut)
8971                }
8972                "/Vine.CocoonService/DisposeWebviewPanel" => {
8973                    #[allow(non_camel_case_types)]
8974                    struct DisposeWebviewPanelSvc<T: CocoonService>(pub Arc<T>);
8975                    impl<
8976                        T: CocoonService,
8977                    > tonic::server::UnaryService<super::DisposeWebviewPanelRequest>
8978                    for DisposeWebviewPanelSvc<T> {
8979                        type Response = super::Empty;
8980                        type Future = BoxFuture<
8981                            tonic::Response<Self::Response>,
8982                            tonic::Status,
8983                        >;
8984                        fn call(
8985                            &mut self,
8986                            request: tonic::Request<super::DisposeWebviewPanelRequest>,
8987                        ) -> Self::Future {
8988                            let inner = Arc::clone(&self.0);
8989                            let fut = async move {
8990                                <T as CocoonService>::dispose_webview_panel(&inner, request)
8991                                    .await
8992                            };
8993                            Box::pin(fut)
8994                        }
8995                    }
8996                    let accept_compression_encodings = self.accept_compression_encodings;
8997                    let send_compression_encodings = self.send_compression_encodings;
8998                    let max_decoding_message_size = self.max_decoding_message_size;
8999                    let max_encoding_message_size = self.max_encoding_message_size;
9000                    let inner = self.inner.clone();
9001                    let fut = async move {
9002                        let method = DisposeWebviewPanelSvc(inner);
9003                        let codec = tonic_prost::ProstCodec::default();
9004                        let mut grpc = tonic::server::Grpc::new(codec)
9005                            .apply_compression_config(
9006                                accept_compression_encodings,
9007                                send_compression_encodings,
9008                            )
9009                            .apply_max_message_size_config(
9010                                max_decoding_message_size,
9011                                max_encoding_message_size,
9012                            );
9013                        let res = grpc.unary(method, req).await;
9014                        Ok(res)
9015                    };
9016                    Box::pin(fut)
9017                }
9018                "/Vine.CocoonService/OpenExternal" => {
9019                    #[allow(non_camel_case_types)]
9020                    struct OpenExternalSvc<T: CocoonService>(pub Arc<T>);
9021                    impl<
9022                        T: CocoonService,
9023                    > tonic::server::UnaryService<super::OpenExternalRequest>
9024                    for OpenExternalSvc<T> {
9025                        type Response = super::Empty;
9026                        type Future = BoxFuture<
9027                            tonic::Response<Self::Response>,
9028                            tonic::Status,
9029                        >;
9030                        fn call(
9031                            &mut self,
9032                            request: tonic::Request<super::OpenExternalRequest>,
9033                        ) -> Self::Future {
9034                            let inner = Arc::clone(&self.0);
9035                            let fut = async move {
9036                                <T as CocoonService>::open_external(&inner, request).await
9037                            };
9038                            Box::pin(fut)
9039                        }
9040                    }
9041                    let accept_compression_encodings = self.accept_compression_encodings;
9042                    let send_compression_encodings = self.send_compression_encodings;
9043                    let max_decoding_message_size = self.max_decoding_message_size;
9044                    let max_encoding_message_size = self.max_encoding_message_size;
9045                    let inner = self.inner.clone();
9046                    let fut = async move {
9047                        let method = OpenExternalSvc(inner);
9048                        let codec = tonic_prost::ProstCodec::default();
9049                        let mut grpc = tonic::server::Grpc::new(codec)
9050                            .apply_compression_config(
9051                                accept_compression_encodings,
9052                                send_compression_encodings,
9053                            )
9054                            .apply_max_message_size_config(
9055                                max_decoding_message_size,
9056                                max_encoding_message_size,
9057                            );
9058                        let res = grpc.unary(method, req).await;
9059                        Ok(res)
9060                    };
9061                    Box::pin(fut)
9062                }
9063                "/Vine.CocoonService/DeleteFile" => {
9064                    #[allow(non_camel_case_types)]
9065                    struct DeleteFileSvc<T: CocoonService>(pub Arc<T>);
9066                    impl<
9067                        T: CocoonService,
9068                    > tonic::server::UnaryService<super::DeleteFileRequest>
9069                    for DeleteFileSvc<T> {
9070                        type Response = super::Empty;
9071                        type Future = BoxFuture<
9072                            tonic::Response<Self::Response>,
9073                            tonic::Status,
9074                        >;
9075                        fn call(
9076                            &mut self,
9077                            request: tonic::Request<super::DeleteFileRequest>,
9078                        ) -> Self::Future {
9079                            let inner = Arc::clone(&self.0);
9080                            let fut = async move {
9081                                <T as CocoonService>::delete_file(&inner, request).await
9082                            };
9083                            Box::pin(fut)
9084                        }
9085                    }
9086                    let accept_compression_encodings = self.accept_compression_encodings;
9087                    let send_compression_encodings = self.send_compression_encodings;
9088                    let max_decoding_message_size = self.max_decoding_message_size;
9089                    let max_encoding_message_size = self.max_encoding_message_size;
9090                    let inner = self.inner.clone();
9091                    let fut = async move {
9092                        let method = DeleteFileSvc(inner);
9093                        let codec = tonic_prost::ProstCodec::default();
9094                        let mut grpc = tonic::server::Grpc::new(codec)
9095                            .apply_compression_config(
9096                                accept_compression_encodings,
9097                                send_compression_encodings,
9098                            )
9099                            .apply_max_message_size_config(
9100                                max_decoding_message_size,
9101                                max_encoding_message_size,
9102                            );
9103                        let res = grpc.unary(method, req).await;
9104                        Ok(res)
9105                    };
9106                    Box::pin(fut)
9107                }
9108                "/Vine.CocoonService/RenameFile" => {
9109                    #[allow(non_camel_case_types)]
9110                    struct RenameFileSvc<T: CocoonService>(pub Arc<T>);
9111                    impl<
9112                        T: CocoonService,
9113                    > tonic::server::UnaryService<super::RenameFileRequest>
9114                    for RenameFileSvc<T> {
9115                        type Response = super::Empty;
9116                        type Future = BoxFuture<
9117                            tonic::Response<Self::Response>,
9118                            tonic::Status,
9119                        >;
9120                        fn call(
9121                            &mut self,
9122                            request: tonic::Request<super::RenameFileRequest>,
9123                        ) -> Self::Future {
9124                            let inner = Arc::clone(&self.0);
9125                            let fut = async move {
9126                                <T as CocoonService>::rename_file(&inner, request).await
9127                            };
9128                            Box::pin(fut)
9129                        }
9130                    }
9131                    let accept_compression_encodings = self.accept_compression_encodings;
9132                    let send_compression_encodings = self.send_compression_encodings;
9133                    let max_decoding_message_size = self.max_decoding_message_size;
9134                    let max_encoding_message_size = self.max_encoding_message_size;
9135                    let inner = self.inner.clone();
9136                    let fut = async move {
9137                        let method = RenameFileSvc(inner);
9138                        let codec = tonic_prost::ProstCodec::default();
9139                        let mut grpc = tonic::server::Grpc::new(codec)
9140                            .apply_compression_config(
9141                                accept_compression_encodings,
9142                                send_compression_encodings,
9143                            )
9144                            .apply_max_message_size_config(
9145                                max_decoding_message_size,
9146                                max_encoding_message_size,
9147                            );
9148                        let res = grpc.unary(method, req).await;
9149                        Ok(res)
9150                    };
9151                    Box::pin(fut)
9152                }
9153                "/Vine.CocoonService/CopyFile" => {
9154                    #[allow(non_camel_case_types)]
9155                    struct CopyFileSvc<T: CocoonService>(pub Arc<T>);
9156                    impl<
9157                        T: CocoonService,
9158                    > tonic::server::UnaryService<super::CopyFileRequest>
9159                    for CopyFileSvc<T> {
9160                        type Response = super::Empty;
9161                        type Future = BoxFuture<
9162                            tonic::Response<Self::Response>,
9163                            tonic::Status,
9164                        >;
9165                        fn call(
9166                            &mut self,
9167                            request: tonic::Request<super::CopyFileRequest>,
9168                        ) -> Self::Future {
9169                            let inner = Arc::clone(&self.0);
9170                            let fut = async move {
9171                                <T as CocoonService>::copy_file(&inner, request).await
9172                            };
9173                            Box::pin(fut)
9174                        }
9175                    }
9176                    let accept_compression_encodings = self.accept_compression_encodings;
9177                    let send_compression_encodings = self.send_compression_encodings;
9178                    let max_decoding_message_size = self.max_decoding_message_size;
9179                    let max_encoding_message_size = self.max_encoding_message_size;
9180                    let inner = self.inner.clone();
9181                    let fut = async move {
9182                        let method = CopyFileSvc(inner);
9183                        let codec = tonic_prost::ProstCodec::default();
9184                        let mut grpc = tonic::server::Grpc::new(codec)
9185                            .apply_compression_config(
9186                                accept_compression_encodings,
9187                                send_compression_encodings,
9188                            )
9189                            .apply_max_message_size_config(
9190                                max_decoding_message_size,
9191                                max_encoding_message_size,
9192                            );
9193                        let res = grpc.unary(method, req).await;
9194                        Ok(res)
9195                    };
9196                    Box::pin(fut)
9197                }
9198                "/Vine.CocoonService/CreateDirectory" => {
9199                    #[allow(non_camel_case_types)]
9200                    struct CreateDirectorySvc<T: CocoonService>(pub Arc<T>);
9201                    impl<
9202                        T: CocoonService,
9203                    > tonic::server::UnaryService<super::CreateDirectoryRequest>
9204                    for CreateDirectorySvc<T> {
9205                        type Response = super::Empty;
9206                        type Future = BoxFuture<
9207                            tonic::Response<Self::Response>,
9208                            tonic::Status,
9209                        >;
9210                        fn call(
9211                            &mut self,
9212                            request: tonic::Request<super::CreateDirectoryRequest>,
9213                        ) -> Self::Future {
9214                            let inner = Arc::clone(&self.0);
9215                            let fut = async move {
9216                                <T as CocoonService>::create_directory(&inner, request)
9217                                    .await
9218                            };
9219                            Box::pin(fut)
9220                        }
9221                    }
9222                    let accept_compression_encodings = self.accept_compression_encodings;
9223                    let send_compression_encodings = self.send_compression_encodings;
9224                    let max_decoding_message_size = self.max_decoding_message_size;
9225                    let max_encoding_message_size = self.max_encoding_message_size;
9226                    let inner = self.inner.clone();
9227                    let fut = async move {
9228                        let method = CreateDirectorySvc(inner);
9229                        let codec = tonic_prost::ProstCodec::default();
9230                        let mut grpc = tonic::server::Grpc::new(codec)
9231                            .apply_compression_config(
9232                                accept_compression_encodings,
9233                                send_compression_encodings,
9234                            )
9235                            .apply_max_message_size_config(
9236                                max_decoding_message_size,
9237                                max_encoding_message_size,
9238                            );
9239                        let res = grpc.unary(method, req).await;
9240                        Ok(res)
9241                    };
9242                    Box::pin(fut)
9243                }
9244                "/Vine.CocoonService/CreateOutputChannel" => {
9245                    #[allow(non_camel_case_types)]
9246                    struct CreateOutputChannelSvc<T: CocoonService>(pub Arc<T>);
9247                    impl<
9248                        T: CocoonService,
9249                    > tonic::server::UnaryService<super::CreateOutputChannelRequest>
9250                    for CreateOutputChannelSvc<T> {
9251                        type Response = super::CreateOutputChannelResponse;
9252                        type Future = BoxFuture<
9253                            tonic::Response<Self::Response>,
9254                            tonic::Status,
9255                        >;
9256                        fn call(
9257                            &mut self,
9258                            request: tonic::Request<super::CreateOutputChannelRequest>,
9259                        ) -> Self::Future {
9260                            let inner = Arc::clone(&self.0);
9261                            let fut = async move {
9262                                <T as CocoonService>::create_output_channel(&inner, request)
9263                                    .await
9264                            };
9265                            Box::pin(fut)
9266                        }
9267                    }
9268                    let accept_compression_encodings = self.accept_compression_encodings;
9269                    let send_compression_encodings = self.send_compression_encodings;
9270                    let max_decoding_message_size = self.max_decoding_message_size;
9271                    let max_encoding_message_size = self.max_encoding_message_size;
9272                    let inner = self.inner.clone();
9273                    let fut = async move {
9274                        let method = CreateOutputChannelSvc(inner);
9275                        let codec = tonic_prost::ProstCodec::default();
9276                        let mut grpc = tonic::server::Grpc::new(codec)
9277                            .apply_compression_config(
9278                                accept_compression_encodings,
9279                                send_compression_encodings,
9280                            )
9281                            .apply_max_message_size_config(
9282                                max_decoding_message_size,
9283                                max_encoding_message_size,
9284                            );
9285                        let res = grpc.unary(method, req).await;
9286                        Ok(res)
9287                    };
9288                    Box::pin(fut)
9289                }
9290                "/Vine.CocoonService/AppendOutput" => {
9291                    #[allow(non_camel_case_types)]
9292                    struct AppendOutputSvc<T: CocoonService>(pub Arc<T>);
9293                    impl<
9294                        T: CocoonService,
9295                    > tonic::server::UnaryService<super::AppendOutputRequest>
9296                    for AppendOutputSvc<T> {
9297                        type Response = super::Empty;
9298                        type Future = BoxFuture<
9299                            tonic::Response<Self::Response>,
9300                            tonic::Status,
9301                        >;
9302                        fn call(
9303                            &mut self,
9304                            request: tonic::Request<super::AppendOutputRequest>,
9305                        ) -> Self::Future {
9306                            let inner = Arc::clone(&self.0);
9307                            let fut = async move {
9308                                <T as CocoonService>::append_output(&inner, request).await
9309                            };
9310                            Box::pin(fut)
9311                        }
9312                    }
9313                    let accept_compression_encodings = self.accept_compression_encodings;
9314                    let send_compression_encodings = self.send_compression_encodings;
9315                    let max_decoding_message_size = self.max_decoding_message_size;
9316                    let max_encoding_message_size = self.max_encoding_message_size;
9317                    let inner = self.inner.clone();
9318                    let fut = async move {
9319                        let method = AppendOutputSvc(inner);
9320                        let codec = tonic_prost::ProstCodec::default();
9321                        let mut grpc = tonic::server::Grpc::new(codec)
9322                            .apply_compression_config(
9323                                accept_compression_encodings,
9324                                send_compression_encodings,
9325                            )
9326                            .apply_max_message_size_config(
9327                                max_decoding_message_size,
9328                                max_encoding_message_size,
9329                            );
9330                        let res = grpc.unary(method, req).await;
9331                        Ok(res)
9332                    };
9333                    Box::pin(fut)
9334                }
9335                "/Vine.CocoonService/ClearOutput" => {
9336                    #[allow(non_camel_case_types)]
9337                    struct ClearOutputSvc<T: CocoonService>(pub Arc<T>);
9338                    impl<
9339                        T: CocoonService,
9340                    > tonic::server::UnaryService<super::ClearOutputRequest>
9341                    for ClearOutputSvc<T> {
9342                        type Response = super::Empty;
9343                        type Future = BoxFuture<
9344                            tonic::Response<Self::Response>,
9345                            tonic::Status,
9346                        >;
9347                        fn call(
9348                            &mut self,
9349                            request: tonic::Request<super::ClearOutputRequest>,
9350                        ) -> Self::Future {
9351                            let inner = Arc::clone(&self.0);
9352                            let fut = async move {
9353                                <T as CocoonService>::clear_output(&inner, request).await
9354                            };
9355                            Box::pin(fut)
9356                        }
9357                    }
9358                    let accept_compression_encodings = self.accept_compression_encodings;
9359                    let send_compression_encodings = self.send_compression_encodings;
9360                    let max_decoding_message_size = self.max_decoding_message_size;
9361                    let max_encoding_message_size = self.max_encoding_message_size;
9362                    let inner = self.inner.clone();
9363                    let fut = async move {
9364                        let method = ClearOutputSvc(inner);
9365                        let codec = tonic_prost::ProstCodec::default();
9366                        let mut grpc = tonic::server::Grpc::new(codec)
9367                            .apply_compression_config(
9368                                accept_compression_encodings,
9369                                send_compression_encodings,
9370                            )
9371                            .apply_max_message_size_config(
9372                                max_decoding_message_size,
9373                                max_encoding_message_size,
9374                            );
9375                        let res = grpc.unary(method, req).await;
9376                        Ok(res)
9377                    };
9378                    Box::pin(fut)
9379                }
9380                "/Vine.CocoonService/ShowOutput" => {
9381                    #[allow(non_camel_case_types)]
9382                    struct ShowOutputSvc<T: CocoonService>(pub Arc<T>);
9383                    impl<
9384                        T: CocoonService,
9385                    > tonic::server::UnaryService<super::ShowOutputRequest>
9386                    for ShowOutputSvc<T> {
9387                        type Response = super::Empty;
9388                        type Future = BoxFuture<
9389                            tonic::Response<Self::Response>,
9390                            tonic::Status,
9391                        >;
9392                        fn call(
9393                            &mut self,
9394                            request: tonic::Request<super::ShowOutputRequest>,
9395                        ) -> Self::Future {
9396                            let inner = Arc::clone(&self.0);
9397                            let fut = async move {
9398                                <T as CocoonService>::show_output(&inner, request).await
9399                            };
9400                            Box::pin(fut)
9401                        }
9402                    }
9403                    let accept_compression_encodings = self.accept_compression_encodings;
9404                    let send_compression_encodings = self.send_compression_encodings;
9405                    let max_decoding_message_size = self.max_decoding_message_size;
9406                    let max_encoding_message_size = self.max_encoding_message_size;
9407                    let inner = self.inner.clone();
9408                    let fut = async move {
9409                        let method = ShowOutputSvc(inner);
9410                        let codec = tonic_prost::ProstCodec::default();
9411                        let mut grpc = tonic::server::Grpc::new(codec)
9412                            .apply_compression_config(
9413                                accept_compression_encodings,
9414                                send_compression_encodings,
9415                            )
9416                            .apply_max_message_size_config(
9417                                max_decoding_message_size,
9418                                max_encoding_message_size,
9419                            );
9420                        let res = grpc.unary(method, req).await;
9421                        Ok(res)
9422                    };
9423                    Box::pin(fut)
9424                }
9425                "/Vine.CocoonService/DisposeOutput" => {
9426                    #[allow(non_camel_case_types)]
9427                    struct DisposeOutputSvc<T: CocoonService>(pub Arc<T>);
9428                    impl<
9429                        T: CocoonService,
9430                    > tonic::server::UnaryService<super::DisposeOutputRequest>
9431                    for DisposeOutputSvc<T> {
9432                        type Response = super::Empty;
9433                        type Future = BoxFuture<
9434                            tonic::Response<Self::Response>,
9435                            tonic::Status,
9436                        >;
9437                        fn call(
9438                            &mut self,
9439                            request: tonic::Request<super::DisposeOutputRequest>,
9440                        ) -> Self::Future {
9441                            let inner = Arc::clone(&self.0);
9442                            let fut = async move {
9443                                <T as CocoonService>::dispose_output(&inner, request).await
9444                            };
9445                            Box::pin(fut)
9446                        }
9447                    }
9448                    let accept_compression_encodings = self.accept_compression_encodings;
9449                    let send_compression_encodings = self.send_compression_encodings;
9450                    let max_decoding_message_size = self.max_decoding_message_size;
9451                    let max_encoding_message_size = self.max_encoding_message_size;
9452                    let inner = self.inner.clone();
9453                    let fut = async move {
9454                        let method = DisposeOutputSvc(inner);
9455                        let codec = tonic_prost::ProstCodec::default();
9456                        let mut grpc = tonic::server::Grpc::new(codec)
9457                            .apply_compression_config(
9458                                accept_compression_encodings,
9459                                send_compression_encodings,
9460                            )
9461                            .apply_max_message_size_config(
9462                                max_decoding_message_size,
9463                                max_encoding_message_size,
9464                            );
9465                        let res = grpc.unary(method, req).await;
9466                        Ok(res)
9467                    };
9468                    Box::pin(fut)
9469                }
9470                "/Vine.CocoonService/RegisterTaskProvider" => {
9471                    #[allow(non_camel_case_types)]
9472                    struct RegisterTaskProviderSvc<T: CocoonService>(pub Arc<T>);
9473                    impl<
9474                        T: CocoonService,
9475                    > tonic::server::UnaryService<super::RegisterTaskProviderRequest>
9476                    for RegisterTaskProviderSvc<T> {
9477                        type Response = super::Empty;
9478                        type Future = BoxFuture<
9479                            tonic::Response<Self::Response>,
9480                            tonic::Status,
9481                        >;
9482                        fn call(
9483                            &mut self,
9484                            request: tonic::Request<super::RegisterTaskProviderRequest>,
9485                        ) -> Self::Future {
9486                            let inner = Arc::clone(&self.0);
9487                            let fut = async move {
9488                                <T as CocoonService>::register_task_provider(
9489                                        &inner,
9490                                        request,
9491                                    )
9492                                    .await
9493                            };
9494                            Box::pin(fut)
9495                        }
9496                    }
9497                    let accept_compression_encodings = self.accept_compression_encodings;
9498                    let send_compression_encodings = self.send_compression_encodings;
9499                    let max_decoding_message_size = self.max_decoding_message_size;
9500                    let max_encoding_message_size = self.max_encoding_message_size;
9501                    let inner = self.inner.clone();
9502                    let fut = async move {
9503                        let method = RegisterTaskProviderSvc(inner);
9504                        let codec = tonic_prost::ProstCodec::default();
9505                        let mut grpc = tonic::server::Grpc::new(codec)
9506                            .apply_compression_config(
9507                                accept_compression_encodings,
9508                                send_compression_encodings,
9509                            )
9510                            .apply_max_message_size_config(
9511                                max_decoding_message_size,
9512                                max_encoding_message_size,
9513                            );
9514                        let res = grpc.unary(method, req).await;
9515                        Ok(res)
9516                    };
9517                    Box::pin(fut)
9518                }
9519                "/Vine.CocoonService/ExecuteTask" => {
9520                    #[allow(non_camel_case_types)]
9521                    struct ExecuteTaskSvc<T: CocoonService>(pub Arc<T>);
9522                    impl<
9523                        T: CocoonService,
9524                    > tonic::server::UnaryService<super::ExecuteTaskRequest>
9525                    for ExecuteTaskSvc<T> {
9526                        type Response = super::ExecuteTaskResponse;
9527                        type Future = BoxFuture<
9528                            tonic::Response<Self::Response>,
9529                            tonic::Status,
9530                        >;
9531                        fn call(
9532                            &mut self,
9533                            request: tonic::Request<super::ExecuteTaskRequest>,
9534                        ) -> Self::Future {
9535                            let inner = Arc::clone(&self.0);
9536                            let fut = async move {
9537                                <T as CocoonService>::execute_task(&inner, request).await
9538                            };
9539                            Box::pin(fut)
9540                        }
9541                    }
9542                    let accept_compression_encodings = self.accept_compression_encodings;
9543                    let send_compression_encodings = self.send_compression_encodings;
9544                    let max_decoding_message_size = self.max_decoding_message_size;
9545                    let max_encoding_message_size = self.max_encoding_message_size;
9546                    let inner = self.inner.clone();
9547                    let fut = async move {
9548                        let method = ExecuteTaskSvc(inner);
9549                        let codec = tonic_prost::ProstCodec::default();
9550                        let mut grpc = tonic::server::Grpc::new(codec)
9551                            .apply_compression_config(
9552                                accept_compression_encodings,
9553                                send_compression_encodings,
9554                            )
9555                            .apply_max_message_size_config(
9556                                max_decoding_message_size,
9557                                max_encoding_message_size,
9558                            );
9559                        let res = grpc.unary(method, req).await;
9560                        Ok(res)
9561                    };
9562                    Box::pin(fut)
9563                }
9564                "/Vine.CocoonService/TerminateTask" => {
9565                    #[allow(non_camel_case_types)]
9566                    struct TerminateTaskSvc<T: CocoonService>(pub Arc<T>);
9567                    impl<
9568                        T: CocoonService,
9569                    > tonic::server::UnaryService<super::TerminateTaskRequest>
9570                    for TerminateTaskSvc<T> {
9571                        type Response = super::Empty;
9572                        type Future = BoxFuture<
9573                            tonic::Response<Self::Response>,
9574                            tonic::Status,
9575                        >;
9576                        fn call(
9577                            &mut self,
9578                            request: tonic::Request<super::TerminateTaskRequest>,
9579                        ) -> Self::Future {
9580                            let inner = Arc::clone(&self.0);
9581                            let fut = async move {
9582                                <T as CocoonService>::terminate_task(&inner, request).await
9583                            };
9584                            Box::pin(fut)
9585                        }
9586                    }
9587                    let accept_compression_encodings = self.accept_compression_encodings;
9588                    let send_compression_encodings = self.send_compression_encodings;
9589                    let max_decoding_message_size = self.max_decoding_message_size;
9590                    let max_encoding_message_size = self.max_encoding_message_size;
9591                    let inner = self.inner.clone();
9592                    let fut = async move {
9593                        let method = TerminateTaskSvc(inner);
9594                        let codec = tonic_prost::ProstCodec::default();
9595                        let mut grpc = tonic::server::Grpc::new(codec)
9596                            .apply_compression_config(
9597                                accept_compression_encodings,
9598                                send_compression_encodings,
9599                            )
9600                            .apply_max_message_size_config(
9601                                max_decoding_message_size,
9602                                max_encoding_message_size,
9603                            );
9604                        let res = grpc.unary(method, req).await;
9605                        Ok(res)
9606                    };
9607                    Box::pin(fut)
9608                }
9609                "/Vine.CocoonService/GetAuthenticationSession" => {
9610                    #[allow(non_camel_case_types)]
9611                    struct GetAuthenticationSessionSvc<T: CocoonService>(pub Arc<T>);
9612                    impl<
9613                        T: CocoonService,
9614                    > tonic::server::UnaryService<super::GetAuthenticationSessionRequest>
9615                    for GetAuthenticationSessionSvc<T> {
9616                        type Response = super::GetAuthenticationSessionResponse;
9617                        type Future = BoxFuture<
9618                            tonic::Response<Self::Response>,
9619                            tonic::Status,
9620                        >;
9621                        fn call(
9622                            &mut self,
9623                            request: tonic::Request<
9624                                super::GetAuthenticationSessionRequest,
9625                            >,
9626                        ) -> Self::Future {
9627                            let inner = Arc::clone(&self.0);
9628                            let fut = async move {
9629                                <T as CocoonService>::get_authentication_session(
9630                                        &inner,
9631                                        request,
9632                                    )
9633                                    .await
9634                            };
9635                            Box::pin(fut)
9636                        }
9637                    }
9638                    let accept_compression_encodings = self.accept_compression_encodings;
9639                    let send_compression_encodings = self.send_compression_encodings;
9640                    let max_decoding_message_size = self.max_decoding_message_size;
9641                    let max_encoding_message_size = self.max_encoding_message_size;
9642                    let inner = self.inner.clone();
9643                    let fut = async move {
9644                        let method = GetAuthenticationSessionSvc(inner);
9645                        let codec = tonic_prost::ProstCodec::default();
9646                        let mut grpc = tonic::server::Grpc::new(codec)
9647                            .apply_compression_config(
9648                                accept_compression_encodings,
9649                                send_compression_encodings,
9650                            )
9651                            .apply_max_message_size_config(
9652                                max_decoding_message_size,
9653                                max_encoding_message_size,
9654                            );
9655                        let res = grpc.unary(method, req).await;
9656                        Ok(res)
9657                    };
9658                    Box::pin(fut)
9659                }
9660                "/Vine.CocoonService/RegisterAuthenticationProvider" => {
9661                    #[allow(non_camel_case_types)]
9662                    struct RegisterAuthenticationProviderSvc<T: CocoonService>(
9663                        pub Arc<T>,
9664                    );
9665                    impl<
9666                        T: CocoonService,
9667                    > tonic::server::UnaryService<
9668                        super::RegisterAuthenticationProviderRequest,
9669                    > for RegisterAuthenticationProviderSvc<T> {
9670                        type Response = super::Empty;
9671                        type Future = BoxFuture<
9672                            tonic::Response<Self::Response>,
9673                            tonic::Status,
9674                        >;
9675                        fn call(
9676                            &mut self,
9677                            request: tonic::Request<
9678                                super::RegisterAuthenticationProviderRequest,
9679                            >,
9680                        ) -> Self::Future {
9681                            let inner = Arc::clone(&self.0);
9682                            let fut = async move {
9683                                <T as CocoonService>::register_authentication_provider(
9684                                        &inner,
9685                                        request,
9686                                    )
9687                                    .await
9688                            };
9689                            Box::pin(fut)
9690                        }
9691                    }
9692                    let accept_compression_encodings = self.accept_compression_encodings;
9693                    let send_compression_encodings = self.send_compression_encodings;
9694                    let max_decoding_message_size = self.max_decoding_message_size;
9695                    let max_encoding_message_size = self.max_encoding_message_size;
9696                    let inner = self.inner.clone();
9697                    let fut = async move {
9698                        let method = RegisterAuthenticationProviderSvc(inner);
9699                        let codec = tonic_prost::ProstCodec::default();
9700                        let mut grpc = tonic::server::Grpc::new(codec)
9701                            .apply_compression_config(
9702                                accept_compression_encodings,
9703                                send_compression_encodings,
9704                            )
9705                            .apply_max_message_size_config(
9706                                max_decoding_message_size,
9707                                max_encoding_message_size,
9708                            );
9709                        let res = grpc.unary(method, req).await;
9710                        Ok(res)
9711                    };
9712                    Box::pin(fut)
9713                }
9714                "/Vine.CocoonService/StopDebugging" => {
9715                    #[allow(non_camel_case_types)]
9716                    struct StopDebuggingSvc<T: CocoonService>(pub Arc<T>);
9717                    impl<
9718                        T: CocoonService,
9719                    > tonic::server::UnaryService<super::StopDebuggingRequest>
9720                    for StopDebuggingSvc<T> {
9721                        type Response = super::Empty;
9722                        type Future = BoxFuture<
9723                            tonic::Response<Self::Response>,
9724                            tonic::Status,
9725                        >;
9726                        fn call(
9727                            &mut self,
9728                            request: tonic::Request<super::StopDebuggingRequest>,
9729                        ) -> Self::Future {
9730                            let inner = Arc::clone(&self.0);
9731                            let fut = async move {
9732                                <T as CocoonService>::stop_debugging(&inner, request).await
9733                            };
9734                            Box::pin(fut)
9735                        }
9736                    }
9737                    let accept_compression_encodings = self.accept_compression_encodings;
9738                    let send_compression_encodings = self.send_compression_encodings;
9739                    let max_decoding_message_size = self.max_decoding_message_size;
9740                    let max_encoding_message_size = self.max_encoding_message_size;
9741                    let inner = self.inner.clone();
9742                    let fut = async move {
9743                        let method = StopDebuggingSvc(inner);
9744                        let codec = tonic_prost::ProstCodec::default();
9745                        let mut grpc = tonic::server::Grpc::new(codec)
9746                            .apply_compression_config(
9747                                accept_compression_encodings,
9748                                send_compression_encodings,
9749                            )
9750                            .apply_max_message_size_config(
9751                                max_decoding_message_size,
9752                                max_encoding_message_size,
9753                            );
9754                        let res = grpc.unary(method, req).await;
9755                        Ok(res)
9756                    };
9757                    Box::pin(fut)
9758                }
9759                "/Vine.CocoonService/GetExtension" => {
9760                    #[allow(non_camel_case_types)]
9761                    struct GetExtensionSvc<T: CocoonService>(pub Arc<T>);
9762                    impl<
9763                        T: CocoonService,
9764                    > tonic::server::UnaryService<super::GetExtensionRequest>
9765                    for GetExtensionSvc<T> {
9766                        type Response = super::GetExtensionResponse;
9767                        type Future = BoxFuture<
9768                            tonic::Response<Self::Response>,
9769                            tonic::Status,
9770                        >;
9771                        fn call(
9772                            &mut self,
9773                            request: tonic::Request<super::GetExtensionRequest>,
9774                        ) -> Self::Future {
9775                            let inner = Arc::clone(&self.0);
9776                            let fut = async move {
9777                                <T as CocoonService>::get_extension(&inner, request).await
9778                            };
9779                            Box::pin(fut)
9780                        }
9781                    }
9782                    let accept_compression_encodings = self.accept_compression_encodings;
9783                    let send_compression_encodings = self.send_compression_encodings;
9784                    let max_decoding_message_size = self.max_decoding_message_size;
9785                    let max_encoding_message_size = self.max_encoding_message_size;
9786                    let inner = self.inner.clone();
9787                    let fut = async move {
9788                        let method = GetExtensionSvc(inner);
9789                        let codec = tonic_prost::ProstCodec::default();
9790                        let mut grpc = tonic::server::Grpc::new(codec)
9791                            .apply_compression_config(
9792                                accept_compression_encodings,
9793                                send_compression_encodings,
9794                            )
9795                            .apply_max_message_size_config(
9796                                max_decoding_message_size,
9797                                max_encoding_message_size,
9798                            );
9799                        let res = grpc.unary(method, req).await;
9800                        Ok(res)
9801                    };
9802                    Box::pin(fut)
9803                }
9804                "/Vine.CocoonService/GetAllExtensions" => {
9805                    #[allow(non_camel_case_types)]
9806                    struct GetAllExtensionsSvc<T: CocoonService>(pub Arc<T>);
9807                    impl<T: CocoonService> tonic::server::UnaryService<super::Empty>
9808                    for GetAllExtensionsSvc<T> {
9809                        type Response = super::GetAllExtensionsResponse;
9810                        type Future = BoxFuture<
9811                            tonic::Response<Self::Response>,
9812                            tonic::Status,
9813                        >;
9814                        fn call(
9815                            &mut self,
9816                            request: tonic::Request<super::Empty>,
9817                        ) -> Self::Future {
9818                            let inner = Arc::clone(&self.0);
9819                            let fut = async move {
9820                                <T as CocoonService>::get_all_extensions(&inner, request)
9821                                    .await
9822                            };
9823                            Box::pin(fut)
9824                        }
9825                    }
9826                    let accept_compression_encodings = self.accept_compression_encodings;
9827                    let send_compression_encodings = self.send_compression_encodings;
9828                    let max_decoding_message_size = self.max_decoding_message_size;
9829                    let max_encoding_message_size = self.max_encoding_message_size;
9830                    let inner = self.inner.clone();
9831                    let fut = async move {
9832                        let method = GetAllExtensionsSvc(inner);
9833                        let codec = tonic_prost::ProstCodec::default();
9834                        let mut grpc = tonic::server::Grpc::new(codec)
9835                            .apply_compression_config(
9836                                accept_compression_encodings,
9837                                send_compression_encodings,
9838                            )
9839                            .apply_max_message_size_config(
9840                                max_decoding_message_size,
9841                                max_encoding_message_size,
9842                            );
9843                        let res = grpc.unary(method, req).await;
9844                        Ok(res)
9845                    };
9846                    Box::pin(fut)
9847                }
9848                "/Vine.CocoonService/ResizeTerminal" => {
9849                    #[allow(non_camel_case_types)]
9850                    struct ResizeTerminalSvc<T: CocoonService>(pub Arc<T>);
9851                    impl<
9852                        T: CocoonService,
9853                    > tonic::server::UnaryService<super::ResizeTerminalRequest>
9854                    for ResizeTerminalSvc<T> {
9855                        type Response = super::Empty;
9856                        type Future = BoxFuture<
9857                            tonic::Response<Self::Response>,
9858                            tonic::Status,
9859                        >;
9860                        fn call(
9861                            &mut self,
9862                            request: tonic::Request<super::ResizeTerminalRequest>,
9863                        ) -> Self::Future {
9864                            let inner = Arc::clone(&self.0);
9865                            let fut = async move {
9866                                <T as CocoonService>::resize_terminal(&inner, request).await
9867                            };
9868                            Box::pin(fut)
9869                        }
9870                    }
9871                    let accept_compression_encodings = self.accept_compression_encodings;
9872                    let send_compression_encodings = self.send_compression_encodings;
9873                    let max_decoding_message_size = self.max_decoding_message_size;
9874                    let max_encoding_message_size = self.max_encoding_message_size;
9875                    let inner = self.inner.clone();
9876                    let fut = async move {
9877                        let method = ResizeTerminalSvc(inner);
9878                        let codec = tonic_prost::ProstCodec::default();
9879                        let mut grpc = tonic::server::Grpc::new(codec)
9880                            .apply_compression_config(
9881                                accept_compression_encodings,
9882                                send_compression_encodings,
9883                            )
9884                            .apply_max_message_size_config(
9885                                max_decoding_message_size,
9886                                max_encoding_message_size,
9887                            );
9888                        let res = grpc.unary(method, req).await;
9889                        Ok(res)
9890                    };
9891                    Box::pin(fut)
9892                }
9893                "/Vine.CocoonService/GetConfiguration" => {
9894                    #[allow(non_camel_case_types)]
9895                    struct GetConfigurationSvc<T: CocoonService>(pub Arc<T>);
9896                    impl<
9897                        T: CocoonService,
9898                    > tonic::server::UnaryService<super::GetConfigurationRequest>
9899                    for GetConfigurationSvc<T> {
9900                        type Response = super::GetConfigurationResponse;
9901                        type Future = BoxFuture<
9902                            tonic::Response<Self::Response>,
9903                            tonic::Status,
9904                        >;
9905                        fn call(
9906                            &mut self,
9907                            request: tonic::Request<super::GetConfigurationRequest>,
9908                        ) -> Self::Future {
9909                            let inner = Arc::clone(&self.0);
9910                            let fut = async move {
9911                                <T as CocoonService>::get_configuration(&inner, request)
9912                                    .await
9913                            };
9914                            Box::pin(fut)
9915                        }
9916                    }
9917                    let accept_compression_encodings = self.accept_compression_encodings;
9918                    let send_compression_encodings = self.send_compression_encodings;
9919                    let max_decoding_message_size = self.max_decoding_message_size;
9920                    let max_encoding_message_size = self.max_encoding_message_size;
9921                    let inner = self.inner.clone();
9922                    let fut = async move {
9923                        let method = GetConfigurationSvc(inner);
9924                        let codec = tonic_prost::ProstCodec::default();
9925                        let mut grpc = tonic::server::Grpc::new(codec)
9926                            .apply_compression_config(
9927                                accept_compression_encodings,
9928                                send_compression_encodings,
9929                            )
9930                            .apply_max_message_size_config(
9931                                max_decoding_message_size,
9932                                max_encoding_message_size,
9933                            );
9934                        let res = grpc.unary(method, req).await;
9935                        Ok(res)
9936                    };
9937                    Box::pin(fut)
9938                }
9939                "/Vine.CocoonService/ShowTextDocument" => {
9940                    #[allow(non_camel_case_types)]
9941                    struct ShowTextDocumentSvc<T: CocoonService>(pub Arc<T>);
9942                    impl<
9943                        T: CocoonService,
9944                    > tonic::server::UnaryService<super::ShowTextDocumentRequest>
9945                    for ShowTextDocumentSvc<T> {
9946                        type Response = super::ShowTextDocumentResponse;
9947                        type Future = BoxFuture<
9948                            tonic::Response<Self::Response>,
9949                            tonic::Status,
9950                        >;
9951                        fn call(
9952                            &mut self,
9953                            request: tonic::Request<super::ShowTextDocumentRequest>,
9954                        ) -> Self::Future {
9955                            let inner = Arc::clone(&self.0);
9956                            let fut = async move {
9957                                <T as CocoonService>::show_text_document(&inner, request)
9958                                    .await
9959                            };
9960                            Box::pin(fut)
9961                        }
9962                    }
9963                    let accept_compression_encodings = self.accept_compression_encodings;
9964                    let send_compression_encodings = self.send_compression_encodings;
9965                    let max_decoding_message_size = self.max_decoding_message_size;
9966                    let max_encoding_message_size = self.max_encoding_message_size;
9967                    let inner = self.inner.clone();
9968                    let fut = async move {
9969                        let method = ShowTextDocumentSvc(inner);
9970                        let codec = tonic_prost::ProstCodec::default();
9971                        let mut grpc = tonic::server::Grpc::new(codec)
9972                            .apply_compression_config(
9973                                accept_compression_encodings,
9974                                send_compression_encodings,
9975                            )
9976                            .apply_max_message_size_config(
9977                                max_decoding_message_size,
9978                                max_encoding_message_size,
9979                            );
9980                        let res = grpc.unary(method, req).await;
9981                        Ok(res)
9982                    };
9983                    Box::pin(fut)
9984                }
9985                "/Vine.CocoonService/ShowInformationMessage" => {
9986                    #[allow(non_camel_case_types)]
9987                    struct ShowInformationMessageSvc<T: CocoonService>(pub Arc<T>);
9988                    impl<
9989                        T: CocoonService,
9990                    > tonic::server::UnaryService<super::ShowMessageRequest>
9991                    for ShowInformationMessageSvc<T> {
9992                        type Response = super::ShowMessageResponse;
9993                        type Future = BoxFuture<
9994                            tonic::Response<Self::Response>,
9995                            tonic::Status,
9996                        >;
9997                        fn call(
9998                            &mut self,
9999                            request: tonic::Request<super::ShowMessageRequest>,
10000                        ) -> Self::Future {
10001                            let inner = Arc::clone(&self.0);
10002                            let fut = async move {
10003                                <T as CocoonService>::show_information_message(
10004                                        &inner,
10005                                        request,
10006                                    )
10007                                    .await
10008                            };
10009                            Box::pin(fut)
10010                        }
10011                    }
10012                    let accept_compression_encodings = self.accept_compression_encodings;
10013                    let send_compression_encodings = self.send_compression_encodings;
10014                    let max_decoding_message_size = self.max_decoding_message_size;
10015                    let max_encoding_message_size = self.max_encoding_message_size;
10016                    let inner = self.inner.clone();
10017                    let fut = async move {
10018                        let method = ShowInformationMessageSvc(inner);
10019                        let codec = tonic_prost::ProstCodec::default();
10020                        let mut grpc = tonic::server::Grpc::new(codec)
10021                            .apply_compression_config(
10022                                accept_compression_encodings,
10023                                send_compression_encodings,
10024                            )
10025                            .apply_max_message_size_config(
10026                                max_decoding_message_size,
10027                                max_encoding_message_size,
10028                            );
10029                        let res = grpc.unary(method, req).await;
10030                        Ok(res)
10031                    };
10032                    Box::pin(fut)
10033                }
10034                "/Vine.CocoonService/ShowWarningMessage" => {
10035                    #[allow(non_camel_case_types)]
10036                    struct ShowWarningMessageSvc<T: CocoonService>(pub Arc<T>);
10037                    impl<
10038                        T: CocoonService,
10039                    > tonic::server::UnaryService<super::ShowMessageRequest>
10040                    for ShowWarningMessageSvc<T> {
10041                        type Response = super::ShowMessageResponse;
10042                        type Future = BoxFuture<
10043                            tonic::Response<Self::Response>,
10044                            tonic::Status,
10045                        >;
10046                        fn call(
10047                            &mut self,
10048                            request: tonic::Request<super::ShowMessageRequest>,
10049                        ) -> Self::Future {
10050                            let inner = Arc::clone(&self.0);
10051                            let fut = async move {
10052                                <T as CocoonService>::show_warning_message(&inner, request)
10053                                    .await
10054                            };
10055                            Box::pin(fut)
10056                        }
10057                    }
10058                    let accept_compression_encodings = self.accept_compression_encodings;
10059                    let send_compression_encodings = self.send_compression_encodings;
10060                    let max_decoding_message_size = self.max_decoding_message_size;
10061                    let max_encoding_message_size = self.max_encoding_message_size;
10062                    let inner = self.inner.clone();
10063                    let fut = async move {
10064                        let method = ShowWarningMessageSvc(inner);
10065                        let codec = tonic_prost::ProstCodec::default();
10066                        let mut grpc = tonic::server::Grpc::new(codec)
10067                            .apply_compression_config(
10068                                accept_compression_encodings,
10069                                send_compression_encodings,
10070                            )
10071                            .apply_max_message_size_config(
10072                                max_decoding_message_size,
10073                                max_encoding_message_size,
10074                            );
10075                        let res = grpc.unary(method, req).await;
10076                        Ok(res)
10077                    };
10078                    Box::pin(fut)
10079                }
10080                "/Vine.CocoonService/ShowErrorMessage" => {
10081                    #[allow(non_camel_case_types)]
10082                    struct ShowErrorMessageSvc<T: CocoonService>(pub Arc<T>);
10083                    impl<
10084                        T: CocoonService,
10085                    > tonic::server::UnaryService<super::ShowMessageRequest>
10086                    for ShowErrorMessageSvc<T> {
10087                        type Response = super::ShowMessageResponse;
10088                        type Future = BoxFuture<
10089                            tonic::Response<Self::Response>,
10090                            tonic::Status,
10091                        >;
10092                        fn call(
10093                            &mut self,
10094                            request: tonic::Request<super::ShowMessageRequest>,
10095                        ) -> Self::Future {
10096                            let inner = Arc::clone(&self.0);
10097                            let fut = async move {
10098                                <T as CocoonService>::show_error_message(&inner, request)
10099                                    .await
10100                            };
10101                            Box::pin(fut)
10102                        }
10103                    }
10104                    let accept_compression_encodings = self.accept_compression_encodings;
10105                    let send_compression_encodings = self.send_compression_encodings;
10106                    let max_decoding_message_size = self.max_decoding_message_size;
10107                    let max_encoding_message_size = self.max_encoding_message_size;
10108                    let inner = self.inner.clone();
10109                    let fut = async move {
10110                        let method = ShowErrorMessageSvc(inner);
10111                        let codec = tonic_prost::ProstCodec::default();
10112                        let mut grpc = tonic::server::Grpc::new(codec)
10113                            .apply_compression_config(
10114                                accept_compression_encodings,
10115                                send_compression_encodings,
10116                            )
10117                            .apply_max_message_size_config(
10118                                max_decoding_message_size,
10119                                max_encoding_message_size,
10120                            );
10121                        let res = grpc.unary(method, req).await;
10122                        Ok(res)
10123                    };
10124                    Box::pin(fut)
10125                }
10126                "/Vine.CocoonService/CreateStatusBarItem" => {
10127                    #[allow(non_camel_case_types)]
10128                    struct CreateStatusBarItemSvc<T: CocoonService>(pub Arc<T>);
10129                    impl<
10130                        T: CocoonService,
10131                    > tonic::server::UnaryService<super::CreateStatusBarItemRequest>
10132                    for CreateStatusBarItemSvc<T> {
10133                        type Response = super::CreateStatusBarItemResponse;
10134                        type Future = BoxFuture<
10135                            tonic::Response<Self::Response>,
10136                            tonic::Status,
10137                        >;
10138                        fn call(
10139                            &mut self,
10140                            request: tonic::Request<super::CreateStatusBarItemRequest>,
10141                        ) -> Self::Future {
10142                            let inner = Arc::clone(&self.0);
10143                            let fut = async move {
10144                                <T as CocoonService>::create_status_bar_item(
10145                                        &inner,
10146                                        request,
10147                                    )
10148                                    .await
10149                            };
10150                            Box::pin(fut)
10151                        }
10152                    }
10153                    let accept_compression_encodings = self.accept_compression_encodings;
10154                    let send_compression_encodings = self.send_compression_encodings;
10155                    let max_decoding_message_size = self.max_decoding_message_size;
10156                    let max_encoding_message_size = self.max_encoding_message_size;
10157                    let inner = self.inner.clone();
10158                    let fut = async move {
10159                        let method = CreateStatusBarItemSvc(inner);
10160                        let codec = tonic_prost::ProstCodec::default();
10161                        let mut grpc = tonic::server::Grpc::new(codec)
10162                            .apply_compression_config(
10163                                accept_compression_encodings,
10164                                send_compression_encodings,
10165                            )
10166                            .apply_max_message_size_config(
10167                                max_decoding_message_size,
10168                                max_encoding_message_size,
10169                            );
10170                        let res = grpc.unary(method, req).await;
10171                        Ok(res)
10172                    };
10173                    Box::pin(fut)
10174                }
10175                "/Vine.CocoonService/SetStatusBarText" => {
10176                    #[allow(non_camel_case_types)]
10177                    struct SetStatusBarTextSvc<T: CocoonService>(pub Arc<T>);
10178                    impl<
10179                        T: CocoonService,
10180                    > tonic::server::UnaryService<super::SetStatusBarTextRequest>
10181                    for SetStatusBarTextSvc<T> {
10182                        type Response = super::Empty;
10183                        type Future = BoxFuture<
10184                            tonic::Response<Self::Response>,
10185                            tonic::Status,
10186                        >;
10187                        fn call(
10188                            &mut self,
10189                            request: tonic::Request<super::SetStatusBarTextRequest>,
10190                        ) -> Self::Future {
10191                            let inner = Arc::clone(&self.0);
10192                            let fut = async move {
10193                                <T as CocoonService>::set_status_bar_text(&inner, request)
10194                                    .await
10195                            };
10196                            Box::pin(fut)
10197                        }
10198                    }
10199                    let accept_compression_encodings = self.accept_compression_encodings;
10200                    let send_compression_encodings = self.send_compression_encodings;
10201                    let max_decoding_message_size = self.max_decoding_message_size;
10202                    let max_encoding_message_size = self.max_encoding_message_size;
10203                    let inner = self.inner.clone();
10204                    let fut = async move {
10205                        let method = SetStatusBarTextSvc(inner);
10206                        let codec = tonic_prost::ProstCodec::default();
10207                        let mut grpc = tonic::server::Grpc::new(codec)
10208                            .apply_compression_config(
10209                                accept_compression_encodings,
10210                                send_compression_encodings,
10211                            )
10212                            .apply_max_message_size_config(
10213                                max_decoding_message_size,
10214                                max_encoding_message_size,
10215                            );
10216                        let res = grpc.unary(method, req).await;
10217                        Ok(res)
10218                    };
10219                    Box::pin(fut)
10220                }
10221                "/Vine.CocoonService/CreateWebviewPanel" => {
10222                    #[allow(non_camel_case_types)]
10223                    struct CreateWebviewPanelSvc<T: CocoonService>(pub Arc<T>);
10224                    impl<
10225                        T: CocoonService,
10226                    > tonic::server::UnaryService<super::CreateWebviewPanelRequest>
10227                    for CreateWebviewPanelSvc<T> {
10228                        type Response = super::CreateWebviewPanelResponse;
10229                        type Future = BoxFuture<
10230                            tonic::Response<Self::Response>,
10231                            tonic::Status,
10232                        >;
10233                        fn call(
10234                            &mut self,
10235                            request: tonic::Request<super::CreateWebviewPanelRequest>,
10236                        ) -> Self::Future {
10237                            let inner = Arc::clone(&self.0);
10238                            let fut = async move {
10239                                <T as CocoonService>::create_webview_panel(&inner, request)
10240                                    .await
10241                            };
10242                            Box::pin(fut)
10243                        }
10244                    }
10245                    let accept_compression_encodings = self.accept_compression_encodings;
10246                    let send_compression_encodings = self.send_compression_encodings;
10247                    let max_decoding_message_size = self.max_decoding_message_size;
10248                    let max_encoding_message_size = self.max_encoding_message_size;
10249                    let inner = self.inner.clone();
10250                    let fut = async move {
10251                        let method = CreateWebviewPanelSvc(inner);
10252                        let codec = tonic_prost::ProstCodec::default();
10253                        let mut grpc = tonic::server::Grpc::new(codec)
10254                            .apply_compression_config(
10255                                accept_compression_encodings,
10256                                send_compression_encodings,
10257                            )
10258                            .apply_max_message_size_config(
10259                                max_decoding_message_size,
10260                                max_encoding_message_size,
10261                            );
10262                        let res = grpc.unary(method, req).await;
10263                        Ok(res)
10264                    };
10265                    Box::pin(fut)
10266                }
10267                "/Vine.CocoonService/SetWebviewHTML" => {
10268                    #[allow(non_camel_case_types)]
10269                    struct SetWebviewHTMLSvc<T: CocoonService>(pub Arc<T>);
10270                    impl<
10271                        T: CocoonService,
10272                    > tonic::server::UnaryService<super::SetWebviewHtmlRequest>
10273                    for SetWebviewHTMLSvc<T> {
10274                        type Response = super::Empty;
10275                        type Future = BoxFuture<
10276                            tonic::Response<Self::Response>,
10277                            tonic::Status,
10278                        >;
10279                        fn call(
10280                            &mut self,
10281                            request: tonic::Request<super::SetWebviewHtmlRequest>,
10282                        ) -> Self::Future {
10283                            let inner = Arc::clone(&self.0);
10284                            let fut = async move {
10285                                <T as CocoonService>::set_webview_html(&inner, request)
10286                                    .await
10287                            };
10288                            Box::pin(fut)
10289                        }
10290                    }
10291                    let accept_compression_encodings = self.accept_compression_encodings;
10292                    let send_compression_encodings = self.send_compression_encodings;
10293                    let max_decoding_message_size = self.max_decoding_message_size;
10294                    let max_encoding_message_size = self.max_encoding_message_size;
10295                    let inner = self.inner.clone();
10296                    let fut = async move {
10297                        let method = SetWebviewHTMLSvc(inner);
10298                        let codec = tonic_prost::ProstCodec::default();
10299                        let mut grpc = tonic::server::Grpc::new(codec)
10300                            .apply_compression_config(
10301                                accept_compression_encodings,
10302                                send_compression_encodings,
10303                            )
10304                            .apply_max_message_size_config(
10305                                max_decoding_message_size,
10306                                max_encoding_message_size,
10307                            );
10308                        let res = grpc.unary(method, req).await;
10309                        Ok(res)
10310                    };
10311                    Box::pin(fut)
10312                }
10313                "/Vine.CocoonService/OnDidReceiveMessage" => {
10314                    #[allow(non_camel_case_types)]
10315                    struct OnDidReceiveMessageSvc<T: CocoonService>(pub Arc<T>);
10316                    impl<
10317                        T: CocoonService,
10318                    > tonic::server::UnaryService<super::OnDidReceiveMessageRequest>
10319                    for OnDidReceiveMessageSvc<T> {
10320                        type Response = super::Empty;
10321                        type Future = BoxFuture<
10322                            tonic::Response<Self::Response>,
10323                            tonic::Status,
10324                        >;
10325                        fn call(
10326                            &mut self,
10327                            request: tonic::Request<super::OnDidReceiveMessageRequest>,
10328                        ) -> Self::Future {
10329                            let inner = Arc::clone(&self.0);
10330                            let fut = async move {
10331                                <T as CocoonService>::on_did_receive_message(
10332                                        &inner,
10333                                        request,
10334                                    )
10335                                    .await
10336                            };
10337                            Box::pin(fut)
10338                        }
10339                    }
10340                    let accept_compression_encodings = self.accept_compression_encodings;
10341                    let send_compression_encodings = self.send_compression_encodings;
10342                    let max_decoding_message_size = self.max_decoding_message_size;
10343                    let max_encoding_message_size = self.max_encoding_message_size;
10344                    let inner = self.inner.clone();
10345                    let fut = async move {
10346                        let method = OnDidReceiveMessageSvc(inner);
10347                        let codec = tonic_prost::ProstCodec::default();
10348                        let mut grpc = tonic::server::Grpc::new(codec)
10349                            .apply_compression_config(
10350                                accept_compression_encodings,
10351                                send_compression_encodings,
10352                            )
10353                            .apply_max_message_size_config(
10354                                max_decoding_message_size,
10355                                max_encoding_message_size,
10356                            );
10357                        let res = grpc.unary(method, req).await;
10358                        Ok(res)
10359                    };
10360                    Box::pin(fut)
10361                }
10362                "/Vine.CocoonService/ReadFile" => {
10363                    #[allow(non_camel_case_types)]
10364                    struct ReadFileSvc<T: CocoonService>(pub Arc<T>);
10365                    impl<
10366                        T: CocoonService,
10367                    > tonic::server::UnaryService<super::ReadFileRequest>
10368                    for ReadFileSvc<T> {
10369                        type Response = super::ReadFileResponse;
10370                        type Future = BoxFuture<
10371                            tonic::Response<Self::Response>,
10372                            tonic::Status,
10373                        >;
10374                        fn call(
10375                            &mut self,
10376                            request: tonic::Request<super::ReadFileRequest>,
10377                        ) -> Self::Future {
10378                            let inner = Arc::clone(&self.0);
10379                            let fut = async move {
10380                                <T as CocoonService>::read_file(&inner, request).await
10381                            };
10382                            Box::pin(fut)
10383                        }
10384                    }
10385                    let accept_compression_encodings = self.accept_compression_encodings;
10386                    let send_compression_encodings = self.send_compression_encodings;
10387                    let max_decoding_message_size = self.max_decoding_message_size;
10388                    let max_encoding_message_size = self.max_encoding_message_size;
10389                    let inner = self.inner.clone();
10390                    let fut = async move {
10391                        let method = ReadFileSvc(inner);
10392                        let codec = tonic_prost::ProstCodec::default();
10393                        let mut grpc = tonic::server::Grpc::new(codec)
10394                            .apply_compression_config(
10395                                accept_compression_encodings,
10396                                send_compression_encodings,
10397                            )
10398                            .apply_max_message_size_config(
10399                                max_decoding_message_size,
10400                                max_encoding_message_size,
10401                            );
10402                        let res = grpc.unary(method, req).await;
10403                        Ok(res)
10404                    };
10405                    Box::pin(fut)
10406                }
10407                "/Vine.CocoonService/WriteFile" => {
10408                    #[allow(non_camel_case_types)]
10409                    struct WriteFileSvc<T: CocoonService>(pub Arc<T>);
10410                    impl<
10411                        T: CocoonService,
10412                    > tonic::server::UnaryService<super::WriteFileRequest>
10413                    for WriteFileSvc<T> {
10414                        type Response = super::Empty;
10415                        type Future = BoxFuture<
10416                            tonic::Response<Self::Response>,
10417                            tonic::Status,
10418                        >;
10419                        fn call(
10420                            &mut self,
10421                            request: tonic::Request<super::WriteFileRequest>,
10422                        ) -> Self::Future {
10423                            let inner = Arc::clone(&self.0);
10424                            let fut = async move {
10425                                <T as CocoonService>::write_file(&inner, request).await
10426                            };
10427                            Box::pin(fut)
10428                        }
10429                    }
10430                    let accept_compression_encodings = self.accept_compression_encodings;
10431                    let send_compression_encodings = self.send_compression_encodings;
10432                    let max_decoding_message_size = self.max_decoding_message_size;
10433                    let max_encoding_message_size = self.max_encoding_message_size;
10434                    let inner = self.inner.clone();
10435                    let fut = async move {
10436                        let method = WriteFileSvc(inner);
10437                        let codec = tonic_prost::ProstCodec::default();
10438                        let mut grpc = tonic::server::Grpc::new(codec)
10439                            .apply_compression_config(
10440                                accept_compression_encodings,
10441                                send_compression_encodings,
10442                            )
10443                            .apply_max_message_size_config(
10444                                max_decoding_message_size,
10445                                max_encoding_message_size,
10446                            );
10447                        let res = grpc.unary(method, req).await;
10448                        Ok(res)
10449                    };
10450                    Box::pin(fut)
10451                }
10452                "/Vine.CocoonService/Stat" => {
10453                    #[allow(non_camel_case_types)]
10454                    struct StatSvc<T: CocoonService>(pub Arc<T>);
10455                    impl<
10456                        T: CocoonService,
10457                    > tonic::server::UnaryService<super::StatRequest> for StatSvc<T> {
10458                        type Response = super::StatResponse;
10459                        type Future = BoxFuture<
10460                            tonic::Response<Self::Response>,
10461                            tonic::Status,
10462                        >;
10463                        fn call(
10464                            &mut self,
10465                            request: tonic::Request<super::StatRequest>,
10466                        ) -> Self::Future {
10467                            let inner = Arc::clone(&self.0);
10468                            let fut = async move {
10469                                <T as CocoonService>::stat(&inner, request).await
10470                            };
10471                            Box::pin(fut)
10472                        }
10473                    }
10474                    let accept_compression_encodings = self.accept_compression_encodings;
10475                    let send_compression_encodings = self.send_compression_encodings;
10476                    let max_decoding_message_size = self.max_decoding_message_size;
10477                    let max_encoding_message_size = self.max_encoding_message_size;
10478                    let inner = self.inner.clone();
10479                    let fut = async move {
10480                        let method = StatSvc(inner);
10481                        let codec = tonic_prost::ProstCodec::default();
10482                        let mut grpc = tonic::server::Grpc::new(codec)
10483                            .apply_compression_config(
10484                                accept_compression_encodings,
10485                                send_compression_encodings,
10486                            )
10487                            .apply_max_message_size_config(
10488                                max_decoding_message_size,
10489                                max_encoding_message_size,
10490                            );
10491                        let res = grpc.unary(method, req).await;
10492                        Ok(res)
10493                    };
10494                    Box::pin(fut)
10495                }
10496                "/Vine.CocoonService/Readdir" => {
10497                    #[allow(non_camel_case_types)]
10498                    struct ReaddirSvc<T: CocoonService>(pub Arc<T>);
10499                    impl<
10500                        T: CocoonService,
10501                    > tonic::server::UnaryService<super::ReaddirRequest>
10502                    for ReaddirSvc<T> {
10503                        type Response = super::ReaddirResponse;
10504                        type Future = BoxFuture<
10505                            tonic::Response<Self::Response>,
10506                            tonic::Status,
10507                        >;
10508                        fn call(
10509                            &mut self,
10510                            request: tonic::Request<super::ReaddirRequest>,
10511                        ) -> Self::Future {
10512                            let inner = Arc::clone(&self.0);
10513                            let fut = async move {
10514                                <T as CocoonService>::readdir(&inner, request).await
10515                            };
10516                            Box::pin(fut)
10517                        }
10518                    }
10519                    let accept_compression_encodings = self.accept_compression_encodings;
10520                    let send_compression_encodings = self.send_compression_encodings;
10521                    let max_decoding_message_size = self.max_decoding_message_size;
10522                    let max_encoding_message_size = self.max_encoding_message_size;
10523                    let inner = self.inner.clone();
10524                    let fut = async move {
10525                        let method = ReaddirSvc(inner);
10526                        let codec = tonic_prost::ProstCodec::default();
10527                        let mut grpc = tonic::server::Grpc::new(codec)
10528                            .apply_compression_config(
10529                                accept_compression_encodings,
10530                                send_compression_encodings,
10531                            )
10532                            .apply_max_message_size_config(
10533                                max_decoding_message_size,
10534                                max_encoding_message_size,
10535                            );
10536                        let res = grpc.unary(method, req).await;
10537                        Ok(res)
10538                    };
10539                    Box::pin(fut)
10540                }
10541                "/Vine.CocoonService/WatchFile" => {
10542                    #[allow(non_camel_case_types)]
10543                    struct WatchFileSvc<T: CocoonService>(pub Arc<T>);
10544                    impl<
10545                        T: CocoonService,
10546                    > tonic::server::UnaryService<super::WatchFileRequest>
10547                    for WatchFileSvc<T> {
10548                        type Response = super::Empty;
10549                        type Future = BoxFuture<
10550                            tonic::Response<Self::Response>,
10551                            tonic::Status,
10552                        >;
10553                        fn call(
10554                            &mut self,
10555                            request: tonic::Request<super::WatchFileRequest>,
10556                        ) -> Self::Future {
10557                            let inner = Arc::clone(&self.0);
10558                            let fut = async move {
10559                                <T as CocoonService>::watch_file(&inner, request).await
10560                            };
10561                            Box::pin(fut)
10562                        }
10563                    }
10564                    let accept_compression_encodings = self.accept_compression_encodings;
10565                    let send_compression_encodings = self.send_compression_encodings;
10566                    let max_decoding_message_size = self.max_decoding_message_size;
10567                    let max_encoding_message_size = self.max_encoding_message_size;
10568                    let inner = self.inner.clone();
10569                    let fut = async move {
10570                        let method = WatchFileSvc(inner);
10571                        let codec = tonic_prost::ProstCodec::default();
10572                        let mut grpc = tonic::server::Grpc::new(codec)
10573                            .apply_compression_config(
10574                                accept_compression_encodings,
10575                                send_compression_encodings,
10576                            )
10577                            .apply_max_message_size_config(
10578                                max_decoding_message_size,
10579                                max_encoding_message_size,
10580                            );
10581                        let res = grpc.unary(method, req).await;
10582                        Ok(res)
10583                    };
10584                    Box::pin(fut)
10585                }
10586                "/Vine.CocoonService/FindFiles" => {
10587                    #[allow(non_camel_case_types)]
10588                    struct FindFilesSvc<T: CocoonService>(pub Arc<T>);
10589                    impl<
10590                        T: CocoonService,
10591                    > tonic::server::UnaryService<super::FindFilesRequest>
10592                    for FindFilesSvc<T> {
10593                        type Response = super::FindFilesResponse;
10594                        type Future = BoxFuture<
10595                            tonic::Response<Self::Response>,
10596                            tonic::Status,
10597                        >;
10598                        fn call(
10599                            &mut self,
10600                            request: tonic::Request<super::FindFilesRequest>,
10601                        ) -> Self::Future {
10602                            let inner = Arc::clone(&self.0);
10603                            let fut = async move {
10604                                <T as CocoonService>::find_files(&inner, request).await
10605                            };
10606                            Box::pin(fut)
10607                        }
10608                    }
10609                    let accept_compression_encodings = self.accept_compression_encodings;
10610                    let send_compression_encodings = self.send_compression_encodings;
10611                    let max_decoding_message_size = self.max_decoding_message_size;
10612                    let max_encoding_message_size = self.max_encoding_message_size;
10613                    let inner = self.inner.clone();
10614                    let fut = async move {
10615                        let method = FindFilesSvc(inner);
10616                        let codec = tonic_prost::ProstCodec::default();
10617                        let mut grpc = tonic::server::Grpc::new(codec)
10618                            .apply_compression_config(
10619                                accept_compression_encodings,
10620                                send_compression_encodings,
10621                            )
10622                            .apply_max_message_size_config(
10623                                max_decoding_message_size,
10624                                max_encoding_message_size,
10625                            );
10626                        let res = grpc.unary(method, req).await;
10627                        Ok(res)
10628                    };
10629                    Box::pin(fut)
10630                }
10631                "/Vine.CocoonService/FindTextInFiles" => {
10632                    #[allow(non_camel_case_types)]
10633                    struct FindTextInFilesSvc<T: CocoonService>(pub Arc<T>);
10634                    impl<
10635                        T: CocoonService,
10636                    > tonic::server::UnaryService<super::FindTextInFilesRequest>
10637                    for FindTextInFilesSvc<T> {
10638                        type Response = super::FindTextInFilesResponse;
10639                        type Future = BoxFuture<
10640                            tonic::Response<Self::Response>,
10641                            tonic::Status,
10642                        >;
10643                        fn call(
10644                            &mut self,
10645                            request: tonic::Request<super::FindTextInFilesRequest>,
10646                        ) -> Self::Future {
10647                            let inner = Arc::clone(&self.0);
10648                            let fut = async move {
10649                                <T as CocoonService>::find_text_in_files(&inner, request)
10650                                    .await
10651                            };
10652                            Box::pin(fut)
10653                        }
10654                    }
10655                    let accept_compression_encodings = self.accept_compression_encodings;
10656                    let send_compression_encodings = self.send_compression_encodings;
10657                    let max_decoding_message_size = self.max_decoding_message_size;
10658                    let max_encoding_message_size = self.max_encoding_message_size;
10659                    let inner = self.inner.clone();
10660                    let fut = async move {
10661                        let method = FindTextInFilesSvc(inner);
10662                        let codec = tonic_prost::ProstCodec::default();
10663                        let mut grpc = tonic::server::Grpc::new(codec)
10664                            .apply_compression_config(
10665                                accept_compression_encodings,
10666                                send_compression_encodings,
10667                            )
10668                            .apply_max_message_size_config(
10669                                max_decoding_message_size,
10670                                max_encoding_message_size,
10671                            );
10672                        let res = grpc.unary(method, req).await;
10673                        Ok(res)
10674                    };
10675                    Box::pin(fut)
10676                }
10677                "/Vine.CocoonService/OpenDocument" => {
10678                    #[allow(non_camel_case_types)]
10679                    struct OpenDocumentSvc<T: CocoonService>(pub Arc<T>);
10680                    impl<
10681                        T: CocoonService,
10682                    > tonic::server::UnaryService<super::OpenDocumentRequest>
10683                    for OpenDocumentSvc<T> {
10684                        type Response = super::OpenDocumentResponse;
10685                        type Future = BoxFuture<
10686                            tonic::Response<Self::Response>,
10687                            tonic::Status,
10688                        >;
10689                        fn call(
10690                            &mut self,
10691                            request: tonic::Request<super::OpenDocumentRequest>,
10692                        ) -> Self::Future {
10693                            let inner = Arc::clone(&self.0);
10694                            let fut = async move {
10695                                <T as CocoonService>::open_document(&inner, request).await
10696                            };
10697                            Box::pin(fut)
10698                        }
10699                    }
10700                    let accept_compression_encodings = self.accept_compression_encodings;
10701                    let send_compression_encodings = self.send_compression_encodings;
10702                    let max_decoding_message_size = self.max_decoding_message_size;
10703                    let max_encoding_message_size = self.max_encoding_message_size;
10704                    let inner = self.inner.clone();
10705                    let fut = async move {
10706                        let method = OpenDocumentSvc(inner);
10707                        let codec = tonic_prost::ProstCodec::default();
10708                        let mut grpc = tonic::server::Grpc::new(codec)
10709                            .apply_compression_config(
10710                                accept_compression_encodings,
10711                                send_compression_encodings,
10712                            )
10713                            .apply_max_message_size_config(
10714                                max_decoding_message_size,
10715                                max_encoding_message_size,
10716                            );
10717                        let res = grpc.unary(method, req).await;
10718                        Ok(res)
10719                    };
10720                    Box::pin(fut)
10721                }
10722                "/Vine.CocoonService/SaveAll" => {
10723                    #[allow(non_camel_case_types)]
10724                    struct SaveAllSvc<T: CocoonService>(pub Arc<T>);
10725                    impl<
10726                        T: CocoonService,
10727                    > tonic::server::UnaryService<super::SaveAllRequest>
10728                    for SaveAllSvc<T> {
10729                        type Response = super::SaveAllResponse;
10730                        type Future = BoxFuture<
10731                            tonic::Response<Self::Response>,
10732                            tonic::Status,
10733                        >;
10734                        fn call(
10735                            &mut self,
10736                            request: tonic::Request<super::SaveAllRequest>,
10737                        ) -> Self::Future {
10738                            let inner = Arc::clone(&self.0);
10739                            let fut = async move {
10740                                <T as CocoonService>::save_all(&inner, request).await
10741                            };
10742                            Box::pin(fut)
10743                        }
10744                    }
10745                    let accept_compression_encodings = self.accept_compression_encodings;
10746                    let send_compression_encodings = self.send_compression_encodings;
10747                    let max_decoding_message_size = self.max_decoding_message_size;
10748                    let max_encoding_message_size = self.max_encoding_message_size;
10749                    let inner = self.inner.clone();
10750                    let fut = async move {
10751                        let method = SaveAllSvc(inner);
10752                        let codec = tonic_prost::ProstCodec::default();
10753                        let mut grpc = tonic::server::Grpc::new(codec)
10754                            .apply_compression_config(
10755                                accept_compression_encodings,
10756                                send_compression_encodings,
10757                            )
10758                            .apply_max_message_size_config(
10759                                max_decoding_message_size,
10760                                max_encoding_message_size,
10761                            );
10762                        let res = grpc.unary(method, req).await;
10763                        Ok(res)
10764                    };
10765                    Box::pin(fut)
10766                }
10767                "/Vine.CocoonService/ApplyEdit" => {
10768                    #[allow(non_camel_case_types)]
10769                    struct ApplyEditSvc<T: CocoonService>(pub Arc<T>);
10770                    impl<
10771                        T: CocoonService,
10772                    > tonic::server::UnaryService<super::ApplyEditRequest>
10773                    for ApplyEditSvc<T> {
10774                        type Response = super::ApplyEditResponse;
10775                        type Future = BoxFuture<
10776                            tonic::Response<Self::Response>,
10777                            tonic::Status,
10778                        >;
10779                        fn call(
10780                            &mut self,
10781                            request: tonic::Request<super::ApplyEditRequest>,
10782                        ) -> Self::Future {
10783                            let inner = Arc::clone(&self.0);
10784                            let fut = async move {
10785                                <T as CocoonService>::apply_edit(&inner, request).await
10786                            };
10787                            Box::pin(fut)
10788                        }
10789                    }
10790                    let accept_compression_encodings = self.accept_compression_encodings;
10791                    let send_compression_encodings = self.send_compression_encodings;
10792                    let max_decoding_message_size = self.max_decoding_message_size;
10793                    let max_encoding_message_size = self.max_encoding_message_size;
10794                    let inner = self.inner.clone();
10795                    let fut = async move {
10796                        let method = ApplyEditSvc(inner);
10797                        let codec = tonic_prost::ProstCodec::default();
10798                        let mut grpc = tonic::server::Grpc::new(codec)
10799                            .apply_compression_config(
10800                                accept_compression_encodings,
10801                                send_compression_encodings,
10802                            )
10803                            .apply_max_message_size_config(
10804                                max_decoding_message_size,
10805                                max_encoding_message_size,
10806                            );
10807                        let res = grpc.unary(method, req).await;
10808                        Ok(res)
10809                    };
10810                    Box::pin(fut)
10811                }
10812                "/Vine.CocoonService/UpdateConfiguration" => {
10813                    #[allow(non_camel_case_types)]
10814                    struct UpdateConfigurationSvc<T: CocoonService>(pub Arc<T>);
10815                    impl<
10816                        T: CocoonService,
10817                    > tonic::server::UnaryService<super::UpdateConfigurationRequest>
10818                    for UpdateConfigurationSvc<T> {
10819                        type Response = super::Empty;
10820                        type Future = BoxFuture<
10821                            tonic::Response<Self::Response>,
10822                            tonic::Status,
10823                        >;
10824                        fn call(
10825                            &mut self,
10826                            request: tonic::Request<super::UpdateConfigurationRequest>,
10827                        ) -> Self::Future {
10828                            let inner = Arc::clone(&self.0);
10829                            let fut = async move {
10830                                <T as CocoonService>::update_configuration(&inner, request)
10831                                    .await
10832                            };
10833                            Box::pin(fut)
10834                        }
10835                    }
10836                    let accept_compression_encodings = self.accept_compression_encodings;
10837                    let send_compression_encodings = self.send_compression_encodings;
10838                    let max_decoding_message_size = self.max_decoding_message_size;
10839                    let max_encoding_message_size = self.max_encoding_message_size;
10840                    let inner = self.inner.clone();
10841                    let fut = async move {
10842                        let method = UpdateConfigurationSvc(inner);
10843                        let codec = tonic_prost::ProstCodec::default();
10844                        let mut grpc = tonic::server::Grpc::new(codec)
10845                            .apply_compression_config(
10846                                accept_compression_encodings,
10847                                send_compression_encodings,
10848                            )
10849                            .apply_max_message_size_config(
10850                                max_decoding_message_size,
10851                                max_encoding_message_size,
10852                            );
10853                        let res = grpc.unary(method, req).await;
10854                        Ok(res)
10855                    };
10856                    Box::pin(fut)
10857                }
10858                "/Vine.CocoonService/UpdateWorkspaceFolders" => {
10859                    #[allow(non_camel_case_types)]
10860                    struct UpdateWorkspaceFoldersSvc<T: CocoonService>(pub Arc<T>);
10861                    impl<
10862                        T: CocoonService,
10863                    > tonic::server::UnaryService<super::UpdateWorkspaceFoldersRequest>
10864                    for UpdateWorkspaceFoldersSvc<T> {
10865                        type Response = super::Empty;
10866                        type Future = BoxFuture<
10867                            tonic::Response<Self::Response>,
10868                            tonic::Status,
10869                        >;
10870                        fn call(
10871                            &mut self,
10872                            request: tonic::Request<super::UpdateWorkspaceFoldersRequest>,
10873                        ) -> Self::Future {
10874                            let inner = Arc::clone(&self.0);
10875                            let fut = async move {
10876                                <T as CocoonService>::update_workspace_folders(
10877                                        &inner,
10878                                        request,
10879                                    )
10880                                    .await
10881                            };
10882                            Box::pin(fut)
10883                        }
10884                    }
10885                    let accept_compression_encodings = self.accept_compression_encodings;
10886                    let send_compression_encodings = self.send_compression_encodings;
10887                    let max_decoding_message_size = self.max_decoding_message_size;
10888                    let max_encoding_message_size = self.max_encoding_message_size;
10889                    let inner = self.inner.clone();
10890                    let fut = async move {
10891                        let method = UpdateWorkspaceFoldersSvc(inner);
10892                        let codec = tonic_prost::ProstCodec::default();
10893                        let mut grpc = tonic::server::Grpc::new(codec)
10894                            .apply_compression_config(
10895                                accept_compression_encodings,
10896                                send_compression_encodings,
10897                            )
10898                            .apply_max_message_size_config(
10899                                max_decoding_message_size,
10900                                max_encoding_message_size,
10901                            );
10902                        let res = grpc.unary(method, req).await;
10903                        Ok(res)
10904                    };
10905                    Box::pin(fut)
10906                }
10907                "/Vine.CocoonService/OpenTerminal" => {
10908                    #[allow(non_camel_case_types)]
10909                    struct OpenTerminalSvc<T: CocoonService>(pub Arc<T>);
10910                    impl<
10911                        T: CocoonService,
10912                    > tonic::server::UnaryService<super::OpenTerminalRequest>
10913                    for OpenTerminalSvc<T> {
10914                        type Response = super::Empty;
10915                        type Future = BoxFuture<
10916                            tonic::Response<Self::Response>,
10917                            tonic::Status,
10918                        >;
10919                        fn call(
10920                            &mut self,
10921                            request: tonic::Request<super::OpenTerminalRequest>,
10922                        ) -> Self::Future {
10923                            let inner = Arc::clone(&self.0);
10924                            let fut = async move {
10925                                <T as CocoonService>::open_terminal(&inner, request).await
10926                            };
10927                            Box::pin(fut)
10928                        }
10929                    }
10930                    let accept_compression_encodings = self.accept_compression_encodings;
10931                    let send_compression_encodings = self.send_compression_encodings;
10932                    let max_decoding_message_size = self.max_decoding_message_size;
10933                    let max_encoding_message_size = self.max_encoding_message_size;
10934                    let inner = self.inner.clone();
10935                    let fut = async move {
10936                        let method = OpenTerminalSvc(inner);
10937                        let codec = tonic_prost::ProstCodec::default();
10938                        let mut grpc = tonic::server::Grpc::new(codec)
10939                            .apply_compression_config(
10940                                accept_compression_encodings,
10941                                send_compression_encodings,
10942                            )
10943                            .apply_max_message_size_config(
10944                                max_decoding_message_size,
10945                                max_encoding_message_size,
10946                            );
10947                        let res = grpc.unary(method, req).await;
10948                        Ok(res)
10949                    };
10950                    Box::pin(fut)
10951                }
10952                "/Vine.CocoonService/TerminalInput" => {
10953                    #[allow(non_camel_case_types)]
10954                    struct TerminalInputSvc<T: CocoonService>(pub Arc<T>);
10955                    impl<
10956                        T: CocoonService,
10957                    > tonic::server::UnaryService<super::TerminalInputRequest>
10958                    for TerminalInputSvc<T> {
10959                        type Response = super::Empty;
10960                        type Future = BoxFuture<
10961                            tonic::Response<Self::Response>,
10962                            tonic::Status,
10963                        >;
10964                        fn call(
10965                            &mut self,
10966                            request: tonic::Request<super::TerminalInputRequest>,
10967                        ) -> Self::Future {
10968                            let inner = Arc::clone(&self.0);
10969                            let fut = async move {
10970                                <T as CocoonService>::terminal_input(&inner, request).await
10971                            };
10972                            Box::pin(fut)
10973                        }
10974                    }
10975                    let accept_compression_encodings = self.accept_compression_encodings;
10976                    let send_compression_encodings = self.send_compression_encodings;
10977                    let max_decoding_message_size = self.max_decoding_message_size;
10978                    let max_encoding_message_size = self.max_encoding_message_size;
10979                    let inner = self.inner.clone();
10980                    let fut = async move {
10981                        let method = TerminalInputSvc(inner);
10982                        let codec = tonic_prost::ProstCodec::default();
10983                        let mut grpc = tonic::server::Grpc::new(codec)
10984                            .apply_compression_config(
10985                                accept_compression_encodings,
10986                                send_compression_encodings,
10987                            )
10988                            .apply_max_message_size_config(
10989                                max_decoding_message_size,
10990                                max_encoding_message_size,
10991                            );
10992                        let res = grpc.unary(method, req).await;
10993                        Ok(res)
10994                    };
10995                    Box::pin(fut)
10996                }
10997                "/Vine.CocoonService/CloseTerminal" => {
10998                    #[allow(non_camel_case_types)]
10999                    struct CloseTerminalSvc<T: CocoonService>(pub Arc<T>);
11000                    impl<
11001                        T: CocoonService,
11002                    > tonic::server::UnaryService<super::CloseTerminalRequest>
11003                    for CloseTerminalSvc<T> {
11004                        type Response = super::Empty;
11005                        type Future = BoxFuture<
11006                            tonic::Response<Self::Response>,
11007                            tonic::Status,
11008                        >;
11009                        fn call(
11010                            &mut self,
11011                            request: tonic::Request<super::CloseTerminalRequest>,
11012                        ) -> Self::Future {
11013                            let inner = Arc::clone(&self.0);
11014                            let fut = async move {
11015                                <T as CocoonService>::close_terminal(&inner, request).await
11016                            };
11017                            Box::pin(fut)
11018                        }
11019                    }
11020                    let accept_compression_encodings = self.accept_compression_encodings;
11021                    let send_compression_encodings = self.send_compression_encodings;
11022                    let max_decoding_message_size = self.max_decoding_message_size;
11023                    let max_encoding_message_size = self.max_encoding_message_size;
11024                    let inner = self.inner.clone();
11025                    let fut = async move {
11026                        let method = CloseTerminalSvc(inner);
11027                        let codec = tonic_prost::ProstCodec::default();
11028                        let mut grpc = tonic::server::Grpc::new(codec)
11029                            .apply_compression_config(
11030                                accept_compression_encodings,
11031                                send_compression_encodings,
11032                            )
11033                            .apply_max_message_size_config(
11034                                max_decoding_message_size,
11035                                max_encoding_message_size,
11036                            );
11037                        let res = grpc.unary(method, req).await;
11038                        Ok(res)
11039                    };
11040                    Box::pin(fut)
11041                }
11042                "/Vine.CocoonService/AcceptTerminalOpened" => {
11043                    #[allow(non_camel_case_types)]
11044                    struct AcceptTerminalOpenedSvc<T: CocoonService>(pub Arc<T>);
11045                    impl<
11046                        T: CocoonService,
11047                    > tonic::server::UnaryService<super::TerminalOpenedNotification>
11048                    for AcceptTerminalOpenedSvc<T> {
11049                        type Response = super::Empty;
11050                        type Future = BoxFuture<
11051                            tonic::Response<Self::Response>,
11052                            tonic::Status,
11053                        >;
11054                        fn call(
11055                            &mut self,
11056                            request: tonic::Request<super::TerminalOpenedNotification>,
11057                        ) -> Self::Future {
11058                            let inner = Arc::clone(&self.0);
11059                            let fut = async move {
11060                                <T as CocoonService>::accept_terminal_opened(
11061                                        &inner,
11062                                        request,
11063                                    )
11064                                    .await
11065                            };
11066                            Box::pin(fut)
11067                        }
11068                    }
11069                    let accept_compression_encodings = self.accept_compression_encodings;
11070                    let send_compression_encodings = self.send_compression_encodings;
11071                    let max_decoding_message_size = self.max_decoding_message_size;
11072                    let max_encoding_message_size = self.max_encoding_message_size;
11073                    let inner = self.inner.clone();
11074                    let fut = async move {
11075                        let method = AcceptTerminalOpenedSvc(inner);
11076                        let codec = tonic_prost::ProstCodec::default();
11077                        let mut grpc = tonic::server::Grpc::new(codec)
11078                            .apply_compression_config(
11079                                accept_compression_encodings,
11080                                send_compression_encodings,
11081                            )
11082                            .apply_max_message_size_config(
11083                                max_decoding_message_size,
11084                                max_encoding_message_size,
11085                            );
11086                        let res = grpc.unary(method, req).await;
11087                        Ok(res)
11088                    };
11089                    Box::pin(fut)
11090                }
11091                "/Vine.CocoonService/AcceptTerminalClosed" => {
11092                    #[allow(non_camel_case_types)]
11093                    struct AcceptTerminalClosedSvc<T: CocoonService>(pub Arc<T>);
11094                    impl<
11095                        T: CocoonService,
11096                    > tonic::server::UnaryService<super::TerminalClosedNotification>
11097                    for AcceptTerminalClosedSvc<T> {
11098                        type Response = super::Empty;
11099                        type Future = BoxFuture<
11100                            tonic::Response<Self::Response>,
11101                            tonic::Status,
11102                        >;
11103                        fn call(
11104                            &mut self,
11105                            request: tonic::Request<super::TerminalClosedNotification>,
11106                        ) -> Self::Future {
11107                            let inner = Arc::clone(&self.0);
11108                            let fut = async move {
11109                                <T as CocoonService>::accept_terminal_closed(
11110                                        &inner,
11111                                        request,
11112                                    )
11113                                    .await
11114                            };
11115                            Box::pin(fut)
11116                        }
11117                    }
11118                    let accept_compression_encodings = self.accept_compression_encodings;
11119                    let send_compression_encodings = self.send_compression_encodings;
11120                    let max_decoding_message_size = self.max_decoding_message_size;
11121                    let max_encoding_message_size = self.max_encoding_message_size;
11122                    let inner = self.inner.clone();
11123                    let fut = async move {
11124                        let method = AcceptTerminalClosedSvc(inner);
11125                        let codec = tonic_prost::ProstCodec::default();
11126                        let mut grpc = tonic::server::Grpc::new(codec)
11127                            .apply_compression_config(
11128                                accept_compression_encodings,
11129                                send_compression_encodings,
11130                            )
11131                            .apply_max_message_size_config(
11132                                max_decoding_message_size,
11133                                max_encoding_message_size,
11134                            );
11135                        let res = grpc.unary(method, req).await;
11136                        Ok(res)
11137                    };
11138                    Box::pin(fut)
11139                }
11140                "/Vine.CocoonService/AcceptTerminalProcessId" => {
11141                    #[allow(non_camel_case_types)]
11142                    struct AcceptTerminalProcessIdSvc<T: CocoonService>(pub Arc<T>);
11143                    impl<
11144                        T: CocoonService,
11145                    > tonic::server::UnaryService<super::TerminalProcessIdNotification>
11146                    for AcceptTerminalProcessIdSvc<T> {
11147                        type Response = super::Empty;
11148                        type Future = BoxFuture<
11149                            tonic::Response<Self::Response>,
11150                            tonic::Status,
11151                        >;
11152                        fn call(
11153                            &mut self,
11154                            request: tonic::Request<super::TerminalProcessIdNotification>,
11155                        ) -> Self::Future {
11156                            let inner = Arc::clone(&self.0);
11157                            let fut = async move {
11158                                <T as CocoonService>::accept_terminal_process_id(
11159                                        &inner,
11160                                        request,
11161                                    )
11162                                    .await
11163                            };
11164                            Box::pin(fut)
11165                        }
11166                    }
11167                    let accept_compression_encodings = self.accept_compression_encodings;
11168                    let send_compression_encodings = self.send_compression_encodings;
11169                    let max_decoding_message_size = self.max_decoding_message_size;
11170                    let max_encoding_message_size = self.max_encoding_message_size;
11171                    let inner = self.inner.clone();
11172                    let fut = async move {
11173                        let method = AcceptTerminalProcessIdSvc(inner);
11174                        let codec = tonic_prost::ProstCodec::default();
11175                        let mut grpc = tonic::server::Grpc::new(codec)
11176                            .apply_compression_config(
11177                                accept_compression_encodings,
11178                                send_compression_encodings,
11179                            )
11180                            .apply_max_message_size_config(
11181                                max_decoding_message_size,
11182                                max_encoding_message_size,
11183                            );
11184                        let res = grpc.unary(method, req).await;
11185                        Ok(res)
11186                    };
11187                    Box::pin(fut)
11188                }
11189                "/Vine.CocoonService/AcceptTerminalProcessData" => {
11190                    #[allow(non_camel_case_types)]
11191                    struct AcceptTerminalProcessDataSvc<T: CocoonService>(pub Arc<T>);
11192                    impl<
11193                        T: CocoonService,
11194                    > tonic::server::UnaryService<super::TerminalDataNotification>
11195                    for AcceptTerminalProcessDataSvc<T> {
11196                        type Response = super::Empty;
11197                        type Future = BoxFuture<
11198                            tonic::Response<Self::Response>,
11199                            tonic::Status,
11200                        >;
11201                        fn call(
11202                            &mut self,
11203                            request: tonic::Request<super::TerminalDataNotification>,
11204                        ) -> Self::Future {
11205                            let inner = Arc::clone(&self.0);
11206                            let fut = async move {
11207                                <T as CocoonService>::accept_terminal_process_data(
11208                                        &inner,
11209                                        request,
11210                                    )
11211                                    .await
11212                            };
11213                            Box::pin(fut)
11214                        }
11215                    }
11216                    let accept_compression_encodings = self.accept_compression_encodings;
11217                    let send_compression_encodings = self.send_compression_encodings;
11218                    let max_decoding_message_size = self.max_decoding_message_size;
11219                    let max_encoding_message_size = self.max_encoding_message_size;
11220                    let inner = self.inner.clone();
11221                    let fut = async move {
11222                        let method = AcceptTerminalProcessDataSvc(inner);
11223                        let codec = tonic_prost::ProstCodec::default();
11224                        let mut grpc = tonic::server::Grpc::new(codec)
11225                            .apply_compression_config(
11226                                accept_compression_encodings,
11227                                send_compression_encodings,
11228                            )
11229                            .apply_max_message_size_config(
11230                                max_decoding_message_size,
11231                                max_encoding_message_size,
11232                            );
11233                        let res = grpc.unary(method, req).await;
11234                        Ok(res)
11235                    };
11236                    Box::pin(fut)
11237                }
11238                "/Vine.CocoonService/RegisterTreeViewProvider" => {
11239                    #[allow(non_camel_case_types)]
11240                    struct RegisterTreeViewProviderSvc<T: CocoonService>(pub Arc<T>);
11241                    impl<
11242                        T: CocoonService,
11243                    > tonic::server::UnaryService<super::RegisterTreeViewProviderRequest>
11244                    for RegisterTreeViewProviderSvc<T> {
11245                        type Response = super::Empty;
11246                        type Future = BoxFuture<
11247                            tonic::Response<Self::Response>,
11248                            tonic::Status,
11249                        >;
11250                        fn call(
11251                            &mut self,
11252                            request: tonic::Request<
11253                                super::RegisterTreeViewProviderRequest,
11254                            >,
11255                        ) -> Self::Future {
11256                            let inner = Arc::clone(&self.0);
11257                            let fut = async move {
11258                                <T as CocoonService>::register_tree_view_provider(
11259                                        &inner,
11260                                        request,
11261                                    )
11262                                    .await
11263                            };
11264                            Box::pin(fut)
11265                        }
11266                    }
11267                    let accept_compression_encodings = self.accept_compression_encodings;
11268                    let send_compression_encodings = self.send_compression_encodings;
11269                    let max_decoding_message_size = self.max_decoding_message_size;
11270                    let max_encoding_message_size = self.max_encoding_message_size;
11271                    let inner = self.inner.clone();
11272                    let fut = async move {
11273                        let method = RegisterTreeViewProviderSvc(inner);
11274                        let codec = tonic_prost::ProstCodec::default();
11275                        let mut grpc = tonic::server::Grpc::new(codec)
11276                            .apply_compression_config(
11277                                accept_compression_encodings,
11278                                send_compression_encodings,
11279                            )
11280                            .apply_max_message_size_config(
11281                                max_decoding_message_size,
11282                                max_encoding_message_size,
11283                            );
11284                        let res = grpc.unary(method, req).await;
11285                        Ok(res)
11286                    };
11287                    Box::pin(fut)
11288                }
11289                "/Vine.CocoonService/GetTreeChildren" => {
11290                    #[allow(non_camel_case_types)]
11291                    struct GetTreeChildrenSvc<T: CocoonService>(pub Arc<T>);
11292                    impl<
11293                        T: CocoonService,
11294                    > tonic::server::UnaryService<super::GetTreeChildrenRequest>
11295                    for GetTreeChildrenSvc<T> {
11296                        type Response = super::GetTreeChildrenResponse;
11297                        type Future = BoxFuture<
11298                            tonic::Response<Self::Response>,
11299                            tonic::Status,
11300                        >;
11301                        fn call(
11302                            &mut self,
11303                            request: tonic::Request<super::GetTreeChildrenRequest>,
11304                        ) -> Self::Future {
11305                            let inner = Arc::clone(&self.0);
11306                            let fut = async move {
11307                                <T as CocoonService>::get_tree_children(&inner, request)
11308                                    .await
11309                            };
11310                            Box::pin(fut)
11311                        }
11312                    }
11313                    let accept_compression_encodings = self.accept_compression_encodings;
11314                    let send_compression_encodings = self.send_compression_encodings;
11315                    let max_decoding_message_size = self.max_decoding_message_size;
11316                    let max_encoding_message_size = self.max_encoding_message_size;
11317                    let inner = self.inner.clone();
11318                    let fut = async move {
11319                        let method = GetTreeChildrenSvc(inner);
11320                        let codec = tonic_prost::ProstCodec::default();
11321                        let mut grpc = tonic::server::Grpc::new(codec)
11322                            .apply_compression_config(
11323                                accept_compression_encodings,
11324                                send_compression_encodings,
11325                            )
11326                            .apply_max_message_size_config(
11327                                max_decoding_message_size,
11328                                max_encoding_message_size,
11329                            );
11330                        let res = grpc.unary(method, req).await;
11331                        Ok(res)
11332                    };
11333                    Box::pin(fut)
11334                }
11335                "/Vine.CocoonService/RegisterSCMProvider" => {
11336                    #[allow(non_camel_case_types)]
11337                    struct RegisterSCMProviderSvc<T: CocoonService>(pub Arc<T>);
11338                    impl<
11339                        T: CocoonService,
11340                    > tonic::server::UnaryService<super::RegisterScmProviderRequest>
11341                    for RegisterSCMProviderSvc<T> {
11342                        type Response = super::Empty;
11343                        type Future = BoxFuture<
11344                            tonic::Response<Self::Response>,
11345                            tonic::Status,
11346                        >;
11347                        fn call(
11348                            &mut self,
11349                            request: tonic::Request<super::RegisterScmProviderRequest>,
11350                        ) -> Self::Future {
11351                            let inner = Arc::clone(&self.0);
11352                            let fut = async move {
11353                                <T as CocoonService>::register_scm_provider(&inner, request)
11354                                    .await
11355                            };
11356                            Box::pin(fut)
11357                        }
11358                    }
11359                    let accept_compression_encodings = self.accept_compression_encodings;
11360                    let send_compression_encodings = self.send_compression_encodings;
11361                    let max_decoding_message_size = self.max_decoding_message_size;
11362                    let max_encoding_message_size = self.max_encoding_message_size;
11363                    let inner = self.inner.clone();
11364                    let fut = async move {
11365                        let method = RegisterSCMProviderSvc(inner);
11366                        let codec = tonic_prost::ProstCodec::default();
11367                        let mut grpc = tonic::server::Grpc::new(codec)
11368                            .apply_compression_config(
11369                                accept_compression_encodings,
11370                                send_compression_encodings,
11371                            )
11372                            .apply_max_message_size_config(
11373                                max_decoding_message_size,
11374                                max_encoding_message_size,
11375                            );
11376                        let res = grpc.unary(method, req).await;
11377                        Ok(res)
11378                    };
11379                    Box::pin(fut)
11380                }
11381                "/Vine.CocoonService/UpdateSCMGroup" => {
11382                    #[allow(non_camel_case_types)]
11383                    struct UpdateSCMGroupSvc<T: CocoonService>(pub Arc<T>);
11384                    impl<
11385                        T: CocoonService,
11386                    > tonic::server::UnaryService<super::UpdateScmGroupRequest>
11387                    for UpdateSCMGroupSvc<T> {
11388                        type Response = super::Empty;
11389                        type Future = BoxFuture<
11390                            tonic::Response<Self::Response>,
11391                            tonic::Status,
11392                        >;
11393                        fn call(
11394                            &mut self,
11395                            request: tonic::Request<super::UpdateScmGroupRequest>,
11396                        ) -> Self::Future {
11397                            let inner = Arc::clone(&self.0);
11398                            let fut = async move {
11399                                <T as CocoonService>::update_scm_group(&inner, request)
11400                                    .await
11401                            };
11402                            Box::pin(fut)
11403                        }
11404                    }
11405                    let accept_compression_encodings = self.accept_compression_encodings;
11406                    let send_compression_encodings = self.send_compression_encodings;
11407                    let max_decoding_message_size = self.max_decoding_message_size;
11408                    let max_encoding_message_size = self.max_encoding_message_size;
11409                    let inner = self.inner.clone();
11410                    let fut = async move {
11411                        let method = UpdateSCMGroupSvc(inner);
11412                        let codec = tonic_prost::ProstCodec::default();
11413                        let mut grpc = tonic::server::Grpc::new(codec)
11414                            .apply_compression_config(
11415                                accept_compression_encodings,
11416                                send_compression_encodings,
11417                            )
11418                            .apply_max_message_size_config(
11419                                max_decoding_message_size,
11420                                max_encoding_message_size,
11421                            );
11422                        let res = grpc.unary(method, req).await;
11423                        Ok(res)
11424                    };
11425                    Box::pin(fut)
11426                }
11427                "/Vine.CocoonService/GitExec" => {
11428                    #[allow(non_camel_case_types)]
11429                    struct GitExecSvc<T: CocoonService>(pub Arc<T>);
11430                    impl<
11431                        T: CocoonService,
11432                    > tonic::server::UnaryService<super::GitExecRequest>
11433                    for GitExecSvc<T> {
11434                        type Response = super::GitExecResponse;
11435                        type Future = BoxFuture<
11436                            tonic::Response<Self::Response>,
11437                            tonic::Status,
11438                        >;
11439                        fn call(
11440                            &mut self,
11441                            request: tonic::Request<super::GitExecRequest>,
11442                        ) -> Self::Future {
11443                            let inner = Arc::clone(&self.0);
11444                            let fut = async move {
11445                                <T as CocoonService>::git_exec(&inner, request).await
11446                            };
11447                            Box::pin(fut)
11448                        }
11449                    }
11450                    let accept_compression_encodings = self.accept_compression_encodings;
11451                    let send_compression_encodings = self.send_compression_encodings;
11452                    let max_decoding_message_size = self.max_decoding_message_size;
11453                    let max_encoding_message_size = self.max_encoding_message_size;
11454                    let inner = self.inner.clone();
11455                    let fut = async move {
11456                        let method = GitExecSvc(inner);
11457                        let codec = tonic_prost::ProstCodec::default();
11458                        let mut grpc = tonic::server::Grpc::new(codec)
11459                            .apply_compression_config(
11460                                accept_compression_encodings,
11461                                send_compression_encodings,
11462                            )
11463                            .apply_max_message_size_config(
11464                                max_decoding_message_size,
11465                                max_encoding_message_size,
11466                            );
11467                        let res = grpc.unary(method, req).await;
11468                        Ok(res)
11469                    };
11470                    Box::pin(fut)
11471                }
11472                "/Vine.CocoonService/RegisterDebugAdapter" => {
11473                    #[allow(non_camel_case_types)]
11474                    struct RegisterDebugAdapterSvc<T: CocoonService>(pub Arc<T>);
11475                    impl<
11476                        T: CocoonService,
11477                    > tonic::server::UnaryService<super::RegisterDebugAdapterRequest>
11478                    for RegisterDebugAdapterSvc<T> {
11479                        type Response = super::Empty;
11480                        type Future = BoxFuture<
11481                            tonic::Response<Self::Response>,
11482                            tonic::Status,
11483                        >;
11484                        fn call(
11485                            &mut self,
11486                            request: tonic::Request<super::RegisterDebugAdapterRequest>,
11487                        ) -> Self::Future {
11488                            let inner = Arc::clone(&self.0);
11489                            let fut = async move {
11490                                <T as CocoonService>::register_debug_adapter(
11491                                        &inner,
11492                                        request,
11493                                    )
11494                                    .await
11495                            };
11496                            Box::pin(fut)
11497                        }
11498                    }
11499                    let accept_compression_encodings = self.accept_compression_encodings;
11500                    let send_compression_encodings = self.send_compression_encodings;
11501                    let max_decoding_message_size = self.max_decoding_message_size;
11502                    let max_encoding_message_size = self.max_encoding_message_size;
11503                    let inner = self.inner.clone();
11504                    let fut = async move {
11505                        let method = RegisterDebugAdapterSvc(inner);
11506                        let codec = tonic_prost::ProstCodec::default();
11507                        let mut grpc = tonic::server::Grpc::new(codec)
11508                            .apply_compression_config(
11509                                accept_compression_encodings,
11510                                send_compression_encodings,
11511                            )
11512                            .apply_max_message_size_config(
11513                                max_decoding_message_size,
11514                                max_encoding_message_size,
11515                            );
11516                        let res = grpc.unary(method, req).await;
11517                        Ok(res)
11518                    };
11519                    Box::pin(fut)
11520                }
11521                "/Vine.CocoonService/StartDebugging" => {
11522                    #[allow(non_camel_case_types)]
11523                    struct StartDebuggingSvc<T: CocoonService>(pub Arc<T>);
11524                    impl<
11525                        T: CocoonService,
11526                    > tonic::server::UnaryService<super::StartDebuggingRequest>
11527                    for StartDebuggingSvc<T> {
11528                        type Response = super::StartDebuggingResponse;
11529                        type Future = BoxFuture<
11530                            tonic::Response<Self::Response>,
11531                            tonic::Status,
11532                        >;
11533                        fn call(
11534                            &mut self,
11535                            request: tonic::Request<super::StartDebuggingRequest>,
11536                        ) -> Self::Future {
11537                            let inner = Arc::clone(&self.0);
11538                            let fut = async move {
11539                                <T as CocoonService>::start_debugging(&inner, request).await
11540                            };
11541                            Box::pin(fut)
11542                        }
11543                    }
11544                    let accept_compression_encodings = self.accept_compression_encodings;
11545                    let send_compression_encodings = self.send_compression_encodings;
11546                    let max_decoding_message_size = self.max_decoding_message_size;
11547                    let max_encoding_message_size = self.max_encoding_message_size;
11548                    let inner = self.inner.clone();
11549                    let fut = async move {
11550                        let method = StartDebuggingSvc(inner);
11551                        let codec = tonic_prost::ProstCodec::default();
11552                        let mut grpc = tonic::server::Grpc::new(codec)
11553                            .apply_compression_config(
11554                                accept_compression_encodings,
11555                                send_compression_encodings,
11556                            )
11557                            .apply_max_message_size_config(
11558                                max_decoding_message_size,
11559                                max_encoding_message_size,
11560                            );
11561                        let res = grpc.unary(method, req).await;
11562                        Ok(res)
11563                    };
11564                    Box::pin(fut)
11565                }
11566                "/Vine.CocoonService/ParticipateInSave" => {
11567                    #[allow(non_camel_case_types)]
11568                    struct ParticipateInSaveSvc<T: CocoonService>(pub Arc<T>);
11569                    impl<
11570                        T: CocoonService,
11571                    > tonic::server::UnaryService<super::ParticipateInSaveRequest>
11572                    for ParticipateInSaveSvc<T> {
11573                        type Response = super::ParticipateInSaveResponse;
11574                        type Future = BoxFuture<
11575                            tonic::Response<Self::Response>,
11576                            tonic::Status,
11577                        >;
11578                        fn call(
11579                            &mut self,
11580                            request: tonic::Request<super::ParticipateInSaveRequest>,
11581                        ) -> Self::Future {
11582                            let inner = Arc::clone(&self.0);
11583                            let fut = async move {
11584                                <T as CocoonService>::participate_in_save(&inner, request)
11585                                    .await
11586                            };
11587                            Box::pin(fut)
11588                        }
11589                    }
11590                    let accept_compression_encodings = self.accept_compression_encodings;
11591                    let send_compression_encodings = self.send_compression_encodings;
11592                    let max_decoding_message_size = self.max_decoding_message_size;
11593                    let max_encoding_message_size = self.max_encoding_message_size;
11594                    let inner = self.inner.clone();
11595                    let fut = async move {
11596                        let method = ParticipateInSaveSvc(inner);
11597                        let codec = tonic_prost::ProstCodec::default();
11598                        let mut grpc = tonic::server::Grpc::new(codec)
11599                            .apply_compression_config(
11600                                accept_compression_encodings,
11601                                send_compression_encodings,
11602                            )
11603                            .apply_max_message_size_config(
11604                                max_decoding_message_size,
11605                                max_encoding_message_size,
11606                            );
11607                        let res = grpc.unary(method, req).await;
11608                        Ok(res)
11609                    };
11610                    Box::pin(fut)
11611                }
11612                "/Vine.CocoonService/GetSecret" => {
11613                    #[allow(non_camel_case_types)]
11614                    struct GetSecretSvc<T: CocoonService>(pub Arc<T>);
11615                    impl<
11616                        T: CocoonService,
11617                    > tonic::server::UnaryService<super::GetSecretRequest>
11618                    for GetSecretSvc<T> {
11619                        type Response = super::GetSecretResponse;
11620                        type Future = BoxFuture<
11621                            tonic::Response<Self::Response>,
11622                            tonic::Status,
11623                        >;
11624                        fn call(
11625                            &mut self,
11626                            request: tonic::Request<super::GetSecretRequest>,
11627                        ) -> Self::Future {
11628                            let inner = Arc::clone(&self.0);
11629                            let fut = async move {
11630                                <T as CocoonService>::get_secret(&inner, request).await
11631                            };
11632                            Box::pin(fut)
11633                        }
11634                    }
11635                    let accept_compression_encodings = self.accept_compression_encodings;
11636                    let send_compression_encodings = self.send_compression_encodings;
11637                    let max_decoding_message_size = self.max_decoding_message_size;
11638                    let max_encoding_message_size = self.max_encoding_message_size;
11639                    let inner = self.inner.clone();
11640                    let fut = async move {
11641                        let method = GetSecretSvc(inner);
11642                        let codec = tonic_prost::ProstCodec::default();
11643                        let mut grpc = tonic::server::Grpc::new(codec)
11644                            .apply_compression_config(
11645                                accept_compression_encodings,
11646                                send_compression_encodings,
11647                            )
11648                            .apply_max_message_size_config(
11649                                max_decoding_message_size,
11650                                max_encoding_message_size,
11651                            );
11652                        let res = grpc.unary(method, req).await;
11653                        Ok(res)
11654                    };
11655                    Box::pin(fut)
11656                }
11657                "/Vine.CocoonService/StoreSecret" => {
11658                    #[allow(non_camel_case_types)]
11659                    struct StoreSecretSvc<T: CocoonService>(pub Arc<T>);
11660                    impl<
11661                        T: CocoonService,
11662                    > tonic::server::UnaryService<super::StoreSecretRequest>
11663                    for StoreSecretSvc<T> {
11664                        type Response = super::Empty;
11665                        type Future = BoxFuture<
11666                            tonic::Response<Self::Response>,
11667                            tonic::Status,
11668                        >;
11669                        fn call(
11670                            &mut self,
11671                            request: tonic::Request<super::StoreSecretRequest>,
11672                        ) -> Self::Future {
11673                            let inner = Arc::clone(&self.0);
11674                            let fut = async move {
11675                                <T as CocoonService>::store_secret(&inner, request).await
11676                            };
11677                            Box::pin(fut)
11678                        }
11679                    }
11680                    let accept_compression_encodings = self.accept_compression_encodings;
11681                    let send_compression_encodings = self.send_compression_encodings;
11682                    let max_decoding_message_size = self.max_decoding_message_size;
11683                    let max_encoding_message_size = self.max_encoding_message_size;
11684                    let inner = self.inner.clone();
11685                    let fut = async move {
11686                        let method = StoreSecretSvc(inner);
11687                        let codec = tonic_prost::ProstCodec::default();
11688                        let mut grpc = tonic::server::Grpc::new(codec)
11689                            .apply_compression_config(
11690                                accept_compression_encodings,
11691                                send_compression_encodings,
11692                            )
11693                            .apply_max_message_size_config(
11694                                max_decoding_message_size,
11695                                max_encoding_message_size,
11696                            );
11697                        let res = grpc.unary(method, req).await;
11698                        Ok(res)
11699                    };
11700                    Box::pin(fut)
11701                }
11702                "/Vine.CocoonService/DeleteSecret" => {
11703                    #[allow(non_camel_case_types)]
11704                    struct DeleteSecretSvc<T: CocoonService>(pub Arc<T>);
11705                    impl<
11706                        T: CocoonService,
11707                    > tonic::server::UnaryService<super::DeleteSecretRequest>
11708                    for DeleteSecretSvc<T> {
11709                        type Response = super::Empty;
11710                        type Future = BoxFuture<
11711                            tonic::Response<Self::Response>,
11712                            tonic::Status,
11713                        >;
11714                        fn call(
11715                            &mut self,
11716                            request: tonic::Request<super::DeleteSecretRequest>,
11717                        ) -> Self::Future {
11718                            let inner = Arc::clone(&self.0);
11719                            let fut = async move {
11720                                <T as CocoonService>::delete_secret(&inner, request).await
11721                            };
11722                            Box::pin(fut)
11723                        }
11724                    }
11725                    let accept_compression_encodings = self.accept_compression_encodings;
11726                    let send_compression_encodings = self.send_compression_encodings;
11727                    let max_decoding_message_size = self.max_decoding_message_size;
11728                    let max_encoding_message_size = self.max_encoding_message_size;
11729                    let inner = self.inner.clone();
11730                    let fut = async move {
11731                        let method = DeleteSecretSvc(inner);
11732                        let codec = tonic_prost::ProstCodec::default();
11733                        let mut grpc = tonic::server::Grpc::new(codec)
11734                            .apply_compression_config(
11735                                accept_compression_encodings,
11736                                send_compression_encodings,
11737                            )
11738                            .apply_max_message_size_config(
11739                                max_decoding_message_size,
11740                                max_encoding_message_size,
11741                            );
11742                        let res = grpc.unary(method, req).await;
11743                        Ok(res)
11744                    };
11745                    Box::pin(fut)
11746                }
11747                _ => {
11748                    Box::pin(async move {
11749                        let mut response = http::Response::new(
11750                            tonic::body::Body::default(),
11751                        );
11752                        let headers = response.headers_mut();
11753                        headers
11754                            .insert(
11755                                tonic::Status::GRPC_STATUS,
11756                                (tonic::Code::Unimplemented as i32).into(),
11757                            );
11758                        headers
11759                            .insert(
11760                                http::header::CONTENT_TYPE,
11761                                tonic::metadata::GRPC_CONTENT_TYPE,
11762                            );
11763                        Ok(response)
11764                    })
11765                }
11766            }
11767        }
11768    }
11769    impl<T> Clone for CocoonServiceServer<T> {
11770        fn clone(&self) -> Self {
11771            let inner = self.inner.clone();
11772            Self {
11773                inner,
11774                accept_compression_encodings: self.accept_compression_encodings,
11775                send_compression_encodings: self.send_compression_encodings,
11776                max_decoding_message_size: self.max_decoding_message_size,
11777                max_encoding_message_size: self.max_encoding_message_size,
11778            }
11779        }
11780    }
11781    /// Generated gRPC service name
11782    pub const SERVICE_NAME: &str = "Vine.CocoonService";
11783    impl<T> tonic::server::NamedService for CocoonServiceServer<T> {
11784        const NAME: &'static str = SERVICE_NAME;
11785    }
11786}