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/// A generic request message containing a method name and serialized parameters.
6#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7pub struct GenericRequest {
8    #[prost(uint64, tag = "1")]
9    pub request_identifier: u64,
10    #[prost(string, tag = "2")]
11    pub method: ::prost::alloc::string::String,
12    /// Parameters are expected to be a JSON-serialized byte array.
13    #[prost(bytes = "vec", tag = "3")]
14    pub parameter: ::prost::alloc::vec::Vec<u8>,
15}
16/// A generic response message containing the result or an error.
17#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
18pub struct GenericResponse {
19    #[prost(uint64, tag = "1")]
20    pub request_identifier: u64,
21    /// The successful result, JSON-serialized.
22    #[prost(bytes = "vec", tag = "2")]
23    pub result: ::prost::alloc::vec::Vec<u8>,
24    #[prost(message, optional, tag = "3")]
25    pub error: ::core::option::Option<RpcError>,
26}
27/// A generic notification message, which is fire-and-forget and does not have an ID.
28#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
29pub struct GenericNotification {
30    #[prost(string, tag = "1")]
31    pub method: ::prost::alloc::string::String,
32    /// Parameters are expected to be a JSON-serialized byte array.
33    #[prost(bytes = "vec", tag = "2")]
34    pub parameter: ::prost::alloc::vec::Vec<u8>,
35}
36/// A structured error payload, compliant with JSON-RPC error objects.
37#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
38pub struct RpcError {
39    #[prost(int32, tag = "1")]
40    pub code: i32,
41    #[prost(string, tag = "2")]
42    pub message: ::prost::alloc::string::String,
43    /// Optional, additional error data, JSON-serialized.
44    #[prost(bytes = "vec", tag = "3")]
45    pub data: ::prost::alloc::vec::Vec<u8>,
46}
47/// A message to cancel a specific, ongoing operation.
48#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
49pub struct CancelOperationRequest {
50    #[prost(uint64, tag = "1")]
51    pub request_identifier_to_cancel: u64,
52}
53/// A generic data payload, currently unused but available for future extensions.
54#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
55pub struct RpcDataPayload {
56    #[prost(bytes = "vec", tag = "1")]
57    pub data: ::prost::alloc::vec::Vec<u8>,
58}
59/// A position in a text document, expressed as zero-based line and character offset.
60#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
61pub struct Position {
62    #[prost(uint32, tag = "1")]
63    pub line: u32,
64    #[prost(uint32, tag = "2")]
65    pub character: u32,
66}
67/// A range in a text document, expressed as start and end positions.
68#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
69pub struct Range {
70    #[prost(message, optional, tag = "1")]
71    pub start: ::core::option::Option<Position>,
72    #[prost(message, optional, tag = "2")]
73    pub end: ::core::option::Option<Position>,
74}
75/// A Uniform Resource Identifier (URI).
76#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
77pub struct Uri {
78    #[prost(string, tag = "1")]
79    pub value: ::prost::alloc::string::String,
80}
81/// A command argument, which can be one of several types.
82#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
83pub struct Argument {
84    #[prost(oneof = "argument::Value", tags = "1, 2, 3, 4")]
85    pub value: ::core::option::Option<argument::Value>,
86}
87/// Nested message and enum types in `Argument`.
88pub mod argument {
89    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
90    pub enum Value {
91        #[prost(string, tag = "1")]
92        StringValue(::prost::alloc::string::String),
93        #[prost(int32, tag = "2")]
94        IntValue(i32),
95        #[prost(bool, tag = "3")]
96        BoolValue(bool),
97        #[prost(bytes, tag = "4")]
98        BytesValue(::prost::alloc::vec::Vec<u8>),
99    }
100}
101/// A workspace folder.
102#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
103pub struct WorkspaceFolder {
104    #[prost(message, optional, tag = "1")]
105    pub uri: ::core::option::Option<Uri>,
106    #[prost(string, tag = "2")]
107    pub name: ::prost::alloc::string::String,
108}
109/// Request to initialize the extension host.
110#[derive(Clone, PartialEq, ::prost::Message)]
111pub struct InitExtensionHostRequest {
112    #[prost(message, repeated, tag = "1")]
113    pub workspace_folders: ::prost::alloc::vec::Vec<WorkspaceFolder>,
114    #[prost(map = "string, string", tag = "2")]
115    pub configuration: ::std::collections::HashMap<
116        ::prost::alloc::string::String,
117        ::prost::alloc::string::String,
118    >,
119    #[prost(string, tag = "3")]
120    pub workspace_id: ::prost::alloc::string::String,
121}
122/// Request to register a command.
123#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
124pub struct RegisterCommandRequest {
125    #[prost(string, tag = "1")]
126    pub command_id: ::prost::alloc::string::String,
127    #[prost(string, tag = "2")]
128    pub extension_id: ::prost::alloc::string::String,
129    #[prost(string, tag = "3")]
130    pub title: ::prost::alloc::string::String,
131}
132/// Request to execute a command.
133#[derive(Clone, PartialEq, ::prost::Message)]
134pub struct ExecuteCommandRequest {
135    #[prost(string, tag = "1")]
136    pub command_id: ::prost::alloc::string::String,
137    #[prost(message, repeated, tag = "2")]
138    pub arguments: ::prost::alloc::vec::Vec<Argument>,
139}
140/// Response from command execution.
141#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
142pub struct ExecuteCommandResponse {
143    #[prost(oneof = "execute_command_response::Result", tags = "1, 2")]
144    pub result: ::core::option::Option<execute_command_response::Result>,
145}
146/// Nested message and enum types in `ExecuteCommandResponse`.
147pub mod execute_command_response {
148    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
149    pub enum Result {
150        #[prost(bytes, tag = "1")]
151        Value(::prost::alloc::vec::Vec<u8>),
152        #[prost(message, tag = "2")]
153        Error(super::RpcError),
154    }
155}
156/// Request to unregister a command.
157#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
158pub struct UnregisterCommandRequest {
159    #[prost(string, tag = "1")]
160    pub command_id: ::prost::alloc::string::String,
161}
162/// Request to register a provider.
163#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
164pub struct RegisterProviderRequest {
165    #[prost(string, tag = "1")]
166    pub language_selector: ::prost::alloc::string::String,
167    #[prost(uint32, tag = "2")]
168    pub handle: u32,
169    #[prost(string, tag = "3")]
170    pub extension_id: ::prost::alloc::string::String,
171}
172/// Request for hover information.
173#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
174pub struct ProvideHoverRequest {
175    #[prost(message, optional, tag = "1")]
176    pub uri: ::core::option::Option<Uri>,
177    #[prost(message, optional, tag = "2")]
178    pub position: ::core::option::Option<Position>,
179    #[prost(uint32, tag = "3")]
180    pub provider_handle: u32,
181}
182/// Response with hover information.
183#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
184pub struct ProvideHoverResponse {
185    #[prost(string, tag = "1")]
186    pub markdown: ::prost::alloc::string::String,
187    #[prost(message, optional, tag = "2")]
188    pub range: ::core::option::Option<Range>,
189}
190/// Request for completion items.
191#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
192pub struct ProvideCompletionItemsRequest {
193    #[prost(message, optional, tag = "1")]
194    pub uri: ::core::option::Option<Uri>,
195    #[prost(message, optional, tag = "2")]
196    pub position: ::core::option::Option<Position>,
197    #[prost(uint32, tag = "3")]
198    pub provider_handle: u32,
199    #[prost(string, tag = "4")]
200    pub trigger_character: ::prost::alloc::string::String,
201}
202/// Response with completion items.
203#[derive(Clone, PartialEq, ::prost::Message)]
204pub struct ProvideCompletionItemsResponse {
205    #[prost(message, repeated, tag = "1")]
206    pub items: ::prost::alloc::vec::Vec<CompletionItem>,
207}
208#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
209pub struct CompletionItem {
210    #[prost(string, tag = "1")]
211    pub label: ::prost::alloc::string::String,
212    #[prost(string, tag = "2")]
213    pub kind: ::prost::alloc::string::String,
214    #[prost(string, tag = "3")]
215    pub detail: ::prost::alloc::string::String,
216    #[prost(bytes = "vec", tag = "4")]
217    pub documentation: ::prost::alloc::vec::Vec<u8>,
218    #[prost(string, tag = "5")]
219    pub insert_text: ::prost::alloc::string::String,
220}
221/// Request for definition location.
222#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
223pub struct ProvideDefinitionRequest {
224    #[prost(message, optional, tag = "1")]
225    pub uri: ::core::option::Option<Uri>,
226    #[prost(message, optional, tag = "2")]
227    pub position: ::core::option::Option<Position>,
228    #[prost(uint32, tag = "3")]
229    pub provider_handle: u32,
230}
231/// Response with definition location.
232#[derive(Clone, PartialEq, ::prost::Message)]
233pub struct ProvideDefinitionResponse {
234    #[prost(message, repeated, tag = "1")]
235    pub locations: ::prost::alloc::vec::Vec<Location>,
236}
237#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
238pub struct Location {
239    #[prost(message, optional, tag = "1")]
240    pub uri: ::core::option::Option<Uri>,
241    #[prost(message, optional, tag = "2")]
242    pub range: ::core::option::Option<Range>,
243}
244/// Request for references.
245#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
246pub struct ProvideReferencesRequest {
247    #[prost(message, optional, tag = "1")]
248    pub uri: ::core::option::Option<Uri>,
249    #[prost(message, optional, tag = "2")]
250    pub position: ::core::option::Option<Position>,
251    #[prost(uint32, tag = "3")]
252    pub provider_handle: u32,
253}
254/// Response with references.
255#[derive(Clone, PartialEq, ::prost::Message)]
256pub struct ProvideReferencesResponse {
257    #[prost(message, repeated, tag = "1")]
258    pub locations: ::prost::alloc::vec::Vec<Location>,
259}
260/// Request for code actions.
261#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
262pub struct ProvideCodeActionsRequest {
263    #[prost(message, optional, tag = "1")]
264    pub uri: ::core::option::Option<Uri>,
265    #[prost(message, optional, tag = "2")]
266    pub range: ::core::option::Option<Range>,
267    #[prost(uint32, tag = "3")]
268    pub provider_handle: u32,
269}
270/// Response with code actions.
271#[derive(Clone, PartialEq, ::prost::Message)]
272pub struct ProvideCodeActionsResponse {
273    #[prost(message, repeated, tag = "1")]
274    pub actions: ::prost::alloc::vec::Vec<CodeAction>,
275}
276#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
277pub struct CodeAction {
278    #[prost(string, tag = "1")]
279    pub title: ::prost::alloc::string::String,
280    #[prost(string, tag = "2")]
281    pub kind: ::prost::alloc::string::String,
282    #[prost(bool, tag = "3")]
283    pub is_preferred: bool,
284}
285/// Request to show a text document.
286#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
287pub struct ShowTextDocumentRequest {
288    #[prost(message, optional, tag = "1")]
289    pub uri: ::core::option::Option<Uri>,
290    #[prost(enumeration = "ViewColumn", tag = "2")]
291    pub view_column: i32,
292    #[prost(bool, tag = "3")]
293    pub preserve_focus: bool,
294}
295/// Response for showing a text document.
296#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
297pub struct ShowTextDocumentResponse {
298    #[prost(bool, tag = "1")]
299    pub success: bool,
300}
301/// Request to show a message.
302#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
303pub struct ShowMessageRequest {
304    #[prost(string, tag = "1")]
305    pub message: ::prost::alloc::string::String,
306}
307/// Response for showing a message.
308#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
309pub struct ShowMessageResponse {
310    #[prost(bool, tag = "1")]
311    pub success: bool,
312}
313/// Request to create a status bar item.
314#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
315pub struct CreateStatusBarItemRequest {
316    #[prost(string, tag = "1")]
317    pub id: ::prost::alloc::string::String,
318    #[prost(string, tag = "2")]
319    pub text: ::prost::alloc::string::String,
320    #[prost(string, tag = "3")]
321    pub tooltip: ::prost::alloc::string::String,
322}
323/// Response for creating a status bar item.
324#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
325pub struct CreateStatusBarItemResponse {
326    #[prost(string, tag = "1")]
327    pub item_id: ::prost::alloc::string::String,
328}
329/// Request to set status bar text.
330#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
331pub struct SetStatusBarTextRequest {
332    #[prost(string, tag = "1")]
333    pub item_id: ::prost::alloc::string::String,
334    #[prost(string, tag = "2")]
335    pub text: ::prost::alloc::string::String,
336}
337/// Request to create a webview panel.
338#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
339pub struct CreateWebviewPanelRequest {
340    #[prost(string, tag = "1")]
341    pub view_type: ::prost::alloc::string::String,
342    #[prost(string, tag = "2")]
343    pub title: ::prost::alloc::string::String,
344    #[prost(string, tag = "3")]
345    pub icon_path: ::prost::alloc::string::String,
346    #[prost(enumeration = "ViewColumn", tag = "4")]
347    pub view_column: i32,
348    #[prost(bool, tag = "5")]
349    pub preserve_focus: bool,
350    #[prost(bool, tag = "6")]
351    pub enable_find_widget: bool,
352    #[prost(bool, tag = "7")]
353    pub retain_context_when_hidden: bool,
354    #[prost(string, repeated, tag = "8")]
355    pub local_resource_roots: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
356}
357/// Response for creating a webview panel.
358#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
359pub struct CreateWebviewPanelResponse {
360    #[prost(uint32, tag = "1")]
361    pub handle: u32,
362}
363/// Request to set webview HTML.
364#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
365pub struct SetWebviewHtmlRequest {
366    #[prost(uint32, tag = "1")]
367    pub handle: u32,
368    #[prost(string, tag = "2")]
369    pub html: ::prost::alloc::string::String,
370}
371/// Request for webview message.
372#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
373pub struct OnDidReceiveMessageRequest {
374    #[prost(uint32, tag = "1")]
375    pub handle: u32,
376    #[prost(oneof = "on_did_receive_message_request::Message", tags = "2, 3")]
377    pub message: ::core::option::Option<on_did_receive_message_request::Message>,
378}
379/// Nested message and enum types in `OnDidReceiveMessageRequest`.
380pub mod on_did_receive_message_request {
381    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
382    pub enum Message {
383        #[prost(string, tag = "2")]
384        StringMessage(::prost::alloc::string::String),
385        #[prost(bytes, tag = "3")]
386        BytesMessage(::prost::alloc::vec::Vec<u8>),
387    }
388}
389/// Request to read a file.
390#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
391pub struct ReadFileRequest {
392    #[prost(message, optional, tag = "1")]
393    pub uri: ::core::option::Option<Uri>,
394}
395/// Response with file contents.
396#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
397pub struct ReadFileResponse {
398    #[prost(bytes = "vec", tag = "1")]
399    pub content: ::prost::alloc::vec::Vec<u8>,
400    #[prost(string, tag = "2")]
401    pub encoding: ::prost::alloc::string::String,
402}
403/// Request to write a file.
404#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
405pub struct WriteFileRequest {
406    #[prost(message, optional, tag = "1")]
407    pub uri: ::core::option::Option<Uri>,
408    #[prost(bytes = "vec", tag = "2")]
409    pub content: ::prost::alloc::vec::Vec<u8>,
410    #[prost(string, tag = "3")]
411    pub encoding: ::prost::alloc::string::String,
412}
413/// Request for file metadata.
414#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
415pub struct StatRequest {
416    #[prost(message, optional, tag = "1")]
417    pub uri: ::core::option::Option<Uri>,
418}
419/// Response with file metadata.
420#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
421pub struct StatResponse {
422    #[prost(bool, tag = "1")]
423    pub is_file: bool,
424    #[prost(bool, tag = "2")]
425    pub is_directory: bool,
426    #[prost(uint64, tag = "3")]
427    pub size: u64,
428    #[prost(uint64, tag = "4")]
429    pub mtime: u64,
430}
431/// Request to read directory contents.
432#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
433pub struct ReaddirRequest {
434    #[prost(message, optional, tag = "1")]
435    pub uri: ::core::option::Option<Uri>,
436}
437/// Response with directory contents.
438#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
439pub struct ReaddirResponse {
440    #[prost(string, repeated, tag = "1")]
441    pub entries: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
442}
443/// Request to watch a file.
444#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
445pub struct WatchFileRequest {
446    #[prost(message, optional, tag = "1")]
447    pub uri: ::core::option::Option<Uri>,
448}
449/// Request to find files.
450#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
451pub struct FindFilesRequest {
452    #[prost(string, tag = "1")]
453    pub pattern: ::prost::alloc::string::String,
454    #[prost(bool, tag = "2")]
455    pub include: bool,
456}
457/// Response with found files.
458#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
459pub struct FindFilesResponse {
460    #[prost(string, repeated, tag = "1")]
461    pub uris: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
462}
463/// Request to find text in files.
464#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
465pub struct FindTextInFilesRequest {
466    #[prost(string, tag = "1")]
467    pub pattern: ::prost::alloc::string::String,
468    #[prost(string, repeated, tag = "2")]
469    pub include: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
470    #[prost(string, repeated, tag = "3")]
471    pub exclude: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
472}
473/// Response with text matches.
474#[derive(Clone, PartialEq, ::prost::Message)]
475pub struct FindTextInFilesResponse {
476    #[prost(message, repeated, tag = "1")]
477    pub matches: ::prost::alloc::vec::Vec<TextMatch>,
478}
479#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
480pub struct TextMatch {
481    #[prost(message, optional, tag = "1")]
482    pub uri: ::core::option::Option<Uri>,
483    #[prost(message, optional, tag = "2")]
484    pub range: ::core::option::Option<Range>,
485    #[prost(string, tag = "3")]
486    pub preview: ::prost::alloc::string::String,
487}
488/// Request to open a document.
489#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
490pub struct OpenDocumentRequest {
491    #[prost(message, optional, tag = "1")]
492    pub uri: ::core::option::Option<Uri>,
493    #[prost(enumeration = "ViewColumn", tag = "2")]
494    pub view_column: i32,
495}
496/// Response for opening a document.
497#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
498pub struct OpenDocumentResponse {
499    #[prost(bool, tag = "1")]
500    pub success: bool,
501}
502/// Request to save all documents.
503#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
504pub struct SaveAllRequest {
505    #[prost(bool, tag = "1")]
506    pub include_untitled: bool,
507}
508/// Response for saving all documents.
509#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
510pub struct SaveAllResponse {
511    #[prost(bool, tag = "1")]
512    pub success: bool,
513}
514/// Request to apply an edit.
515#[derive(Clone, PartialEq, ::prost::Message)]
516pub struct ApplyEditRequest {
517    #[prost(message, optional, tag = "1")]
518    pub uri: ::core::option::Option<Uri>,
519    #[prost(message, repeated, tag = "2")]
520    pub edits: ::prost::alloc::vec::Vec<TextEdit>,
521}
522#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
523pub struct TextEdit {
524    #[prost(message, optional, tag = "1")]
525    pub range: ::core::option::Option<Range>,
526    #[prost(string, tag = "2")]
527    pub new_text: ::prost::alloc::string::String,
528}
529/// Response for applying an edit.
530#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
531pub struct ApplyEditResponse {
532    #[prost(bool, tag = "1")]
533    pub success: bool,
534}
535/// Request to update configuration.
536#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
537pub struct UpdateConfigurationRequest {
538    #[prost(string, repeated, tag = "1")]
539    pub changed_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
540}
541/// Request to update workspace folders.
542#[derive(Clone, PartialEq, ::prost::Message)]
543pub struct UpdateWorkspaceFoldersRequest {
544    #[prost(message, repeated, tag = "1")]
545    pub additions: ::prost::alloc::vec::Vec<WorkspaceFolder>,
546    #[prost(message, repeated, tag = "2")]
547    pub removals: ::prost::alloc::vec::Vec<WorkspaceFolder>,
548}
549/// Request to open a terminal.
550#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
551pub struct OpenTerminalRequest {
552    #[prost(string, tag = "1")]
553    pub name: ::prost::alloc::string::String,
554    #[prost(string, tag = "2")]
555    pub shell_path: ::prost::alloc::string::String,
556    #[prost(string, repeated, tag = "3")]
557    pub shell_args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
558    #[prost(string, tag = "4")]
559    pub cwd: ::prost::alloc::string::String,
560}
561/// Request for terminal input.
562#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
563pub struct TerminalInputRequest {
564    #[prost(uint32, tag = "1")]
565    pub terminal_id: u32,
566    #[prost(bytes = "vec", tag = "2")]
567    pub data: ::prost::alloc::vec::Vec<u8>,
568}
569/// Request to close a terminal.
570#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
571pub struct CloseTerminalRequest {
572    #[prost(uint32, tag = "1")]
573    pub terminal_id: u32,
574}
575/// Notification that a terminal was opened.
576#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
577pub struct TerminalOpenedNotification {
578    #[prost(uint32, tag = "1")]
579    pub terminal_id: u32,
580    #[prost(string, tag = "2")]
581    pub name: ::prost::alloc::string::String,
582}
583/// Notification that a terminal was closed.
584#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
585pub struct TerminalClosedNotification {
586    #[prost(uint32, tag = "1")]
587    pub terminal_id: u32,
588}
589/// Notification of terminal process ID.
590#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
591pub struct TerminalProcessIdNotification {
592    #[prost(uint32, tag = "1")]
593    pub terminal_id: u32,
594    #[prost(uint32, tag = "2")]
595    pub process_id: u32,
596}
597/// Notification of terminal output.
598#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
599pub struct TerminalDataNotification {
600    #[prost(uint32, tag = "1")]
601    pub terminal_id: u32,
602    #[prost(bytes = "vec", tag = "2")]
603    pub data: ::prost::alloc::vec::Vec<u8>,
604}
605/// Request to register a tree view provider.
606#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
607pub struct RegisterTreeViewProviderRequest {
608    #[prost(string, tag = "1")]
609    pub view_id: ::prost::alloc::string::String,
610    #[prost(string, tag = "2")]
611    pub extension_id: ::prost::alloc::string::String,
612}
613/// Request for tree children.
614#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
615pub struct GetTreeChildrenRequest {
616    #[prost(string, tag = "1")]
617    pub view_id: ::prost::alloc::string::String,
618    #[prost(string, tag = "2")]
619    pub tree_item_handle: ::prost::alloc::string::String,
620}
621/// Response with tree children.
622#[derive(Clone, PartialEq, ::prost::Message)]
623pub struct GetTreeChildrenResponse {
624    #[prost(message, repeated, tag = "1")]
625    pub items: ::prost::alloc::vec::Vec<TreeItem>,
626}
627#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
628pub struct TreeItem {
629    #[prost(string, tag = "1")]
630    pub handle: ::prost::alloc::string::String,
631    #[prost(string, tag = "2")]
632    pub label: ::prost::alloc::string::String,
633    #[prost(bool, tag = "3")]
634    pub is_collapsed: bool,
635    #[prost(string, tag = "4")]
636    pub icon: ::prost::alloc::string::String,
637}
638/// Request to register an SCM provider.
639#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
640pub struct RegisterScmProviderRequest {
641    #[prost(string, tag = "1")]
642    pub scm_id: ::prost::alloc::string::String,
643    #[prost(string, tag = "2")]
644    pub extension_id: ::prost::alloc::string::String,
645}
646/// Request to update SCM group.
647#[derive(Clone, PartialEq, ::prost::Message)]
648pub struct UpdateScmGroupRequest {
649    #[prost(string, tag = "1")]
650    pub provider_id: ::prost::alloc::string::String,
651    #[prost(string, tag = "2")]
652    pub group_id: ::prost::alloc::string::String,
653    #[prost(message, repeated, tag = "3")]
654    pub resource_states: ::prost::alloc::vec::Vec<SourceControlResourceState>,
655}
656#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
657pub struct SourceControlResourceState {
658    #[prost(message, optional, tag = "1")]
659    pub uri: ::core::option::Option<Uri>,
660    #[prost(string, tag = "2")]
661    pub state: ::prost::alloc::string::String,
662    #[prost(string, tag = "3")]
663    pub decorations: ::prost::alloc::string::String,
664}
665/// Request to execute a git command.
666#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
667pub struct GitExecRequest {
668    #[prost(string, tag = "1")]
669    pub repository_path: ::prost::alloc::string::String,
670    #[prost(string, repeated, tag = "2")]
671    pub args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
672}
673/// Response from git execution.
674#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
675pub struct GitExecResponse {
676    #[prost(string, repeated, tag = "1")]
677    pub output: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
678    #[prost(int32, tag = "2")]
679    pub exit_code: i32,
680}
681/// Request to register a debug adapter.
682#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
683pub struct RegisterDebugAdapterRequest {
684    #[prost(string, tag = "1")]
685    pub debug_type: ::prost::alloc::string::String,
686    #[prost(string, tag = "2")]
687    pub extension_id: ::prost::alloc::string::String,
688}
689#[derive(Clone, PartialEq, ::prost::Message)]
690pub struct DebugConfiguration {
691    #[prost(string, tag = "1")]
692    pub r#type: ::prost::alloc::string::String,
693    #[prost(string, tag = "2")]
694    pub name: ::prost::alloc::string::String,
695    #[prost(string, tag = "3")]
696    pub request: ::prost::alloc::string::String,
697    #[prost(map = "string, string", tag = "4")]
698    pub options: ::std::collections::HashMap<
699        ::prost::alloc::string::String,
700        ::prost::alloc::string::String,
701    >,
702}
703/// Request to start debugging.
704#[derive(Clone, PartialEq, ::prost::Message)]
705pub struct StartDebuggingRequest {
706    #[prost(string, tag = "1")]
707    pub debug_type: ::prost::alloc::string::String,
708    #[prost(message, optional, tag = "2")]
709    pub configuration: ::core::option::Option<DebugConfiguration>,
710}
711/// Response for starting debugging.
712#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
713pub struct StartDebuggingResponse {
714    #[prost(bool, tag = "1")]
715    pub success: bool,
716}
717/// Request to participate in save.
718#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
719pub struct ParticipateInSaveRequest {
720    #[prost(message, optional, tag = "1")]
721    pub uri: ::core::option::Option<Uri>,
722    #[prost(enumeration = "TextDocumentSaveReason", tag = "2")]
723    pub reason: i32,
724}
725#[derive(Clone, PartialEq, ::prost::Message)]
726pub struct TextEditForSave {
727    #[prost(message, optional, tag = "1")]
728    pub uri: ::core::option::Option<Uri>,
729    #[prost(message, repeated, tag = "2")]
730    pub edits: ::prost::alloc::vec::Vec<TextEdit>,
731}
732/// Response for participating in save.
733#[derive(Clone, PartialEq, ::prost::Message)]
734pub struct ParticipateInSaveResponse {
735    #[prost(message, repeated, tag = "1")]
736    pub edits: ::prost::alloc::vec::Vec<TextEditForSave>,
737}
738/// Request to get a secret.
739#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
740pub struct GetSecretRequest {
741    #[prost(string, tag = "1")]
742    pub key: ::prost::alloc::string::String,
743}
744/// Response with secret value.
745#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
746pub struct GetSecretResponse {
747    #[prost(string, tag = "1")]
748    pub value: ::prost::alloc::string::String,
749}
750/// Request to store a secret.
751#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
752pub struct StoreSecretRequest {
753    #[prost(string, tag = "1")]
754    pub key: ::prost::alloc::string::String,
755    #[prost(string, tag = "2")]
756    pub value: ::prost::alloc::string::String,
757}
758/// Request to delete a secret.
759#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
760pub struct DeleteSecretRequest {
761    #[prost(string, tag = "1")]
762    pub key: ::prost::alloc::string::String,
763}
764/// A view column (editor location).
765#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
766#[repr(i32)]
767pub enum ViewColumn {
768    Undefined = 0,
769    Active = 1,
770    One = 2,
771    Two = 3,
772    Three = 4,
773    Four = 5,
774    Five = 6,
775    Six = 7,
776    Seven = 8,
777    Eight = 9,
778    Nine = 10,
779}
780impl ViewColumn {
781    /// String value of the enum field names used in the ProtoBuf definition.
782    ///
783    /// The values are not transformed in any way and thus are considered stable
784    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
785    pub fn as_str_name(&self) -> &'static str {
786        match self {
787            Self::Undefined => "VIEW_COLUMN_UNDEFINED",
788            Self::Active => "VIEW_COLUMN_ACTIVE",
789            Self::One => "VIEW_COLUMN_ONE",
790            Self::Two => "VIEW_COLUMN_TWO",
791            Self::Three => "VIEW_COLUMN_THREE",
792            Self::Four => "VIEW_COLUMN_FOUR",
793            Self::Five => "VIEW_COLUMN_FIVE",
794            Self::Six => "VIEW_COLUMN_SIX",
795            Self::Seven => "VIEW_COLUMN_SEVEN",
796            Self::Eight => "VIEW_COLUMN_EIGHT",
797            Self::Nine => "VIEW_COLUMN_NINE",
798        }
799    }
800    /// Creates an enum from field names used in the ProtoBuf definition.
801    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
802        match value {
803            "VIEW_COLUMN_UNDEFINED" => Some(Self::Undefined),
804            "VIEW_COLUMN_ACTIVE" => Some(Self::Active),
805            "VIEW_COLUMN_ONE" => Some(Self::One),
806            "VIEW_COLUMN_TWO" => Some(Self::Two),
807            "VIEW_COLUMN_THREE" => Some(Self::Three),
808            "VIEW_COLUMN_FOUR" => Some(Self::Four),
809            "VIEW_COLUMN_FIVE" => Some(Self::Five),
810            "VIEW_COLUMN_SIX" => Some(Self::Six),
811            "VIEW_COLUMN_SEVEN" => Some(Self::Seven),
812            "VIEW_COLUMN_EIGHT" => Some(Self::Eight),
813            "VIEW_COLUMN_NINE" => Some(Self::Nine),
814            _ => None,
815        }
816    }
817}
818/// Text document save reason.
819#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
820#[repr(i32)]
821pub enum TextDocumentSaveReason {
822    SaveReasonManual = 0,
823    SaveReasonAfterDelay = 1,
824    SaveReasonFocusOut = 2,
825}
826impl TextDocumentSaveReason {
827    /// String value of the enum field names used in the ProtoBuf definition.
828    ///
829    /// The values are not transformed in any way and thus are considered stable
830    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
831    pub fn as_str_name(&self) -> &'static str {
832        match self {
833            Self::SaveReasonManual => "SAVE_REASON_MANUAL",
834            Self::SaveReasonAfterDelay => "SAVE_REASON_AFTER_DELAY",
835            Self::SaveReasonFocusOut => "SAVE_REASON_FOCUS_OUT",
836        }
837    }
838    /// Creates an enum from field names used in the ProtoBuf definition.
839    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
840        match value {
841            "SAVE_REASON_MANUAL" => Some(Self::SaveReasonManual),
842            "SAVE_REASON_AFTER_DELAY" => Some(Self::SaveReasonAfterDelay),
843            "SAVE_REASON_FOCUS_OUT" => Some(Self::SaveReasonFocusOut),
844            _ => None,
845        }
846    }
847}
848/// Generated client implementations.
849pub mod mountain_service_client {
850    #![allow(
851        unused_variables,
852        dead_code,
853        missing_docs,
854        clippy::wildcard_imports,
855        clippy::let_unit_value,
856    )]
857    use tonic::codegen::*;
858    use tonic::codegen::http::Uri;
859    /// Service running on the Mountain host, listening for requests from Cocoon.
860    #[derive(Debug, Clone)]
861    pub struct MountainServiceClient<T> {
862        inner: tonic::client::Grpc<T>,
863    }
864    impl MountainServiceClient<tonic::transport::Channel> {
865        /// Attempt to create a new client by connecting to a given endpoint.
866        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
867        where
868            D: TryInto<tonic::transport::Endpoint>,
869            D::Error: Into<StdError>,
870        {
871            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
872            Ok(Self::new(conn))
873        }
874    }
875    impl<T> MountainServiceClient<T>
876    where
877        T: tonic::client::GrpcService<tonic::body::Body>,
878        T::Error: Into<StdError>,
879        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
880        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
881    {
882        pub fn new(inner: T) -> Self {
883            let inner = tonic::client::Grpc::new(inner);
884            Self { inner }
885        }
886        pub fn with_origin(inner: T, origin: Uri) -> Self {
887            let inner = tonic::client::Grpc::with_origin(inner, origin);
888            Self { inner }
889        }
890        pub fn with_interceptor<F>(
891            inner: T,
892            interceptor: F,
893        ) -> MountainServiceClient<InterceptedService<T, F>>
894        where
895            F: tonic::service::Interceptor,
896            T::ResponseBody: Default,
897            T: tonic::codegen::Service<
898                http::Request<tonic::body::Body>,
899                Response = http::Response<
900                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
901                >,
902            >,
903            <T as tonic::codegen::Service<
904                http::Request<tonic::body::Body>,
905            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
906        {
907            MountainServiceClient::new(InterceptedService::new(inner, interceptor))
908        }
909        /// Compress requests with the given encoding.
910        ///
911        /// This requires the server to support it otherwise it might respond with an
912        /// error.
913        #[must_use]
914        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
915            self.inner = self.inner.send_compressed(encoding);
916            self
917        }
918        /// Enable decompressing responses.
919        #[must_use]
920        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
921            self.inner = self.inner.accept_compressed(encoding);
922            self
923        }
924        /// Limits the maximum size of a decoded message.
925        ///
926        /// Default: `4MB`
927        #[must_use]
928        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
929            self.inner = self.inner.max_decoding_message_size(limit);
930            self
931        }
932        /// Limits the maximum size of an encoded message.
933        ///
934        /// Default: `usize::MAX`
935        #[must_use]
936        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
937            self.inner = self.inner.max_encoding_message_size(limit);
938            self
939        }
940        /// A generic request-response method for Cocoon to call a function on Mountain.
941        pub async fn process_cocoon_request(
942            &mut self,
943            request: impl tonic::IntoRequest<super::GenericRequest>,
944        ) -> std::result::Result<
945            tonic::Response<super::GenericResponse>,
946            tonic::Status,
947        > {
948            self.inner
949                .ready()
950                .await
951                .map_err(|e| {
952                    tonic::Status::unknown(
953                        format!("Service was not ready: {}", e.into()),
954                    )
955                })?;
956            let codec = tonic_prost::ProstCodec::default();
957            let path = http::uri::PathAndQuery::from_static(
958                "/Vine.MountainService/ProcessCocoonRequest",
959            );
960            let mut req = request.into_request();
961            req.extensions_mut()
962                .insert(GrpcMethod::new("Vine.MountainService", "ProcessCocoonRequest"));
963            self.inner.unary(req, path, codec).await
964        }
965        /// A generic fire-and-forget method for Cocoon to send a notification to Mountain.
966        pub async fn send_cocoon_notification(
967            &mut self,
968            request: impl tonic::IntoRequest<super::GenericNotification>,
969        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
970            self.inner
971                .ready()
972                .await
973                .map_err(|e| {
974                    tonic::Status::unknown(
975                        format!("Service was not ready: {}", e.into()),
976                    )
977                })?;
978            let codec = tonic_prost::ProstCodec::default();
979            let path = http::uri::PathAndQuery::from_static(
980                "/Vine.MountainService/SendCocoonNotification",
981            );
982            let mut req = request.into_request();
983            req.extensions_mut()
984                .insert(
985                    GrpcMethod::new("Vine.MountainService", "SendCocoonNotification"),
986                );
987            self.inner.unary(req, path, codec).await
988        }
989        /// A method for Cocoon to request that Mountain cancel a long-running operation.
990        pub async fn cancel_operation(
991            &mut self,
992            request: impl tonic::IntoRequest<super::CancelOperationRequest>,
993        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
994            self.inner
995                .ready()
996                .await
997                .map_err(|e| {
998                    tonic::Status::unknown(
999                        format!("Service was not ready: {}", e.into()),
1000                    )
1001                })?;
1002            let codec = tonic_prost::ProstCodec::default();
1003            let path = http::uri::PathAndQuery::from_static(
1004                "/Vine.MountainService/CancelOperation",
1005            );
1006            let mut req = request.into_request();
1007            req.extensions_mut()
1008                .insert(GrpcMethod::new("Vine.MountainService", "CancelOperation"));
1009            self.inner.unary(req, path, codec).await
1010        }
1011    }
1012}
1013/// Generated server implementations.
1014pub mod mountain_service_server {
1015    #![allow(
1016        unused_variables,
1017        dead_code,
1018        missing_docs,
1019        clippy::wildcard_imports,
1020        clippy::let_unit_value,
1021    )]
1022    use tonic::codegen::*;
1023    /// Generated trait containing gRPC methods that should be implemented for use with MountainServiceServer.
1024    #[async_trait]
1025    pub trait MountainService: std::marker::Send + std::marker::Sync + 'static {
1026        /// A generic request-response method for Cocoon to call a function on Mountain.
1027        async fn process_cocoon_request(
1028            &self,
1029            request: tonic::Request<super::GenericRequest>,
1030        ) -> std::result::Result<tonic::Response<super::GenericResponse>, tonic::Status>;
1031        /// A generic fire-and-forget method for Cocoon to send a notification to Mountain.
1032        async fn send_cocoon_notification(
1033            &self,
1034            request: tonic::Request<super::GenericNotification>,
1035        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
1036        /// A method for Cocoon to request that Mountain cancel a long-running operation.
1037        async fn cancel_operation(
1038            &self,
1039            request: tonic::Request<super::CancelOperationRequest>,
1040        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
1041    }
1042    /// Service running on the Mountain host, listening for requests from Cocoon.
1043    #[derive(Debug)]
1044    pub struct MountainServiceServer<T> {
1045        inner: Arc<T>,
1046        accept_compression_encodings: EnabledCompressionEncodings,
1047        send_compression_encodings: EnabledCompressionEncodings,
1048        max_decoding_message_size: Option<usize>,
1049        max_encoding_message_size: Option<usize>,
1050    }
1051    impl<T> MountainServiceServer<T> {
1052        pub fn new(inner: T) -> Self {
1053            Self::from_arc(Arc::new(inner))
1054        }
1055        pub fn from_arc(inner: Arc<T>) -> Self {
1056            Self {
1057                inner,
1058                accept_compression_encodings: Default::default(),
1059                send_compression_encodings: Default::default(),
1060                max_decoding_message_size: None,
1061                max_encoding_message_size: None,
1062            }
1063        }
1064        pub fn with_interceptor<F>(
1065            inner: T,
1066            interceptor: F,
1067        ) -> InterceptedService<Self, F>
1068        where
1069            F: tonic::service::Interceptor,
1070        {
1071            InterceptedService::new(Self::new(inner), interceptor)
1072        }
1073        /// Enable decompressing requests with the given encoding.
1074        #[must_use]
1075        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1076            self.accept_compression_encodings.enable(encoding);
1077            self
1078        }
1079        /// Compress responses with the given encoding, if the client supports it.
1080        #[must_use]
1081        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1082            self.send_compression_encodings.enable(encoding);
1083            self
1084        }
1085        /// Limits the maximum size of a decoded message.
1086        ///
1087        /// Default: `4MB`
1088        #[must_use]
1089        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1090            self.max_decoding_message_size = Some(limit);
1091            self
1092        }
1093        /// Limits the maximum size of an encoded message.
1094        ///
1095        /// Default: `usize::MAX`
1096        #[must_use]
1097        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1098            self.max_encoding_message_size = Some(limit);
1099            self
1100        }
1101    }
1102    impl<T, B> tonic::codegen::Service<http::Request<B>> for MountainServiceServer<T>
1103    where
1104        T: MountainService,
1105        B: Body + std::marker::Send + 'static,
1106        B::Error: Into<StdError> + std::marker::Send + 'static,
1107    {
1108        type Response = http::Response<tonic::body::Body>;
1109        type Error = std::convert::Infallible;
1110        type Future = BoxFuture<Self::Response, Self::Error>;
1111        fn poll_ready(
1112            &mut self,
1113            _cx: &mut Context<'_>,
1114        ) -> Poll<std::result::Result<(), Self::Error>> {
1115            Poll::Ready(Ok(()))
1116        }
1117        fn call(&mut self, req: http::Request<B>) -> Self::Future {
1118            match req.uri().path() {
1119                "/Vine.MountainService/ProcessCocoonRequest" => {
1120                    #[allow(non_camel_case_types)]
1121                    struct ProcessCocoonRequestSvc<T: MountainService>(pub Arc<T>);
1122                    impl<
1123                        T: MountainService,
1124                    > tonic::server::UnaryService<super::GenericRequest>
1125                    for ProcessCocoonRequestSvc<T> {
1126                        type Response = super::GenericResponse;
1127                        type Future = BoxFuture<
1128                            tonic::Response<Self::Response>,
1129                            tonic::Status,
1130                        >;
1131                        fn call(
1132                            &mut self,
1133                            request: tonic::Request<super::GenericRequest>,
1134                        ) -> Self::Future {
1135                            let inner = Arc::clone(&self.0);
1136                            let fut = async move {
1137                                <T as MountainService>::process_cocoon_request(
1138                                        &inner,
1139                                        request,
1140                                    )
1141                                    .await
1142                            };
1143                            Box::pin(fut)
1144                        }
1145                    }
1146                    let accept_compression_encodings = self.accept_compression_encodings;
1147                    let send_compression_encodings = self.send_compression_encodings;
1148                    let max_decoding_message_size = self.max_decoding_message_size;
1149                    let max_encoding_message_size = self.max_encoding_message_size;
1150                    let inner = self.inner.clone();
1151                    let fut = async move {
1152                        let method = ProcessCocoonRequestSvc(inner);
1153                        let codec = tonic_prost::ProstCodec::default();
1154                        let mut grpc = tonic::server::Grpc::new(codec)
1155                            .apply_compression_config(
1156                                accept_compression_encodings,
1157                                send_compression_encodings,
1158                            )
1159                            .apply_max_message_size_config(
1160                                max_decoding_message_size,
1161                                max_encoding_message_size,
1162                            );
1163                        let res = grpc.unary(method, req).await;
1164                        Ok(res)
1165                    };
1166                    Box::pin(fut)
1167                }
1168                "/Vine.MountainService/SendCocoonNotification" => {
1169                    #[allow(non_camel_case_types)]
1170                    struct SendCocoonNotificationSvc<T: MountainService>(pub Arc<T>);
1171                    impl<
1172                        T: MountainService,
1173                    > tonic::server::UnaryService<super::GenericNotification>
1174                    for SendCocoonNotificationSvc<T> {
1175                        type Response = super::Empty;
1176                        type Future = BoxFuture<
1177                            tonic::Response<Self::Response>,
1178                            tonic::Status,
1179                        >;
1180                        fn call(
1181                            &mut self,
1182                            request: tonic::Request<super::GenericNotification>,
1183                        ) -> Self::Future {
1184                            let inner = Arc::clone(&self.0);
1185                            let fut = async move {
1186                                <T as MountainService>::send_cocoon_notification(
1187                                        &inner,
1188                                        request,
1189                                    )
1190                                    .await
1191                            };
1192                            Box::pin(fut)
1193                        }
1194                    }
1195                    let accept_compression_encodings = self.accept_compression_encodings;
1196                    let send_compression_encodings = self.send_compression_encodings;
1197                    let max_decoding_message_size = self.max_decoding_message_size;
1198                    let max_encoding_message_size = self.max_encoding_message_size;
1199                    let inner = self.inner.clone();
1200                    let fut = async move {
1201                        let method = SendCocoonNotificationSvc(inner);
1202                        let codec = tonic_prost::ProstCodec::default();
1203                        let mut grpc = tonic::server::Grpc::new(codec)
1204                            .apply_compression_config(
1205                                accept_compression_encodings,
1206                                send_compression_encodings,
1207                            )
1208                            .apply_max_message_size_config(
1209                                max_decoding_message_size,
1210                                max_encoding_message_size,
1211                            );
1212                        let res = grpc.unary(method, req).await;
1213                        Ok(res)
1214                    };
1215                    Box::pin(fut)
1216                }
1217                "/Vine.MountainService/CancelOperation" => {
1218                    #[allow(non_camel_case_types)]
1219                    struct CancelOperationSvc<T: MountainService>(pub Arc<T>);
1220                    impl<
1221                        T: MountainService,
1222                    > tonic::server::UnaryService<super::CancelOperationRequest>
1223                    for CancelOperationSvc<T> {
1224                        type Response = super::Empty;
1225                        type Future = BoxFuture<
1226                            tonic::Response<Self::Response>,
1227                            tonic::Status,
1228                        >;
1229                        fn call(
1230                            &mut self,
1231                            request: tonic::Request<super::CancelOperationRequest>,
1232                        ) -> Self::Future {
1233                            let inner = Arc::clone(&self.0);
1234                            let fut = async move {
1235                                <T as MountainService>::cancel_operation(&inner, request)
1236                                    .await
1237                            };
1238                            Box::pin(fut)
1239                        }
1240                    }
1241                    let accept_compression_encodings = self.accept_compression_encodings;
1242                    let send_compression_encodings = self.send_compression_encodings;
1243                    let max_decoding_message_size = self.max_decoding_message_size;
1244                    let max_encoding_message_size = self.max_encoding_message_size;
1245                    let inner = self.inner.clone();
1246                    let fut = async move {
1247                        let method = CancelOperationSvc(inner);
1248                        let codec = tonic_prost::ProstCodec::default();
1249                        let mut grpc = tonic::server::Grpc::new(codec)
1250                            .apply_compression_config(
1251                                accept_compression_encodings,
1252                                send_compression_encodings,
1253                            )
1254                            .apply_max_message_size_config(
1255                                max_decoding_message_size,
1256                                max_encoding_message_size,
1257                            );
1258                        let res = grpc.unary(method, req).await;
1259                        Ok(res)
1260                    };
1261                    Box::pin(fut)
1262                }
1263                _ => {
1264                    Box::pin(async move {
1265                        let mut response = http::Response::new(
1266                            tonic::body::Body::default(),
1267                        );
1268                        let headers = response.headers_mut();
1269                        headers
1270                            .insert(
1271                                tonic::Status::GRPC_STATUS,
1272                                (tonic::Code::Unimplemented as i32).into(),
1273                            );
1274                        headers
1275                            .insert(
1276                                http::header::CONTENT_TYPE,
1277                                tonic::metadata::GRPC_CONTENT_TYPE,
1278                            );
1279                        Ok(response)
1280                    })
1281                }
1282            }
1283        }
1284    }
1285    impl<T> Clone for MountainServiceServer<T> {
1286        fn clone(&self) -> Self {
1287            let inner = self.inner.clone();
1288            Self {
1289                inner,
1290                accept_compression_encodings: self.accept_compression_encodings,
1291                send_compression_encodings: self.send_compression_encodings,
1292                max_decoding_message_size: self.max_decoding_message_size,
1293                max_encoding_message_size: self.max_encoding_message_size,
1294            }
1295        }
1296    }
1297    /// Generated gRPC service name
1298    pub const SERVICE_NAME: &str = "Vine.MountainService";
1299    impl<T> tonic::server::NamedService for MountainServiceServer<T> {
1300        const NAME: &'static str = SERVICE_NAME;
1301    }
1302}
1303/// Generated client implementations.
1304pub mod cocoon_service_client {
1305    #![allow(
1306        unused_variables,
1307        dead_code,
1308        missing_docs,
1309        clippy::wildcard_imports,
1310        clippy::let_unit_value,
1311    )]
1312    use tonic::codegen::*;
1313    use tonic::codegen::http::Uri;
1314    /// Service running on the Cocoon sidecar, listening for requests from Mountain.
1315    #[derive(Debug, Clone)]
1316    pub struct CocoonServiceClient<T> {
1317        inner: tonic::client::Grpc<T>,
1318    }
1319    impl CocoonServiceClient<tonic::transport::Channel> {
1320        /// Attempt to create a new client by connecting to a given endpoint.
1321        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1322        where
1323            D: TryInto<tonic::transport::Endpoint>,
1324            D::Error: Into<StdError>,
1325        {
1326            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1327            Ok(Self::new(conn))
1328        }
1329    }
1330    impl<T> CocoonServiceClient<T>
1331    where
1332        T: tonic::client::GrpcService<tonic::body::Body>,
1333        T::Error: Into<StdError>,
1334        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1335        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1336    {
1337        pub fn new(inner: T) -> Self {
1338            let inner = tonic::client::Grpc::new(inner);
1339            Self { inner }
1340        }
1341        pub fn with_origin(inner: T, origin: Uri) -> Self {
1342            let inner = tonic::client::Grpc::with_origin(inner, origin);
1343            Self { inner }
1344        }
1345        pub fn with_interceptor<F>(
1346            inner: T,
1347            interceptor: F,
1348        ) -> CocoonServiceClient<InterceptedService<T, F>>
1349        where
1350            F: tonic::service::Interceptor,
1351            T::ResponseBody: Default,
1352            T: tonic::codegen::Service<
1353                http::Request<tonic::body::Body>,
1354                Response = http::Response<
1355                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1356                >,
1357            >,
1358            <T as tonic::codegen::Service<
1359                http::Request<tonic::body::Body>,
1360            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1361        {
1362            CocoonServiceClient::new(InterceptedService::new(inner, interceptor))
1363        }
1364        /// Compress requests with the given encoding.
1365        ///
1366        /// This requires the server to support it otherwise it might respond with an
1367        /// error.
1368        #[must_use]
1369        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1370            self.inner = self.inner.send_compressed(encoding);
1371            self
1372        }
1373        /// Enable decompressing responses.
1374        #[must_use]
1375        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1376            self.inner = self.inner.accept_compressed(encoding);
1377            self
1378        }
1379        /// Limits the maximum size of a decoded message.
1380        ///
1381        /// Default: `4MB`
1382        #[must_use]
1383        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1384            self.inner = self.inner.max_decoding_message_size(limit);
1385            self
1386        }
1387        /// Limits the maximum size of an encoded message.
1388        ///
1389        /// Default: `usize::MAX`
1390        #[must_use]
1391        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1392            self.inner = self.inner.max_encoding_message_size(limit);
1393            self
1394        }
1395        /// A generic request-response method for Mountain to call a function on Cocoon.
1396        pub async fn process_mountain_request(
1397            &mut self,
1398            request: impl tonic::IntoRequest<super::GenericRequest>,
1399        ) -> std::result::Result<
1400            tonic::Response<super::GenericResponse>,
1401            tonic::Status,
1402        > {
1403            self.inner
1404                .ready()
1405                .await
1406                .map_err(|e| {
1407                    tonic::Status::unknown(
1408                        format!("Service was not ready: {}", e.into()),
1409                    )
1410                })?;
1411            let codec = tonic_prost::ProstCodec::default();
1412            let path = http::uri::PathAndQuery::from_static(
1413                "/Vine.CocoonService/ProcessMountainRequest",
1414            );
1415            let mut req = request.into_request();
1416            req.extensions_mut()
1417                .insert(GrpcMethod::new("Vine.CocoonService", "ProcessMountainRequest"));
1418            self.inner.unary(req, path, codec).await
1419        }
1420        /// A generic fire-and-forget method for Mountain to send a notification to Cocoon.
1421        pub async fn send_mountain_notification(
1422            &mut self,
1423            request: impl tonic::IntoRequest<super::GenericNotification>,
1424        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1425            self.inner
1426                .ready()
1427                .await
1428                .map_err(|e| {
1429                    tonic::Status::unknown(
1430                        format!("Service was not ready: {}", e.into()),
1431                    )
1432                })?;
1433            let codec = tonic_prost::ProstCodec::default();
1434            let path = http::uri::PathAndQuery::from_static(
1435                "/Vine.CocoonService/SendMountainNotification",
1436            );
1437            let mut req = request.into_request();
1438            req.extensions_mut()
1439                .insert(
1440                    GrpcMethod::new("Vine.CocoonService", "SendMountainNotification"),
1441                );
1442            self.inner.unary(req, path, codec).await
1443        }
1444        /// A method for Mountain to request that Cocoon cancel a long-running operation.
1445        pub async fn cancel_operation(
1446            &mut self,
1447            request: impl tonic::IntoRequest<super::CancelOperationRequest>,
1448        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1449            self.inner
1450                .ready()
1451                .await
1452                .map_err(|e| {
1453                    tonic::Status::unknown(
1454                        format!("Service was not ready: {}", e.into()),
1455                    )
1456                })?;
1457            let codec = tonic_prost::ProstCodec::default();
1458            let path = http::uri::PathAndQuery::from_static(
1459                "/Vine.CocoonService/CancelOperation",
1460            );
1461            let mut req = request.into_request();
1462            req.extensions_mut()
1463                .insert(GrpcMethod::new("Vine.CocoonService", "CancelOperation"));
1464            self.inner.unary(req, path, codec).await
1465        }
1466        /// Handshake - Called by Cocoon to signal readiness
1467        pub async fn initial_handshake(
1468            &mut self,
1469            request: impl tonic::IntoRequest<super::Empty>,
1470        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1471            self.inner
1472                .ready()
1473                .await
1474                .map_err(|e| {
1475                    tonic::Status::unknown(
1476                        format!("Service was not ready: {}", e.into()),
1477                    )
1478                })?;
1479            let codec = tonic_prost::ProstCodec::default();
1480            let path = http::uri::PathAndQuery::from_static(
1481                "/Vine.CocoonService/initial_handshake",
1482            );
1483            let mut req = request.into_request();
1484            req.extensions_mut()
1485                .insert(GrpcMethod::new("Vine.CocoonService", "initial_handshake"));
1486            self.inner.unary(req, path, codec).await
1487        }
1488        /// Initialize Extension Host - Mountain sends initialization data to Cocoon
1489        pub async fn init_extension_host(
1490            &mut self,
1491            request: impl tonic::IntoRequest<super::InitExtensionHostRequest>,
1492        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1493            self.inner
1494                .ready()
1495                .await
1496                .map_err(|e| {
1497                    tonic::Status::unknown(
1498                        format!("Service was not ready: {}", e.into()),
1499                    )
1500                })?;
1501            let codec = tonic_prost::ProstCodec::default();
1502            let path = http::uri::PathAndQuery::from_static(
1503                "/Vine.CocoonService/init_extension_host",
1504            );
1505            let mut req = request.into_request();
1506            req.extensions_mut()
1507                .insert(GrpcMethod::new("Vine.CocoonService", "init_extension_host"));
1508            self.inner.unary(req, path, codec).await
1509        }
1510        /// Register Command - Cocoon registers an extension command
1511        pub async fn register_command(
1512            &mut self,
1513            request: impl tonic::IntoRequest<super::RegisterCommandRequest>,
1514        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1515            self.inner
1516                .ready()
1517                .await
1518                .map_err(|e| {
1519                    tonic::Status::unknown(
1520                        format!("Service was not ready: {}", e.into()),
1521                    )
1522                })?;
1523            let codec = tonic_prost::ProstCodec::default();
1524            let path = http::uri::PathAndQuery::from_static(
1525                "/Vine.CocoonService/register_command",
1526            );
1527            let mut req = request.into_request();
1528            req.extensions_mut()
1529                .insert(GrpcMethod::new("Vine.CocoonService", "register_command"));
1530            self.inner.unary(req, path, codec).await
1531        }
1532        /// Execute Contributed Command - Mountain executes an extension command
1533        pub async fn execute_contributed_command(
1534            &mut self,
1535            request: impl tonic::IntoRequest<super::ExecuteCommandRequest>,
1536        ) -> std::result::Result<
1537            tonic::Response<super::ExecuteCommandResponse>,
1538            tonic::Status,
1539        > {
1540            self.inner
1541                .ready()
1542                .await
1543                .map_err(|e| {
1544                    tonic::Status::unknown(
1545                        format!("Service was not ready: {}", e.into()),
1546                    )
1547                })?;
1548            let codec = tonic_prost::ProstCodec::default();
1549            let path = http::uri::PathAndQuery::from_static(
1550                "/Vine.CocoonService/execute_contributed_command",
1551            );
1552            let mut req = request.into_request();
1553            req.extensions_mut()
1554                .insert(
1555                    GrpcMethod::new("Vine.CocoonService", "execute_contributed_command"),
1556                );
1557            self.inner.unary(req, path, codec).await
1558        }
1559        /// Unregister Command - Unregister a previously registered command
1560        pub async fn unregister_command(
1561            &mut self,
1562            request: impl tonic::IntoRequest<super::UnregisterCommandRequest>,
1563        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1564            self.inner
1565                .ready()
1566                .await
1567                .map_err(|e| {
1568                    tonic::Status::unknown(
1569                        format!("Service was not ready: {}", e.into()),
1570                    )
1571                })?;
1572            let codec = tonic_prost::ProstCodec::default();
1573            let path = http::uri::PathAndQuery::from_static(
1574                "/Vine.CocoonService/unregister_command",
1575            );
1576            let mut req = request.into_request();
1577            req.extensions_mut()
1578                .insert(GrpcMethod::new("Vine.CocoonService", "unregister_command"));
1579            self.inner.unary(req, path, codec).await
1580        }
1581        /// Register Hover Provider - Register a hover provider
1582        pub async fn register_hover_provider(
1583            &mut self,
1584            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
1585        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1586            self.inner
1587                .ready()
1588                .await
1589                .map_err(|e| {
1590                    tonic::Status::unknown(
1591                        format!("Service was not ready: {}", e.into()),
1592                    )
1593                })?;
1594            let codec = tonic_prost::ProstCodec::default();
1595            let path = http::uri::PathAndQuery::from_static(
1596                "/Vine.CocoonService/register_hover_provider",
1597            );
1598            let mut req = request.into_request();
1599            req.extensions_mut()
1600                .insert(
1601                    GrpcMethod::new("Vine.CocoonService", "register_hover_provider"),
1602                );
1603            self.inner.unary(req, path, codec).await
1604        }
1605        /// Provide Hover - Request hover information
1606        pub async fn provide_hover(
1607            &mut self,
1608            request: impl tonic::IntoRequest<super::ProvideHoverRequest>,
1609        ) -> std::result::Result<
1610            tonic::Response<super::ProvideHoverResponse>,
1611            tonic::Status,
1612        > {
1613            self.inner
1614                .ready()
1615                .await
1616                .map_err(|e| {
1617                    tonic::Status::unknown(
1618                        format!("Service was not ready: {}", e.into()),
1619                    )
1620                })?;
1621            let codec = tonic_prost::ProstCodec::default();
1622            let path = http::uri::PathAndQuery::from_static(
1623                "/Vine.CocoonService/provide_hover",
1624            );
1625            let mut req = request.into_request();
1626            req.extensions_mut()
1627                .insert(GrpcMethod::new("Vine.CocoonService", "provide_hover"));
1628            self.inner.unary(req, path, codec).await
1629        }
1630        /// Register Completion Item Provider - Register a completion provider
1631        pub async fn register_completion_item_provider(
1632            &mut self,
1633            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
1634        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1635            self.inner
1636                .ready()
1637                .await
1638                .map_err(|e| {
1639                    tonic::Status::unknown(
1640                        format!("Service was not ready: {}", e.into()),
1641                    )
1642                })?;
1643            let codec = tonic_prost::ProstCodec::default();
1644            let path = http::uri::PathAndQuery::from_static(
1645                "/Vine.CocoonService/register_completion_item_provider",
1646            );
1647            let mut req = request.into_request();
1648            req.extensions_mut()
1649                .insert(
1650                    GrpcMethod::new(
1651                        "Vine.CocoonService",
1652                        "register_completion_item_provider",
1653                    ),
1654                );
1655            self.inner.unary(req, path, codec).await
1656        }
1657        /// Provide Completion Items - Request completion items
1658        pub async fn provide_completion_items(
1659            &mut self,
1660            request: impl tonic::IntoRequest<super::ProvideCompletionItemsRequest>,
1661        ) -> std::result::Result<
1662            tonic::Response<super::ProvideCompletionItemsResponse>,
1663            tonic::Status,
1664        > {
1665            self.inner
1666                .ready()
1667                .await
1668                .map_err(|e| {
1669                    tonic::Status::unknown(
1670                        format!("Service was not ready: {}", e.into()),
1671                    )
1672                })?;
1673            let codec = tonic_prost::ProstCodec::default();
1674            let path = http::uri::PathAndQuery::from_static(
1675                "/Vine.CocoonService/provide_completion_items",
1676            );
1677            let mut req = request.into_request();
1678            req.extensions_mut()
1679                .insert(
1680                    GrpcMethod::new("Vine.CocoonService", "provide_completion_items"),
1681                );
1682            self.inner.unary(req, path, codec).await
1683        }
1684        /// Register Definition Provider - Register a definition provider
1685        pub async fn register_definition_provider(
1686            &mut self,
1687            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
1688        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1689            self.inner
1690                .ready()
1691                .await
1692                .map_err(|e| {
1693                    tonic::Status::unknown(
1694                        format!("Service was not ready: {}", e.into()),
1695                    )
1696                })?;
1697            let codec = tonic_prost::ProstCodec::default();
1698            let path = http::uri::PathAndQuery::from_static(
1699                "/Vine.CocoonService/register_definition_provider",
1700            );
1701            let mut req = request.into_request();
1702            req.extensions_mut()
1703                .insert(
1704                    GrpcMethod::new("Vine.CocoonService", "register_definition_provider"),
1705                );
1706            self.inner.unary(req, path, codec).await
1707        }
1708        /// Provide Definition - Request definition location
1709        pub async fn provide_definition(
1710            &mut self,
1711            request: impl tonic::IntoRequest<super::ProvideDefinitionRequest>,
1712        ) -> std::result::Result<
1713            tonic::Response<super::ProvideDefinitionResponse>,
1714            tonic::Status,
1715        > {
1716            self.inner
1717                .ready()
1718                .await
1719                .map_err(|e| {
1720                    tonic::Status::unknown(
1721                        format!("Service was not ready: {}", e.into()),
1722                    )
1723                })?;
1724            let codec = tonic_prost::ProstCodec::default();
1725            let path = http::uri::PathAndQuery::from_static(
1726                "/Vine.CocoonService/provide_definition",
1727            );
1728            let mut req = request.into_request();
1729            req.extensions_mut()
1730                .insert(GrpcMethod::new("Vine.CocoonService", "provide_definition"));
1731            self.inner.unary(req, path, codec).await
1732        }
1733        /// Register Reference Provider - Register a reference provider
1734        pub async fn register_reference_provider(
1735            &mut self,
1736            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
1737        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1738            self.inner
1739                .ready()
1740                .await
1741                .map_err(|e| {
1742                    tonic::Status::unknown(
1743                        format!("Service was not ready: {}", e.into()),
1744                    )
1745                })?;
1746            let codec = tonic_prost::ProstCodec::default();
1747            let path = http::uri::PathAndQuery::from_static(
1748                "/Vine.CocoonService/register_reference_provider",
1749            );
1750            let mut req = request.into_request();
1751            req.extensions_mut()
1752                .insert(
1753                    GrpcMethod::new("Vine.CocoonService", "register_reference_provider"),
1754                );
1755            self.inner.unary(req, path, codec).await
1756        }
1757        /// Provide References - Request references
1758        pub async fn provide_references(
1759            &mut self,
1760            request: impl tonic::IntoRequest<super::ProvideReferencesRequest>,
1761        ) -> std::result::Result<
1762            tonic::Response<super::ProvideReferencesResponse>,
1763            tonic::Status,
1764        > {
1765            self.inner
1766                .ready()
1767                .await
1768                .map_err(|e| {
1769                    tonic::Status::unknown(
1770                        format!("Service was not ready: {}", e.into()),
1771                    )
1772                })?;
1773            let codec = tonic_prost::ProstCodec::default();
1774            let path = http::uri::PathAndQuery::from_static(
1775                "/Vine.CocoonService/provide_references",
1776            );
1777            let mut req = request.into_request();
1778            req.extensions_mut()
1779                .insert(GrpcMethod::new("Vine.CocoonService", "provide_references"));
1780            self.inner.unary(req, path, codec).await
1781        }
1782        /// Register Code Actions Provider - Register code actions provider
1783        pub async fn register_code_actions_provider(
1784            &mut self,
1785            request: impl tonic::IntoRequest<super::RegisterProviderRequest>,
1786        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1787            self.inner
1788                .ready()
1789                .await
1790                .map_err(|e| {
1791                    tonic::Status::unknown(
1792                        format!("Service was not ready: {}", e.into()),
1793                    )
1794                })?;
1795            let codec = tonic_prost::ProstCodec::default();
1796            let path = http::uri::PathAndQuery::from_static(
1797                "/Vine.CocoonService/register_code_actions_provider",
1798            );
1799            let mut req = request.into_request();
1800            req.extensions_mut()
1801                .insert(
1802                    GrpcMethod::new(
1803                        "Vine.CocoonService",
1804                        "register_code_actions_provider",
1805                    ),
1806                );
1807            self.inner.unary(req, path, codec).await
1808        }
1809        /// Provide Code Actions - Request code actions
1810        pub async fn provide_code_actions(
1811            &mut self,
1812            request: impl tonic::IntoRequest<super::ProvideCodeActionsRequest>,
1813        ) -> std::result::Result<
1814            tonic::Response<super::ProvideCodeActionsResponse>,
1815            tonic::Status,
1816        > {
1817            self.inner
1818                .ready()
1819                .await
1820                .map_err(|e| {
1821                    tonic::Status::unknown(
1822                        format!("Service was not ready: {}", e.into()),
1823                    )
1824                })?;
1825            let codec = tonic_prost::ProstCodec::default();
1826            let path = http::uri::PathAndQuery::from_static(
1827                "/Vine.CocoonService/provide_code_actions",
1828            );
1829            let mut req = request.into_request();
1830            req.extensions_mut()
1831                .insert(GrpcMethod::new("Vine.CocoonService", "provide_code_actions"));
1832            self.inner.unary(req, path, codec).await
1833        }
1834        /// Show Text Document - Open a text document
1835        pub async fn show_text_document(
1836            &mut self,
1837            request: impl tonic::IntoRequest<super::ShowTextDocumentRequest>,
1838        ) -> std::result::Result<
1839            tonic::Response<super::ShowTextDocumentResponse>,
1840            tonic::Status,
1841        > {
1842            self.inner
1843                .ready()
1844                .await
1845                .map_err(|e| {
1846                    tonic::Status::unknown(
1847                        format!("Service was not ready: {}", e.into()),
1848                    )
1849                })?;
1850            let codec = tonic_prost::ProstCodec::default();
1851            let path = http::uri::PathAndQuery::from_static(
1852                "/Vine.CocoonService/show_text_document",
1853            );
1854            let mut req = request.into_request();
1855            req.extensions_mut()
1856                .insert(GrpcMethod::new("Vine.CocoonService", "show_text_document"));
1857            self.inner.unary(req, path, codec).await
1858        }
1859        /// Show Information Message - Display an info message
1860        pub async fn show_information_message(
1861            &mut self,
1862            request: impl tonic::IntoRequest<super::ShowMessageRequest>,
1863        ) -> std::result::Result<
1864            tonic::Response<super::ShowMessageResponse>,
1865            tonic::Status,
1866        > {
1867            self.inner
1868                .ready()
1869                .await
1870                .map_err(|e| {
1871                    tonic::Status::unknown(
1872                        format!("Service was not ready: {}", e.into()),
1873                    )
1874                })?;
1875            let codec = tonic_prost::ProstCodec::default();
1876            let path = http::uri::PathAndQuery::from_static(
1877                "/Vine.CocoonService/show_information_message",
1878            );
1879            let mut req = request.into_request();
1880            req.extensions_mut()
1881                .insert(
1882                    GrpcMethod::new("Vine.CocoonService", "show_information_message"),
1883                );
1884            self.inner.unary(req, path, codec).await
1885        }
1886        /// Show Warning Message - Display a warning message
1887        pub async fn show_warning_message(
1888            &mut self,
1889            request: impl tonic::IntoRequest<super::ShowMessageRequest>,
1890        ) -> std::result::Result<
1891            tonic::Response<super::ShowMessageResponse>,
1892            tonic::Status,
1893        > {
1894            self.inner
1895                .ready()
1896                .await
1897                .map_err(|e| {
1898                    tonic::Status::unknown(
1899                        format!("Service was not ready: {}", e.into()),
1900                    )
1901                })?;
1902            let codec = tonic_prost::ProstCodec::default();
1903            let path = http::uri::PathAndQuery::from_static(
1904                "/Vine.CocoonService/show_warning_message",
1905            );
1906            let mut req = request.into_request();
1907            req.extensions_mut()
1908                .insert(GrpcMethod::new("Vine.CocoonService", "show_warning_message"));
1909            self.inner.unary(req, path, codec).await
1910        }
1911        /// Show Error Message - Display an error message
1912        pub async fn show_error_message(
1913            &mut self,
1914            request: impl tonic::IntoRequest<super::ShowMessageRequest>,
1915        ) -> std::result::Result<
1916            tonic::Response<super::ShowMessageResponse>,
1917            tonic::Status,
1918        > {
1919            self.inner
1920                .ready()
1921                .await
1922                .map_err(|e| {
1923                    tonic::Status::unknown(
1924                        format!("Service was not ready: {}", e.into()),
1925                    )
1926                })?;
1927            let codec = tonic_prost::ProstCodec::default();
1928            let path = http::uri::PathAndQuery::from_static(
1929                "/Vine.CocoonService/show_error_message",
1930            );
1931            let mut req = request.into_request();
1932            req.extensions_mut()
1933                .insert(GrpcMethod::new("Vine.CocoonService", "show_error_message"));
1934            self.inner.unary(req, path, codec).await
1935        }
1936        /// Create Status Bar Item - Create a status bar item
1937        pub async fn create_status_bar_item(
1938            &mut self,
1939            request: impl tonic::IntoRequest<super::CreateStatusBarItemRequest>,
1940        ) -> std::result::Result<
1941            tonic::Response<super::CreateStatusBarItemResponse>,
1942            tonic::Status,
1943        > {
1944            self.inner
1945                .ready()
1946                .await
1947                .map_err(|e| {
1948                    tonic::Status::unknown(
1949                        format!("Service was not ready: {}", e.into()),
1950                    )
1951                })?;
1952            let codec = tonic_prost::ProstCodec::default();
1953            let path = http::uri::PathAndQuery::from_static(
1954                "/Vine.CocoonService/create_status_bar_item",
1955            );
1956            let mut req = request.into_request();
1957            req.extensions_mut()
1958                .insert(GrpcMethod::new("Vine.CocoonService", "create_status_bar_item"));
1959            self.inner.unary(req, path, codec).await
1960        }
1961        /// Set Status Bar Text - Set status bar text
1962        pub async fn set_status_bar_text(
1963            &mut self,
1964            request: impl tonic::IntoRequest<super::SetStatusBarTextRequest>,
1965        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
1966            self.inner
1967                .ready()
1968                .await
1969                .map_err(|e| {
1970                    tonic::Status::unknown(
1971                        format!("Service was not ready: {}", e.into()),
1972                    )
1973                })?;
1974            let codec = tonic_prost::ProstCodec::default();
1975            let path = http::uri::PathAndQuery::from_static(
1976                "/Vine.CocoonService/set_status_bar_text",
1977            );
1978            let mut req = request.into_request();
1979            req.extensions_mut()
1980                .insert(GrpcMethod::new("Vine.CocoonService", "set_status_bar_text"));
1981            self.inner.unary(req, path, codec).await
1982        }
1983        /// Create Webview Panel - Create a new webview panel
1984        pub async fn create_webview_panel(
1985            &mut self,
1986            request: impl tonic::IntoRequest<super::CreateWebviewPanelRequest>,
1987        ) -> std::result::Result<
1988            tonic::Response<super::CreateWebviewPanelResponse>,
1989            tonic::Status,
1990        > {
1991            self.inner
1992                .ready()
1993                .await
1994                .map_err(|e| {
1995                    tonic::Status::unknown(
1996                        format!("Service was not ready: {}", e.into()),
1997                    )
1998                })?;
1999            let codec = tonic_prost::ProstCodec::default();
2000            let path = http::uri::PathAndQuery::from_static(
2001                "/Vine.CocoonService/create_webview_panel",
2002            );
2003            let mut req = request.into_request();
2004            req.extensions_mut()
2005                .insert(GrpcMethod::new("Vine.CocoonService", "create_webview_panel"));
2006            self.inner.unary(req, path, codec).await
2007        }
2008        /// Set Webview HTML - Update webview HTML content
2009        pub async fn set_webview_html(
2010            &mut self,
2011            request: impl tonic::IntoRequest<super::SetWebviewHtmlRequest>,
2012        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2013            self.inner
2014                .ready()
2015                .await
2016                .map_err(|e| {
2017                    tonic::Status::unknown(
2018                        format!("Service was not ready: {}", e.into()),
2019                    )
2020                })?;
2021            let codec = tonic_prost::ProstCodec::default();
2022            let path = http::uri::PathAndQuery::from_static(
2023                "/Vine.CocoonService/set_webview_html",
2024            );
2025            let mut req = request.into_request();
2026            req.extensions_mut()
2027                .insert(GrpcMethod::new("Vine.CocoonService", "set_webview_html"));
2028            self.inner.unary(req, path, codec).await
2029        }
2030        /// On Did Receive Message - Receive message from webview
2031        pub async fn on_did_receive_message(
2032            &mut self,
2033            request: impl tonic::IntoRequest<super::OnDidReceiveMessageRequest>,
2034        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2035            self.inner
2036                .ready()
2037                .await
2038                .map_err(|e| {
2039                    tonic::Status::unknown(
2040                        format!("Service was not ready: {}", e.into()),
2041                    )
2042                })?;
2043            let codec = tonic_prost::ProstCodec::default();
2044            let path = http::uri::PathAndQuery::from_static(
2045                "/Vine.CocoonService/on_did_receive_message",
2046            );
2047            let mut req = request.into_request();
2048            req.extensions_mut()
2049                .insert(GrpcMethod::new("Vine.CocoonService", "on_did_receive_message"));
2050            self.inner.unary(req, path, codec).await
2051        }
2052        /// Read File - Read file contents
2053        pub async fn read_file(
2054            &mut self,
2055            request: impl tonic::IntoRequest<super::ReadFileRequest>,
2056        ) -> std::result::Result<
2057            tonic::Response<super::ReadFileResponse>,
2058            tonic::Status,
2059        > {
2060            self.inner
2061                .ready()
2062                .await
2063                .map_err(|e| {
2064                    tonic::Status::unknown(
2065                        format!("Service was not ready: {}", e.into()),
2066                    )
2067                })?;
2068            let codec = tonic_prost::ProstCodec::default();
2069            let path = http::uri::PathAndQuery::from_static(
2070                "/Vine.CocoonService/read_file",
2071            );
2072            let mut req = request.into_request();
2073            req.extensions_mut()
2074                .insert(GrpcMethod::new("Vine.CocoonService", "read_file"));
2075            self.inner.unary(req, path, codec).await
2076        }
2077        /// Write File - Write file contents
2078        pub async fn write_file(
2079            &mut self,
2080            request: impl tonic::IntoRequest<super::WriteFileRequest>,
2081        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2082            self.inner
2083                .ready()
2084                .await
2085                .map_err(|e| {
2086                    tonic::Status::unknown(
2087                        format!("Service was not ready: {}", e.into()),
2088                    )
2089                })?;
2090            let codec = tonic_prost::ProstCodec::default();
2091            let path = http::uri::PathAndQuery::from_static(
2092                "/Vine.CocoonService/write_file",
2093            );
2094            let mut req = request.into_request();
2095            req.extensions_mut()
2096                .insert(GrpcMethod::new("Vine.CocoonService", "write_file"));
2097            self.inner.unary(req, path, codec).await
2098        }
2099        /// Stat - Get file metadata
2100        pub async fn stat(
2101            &mut self,
2102            request: impl tonic::IntoRequest<super::StatRequest>,
2103        ) -> std::result::Result<tonic::Response<super::StatResponse>, tonic::Status> {
2104            self.inner
2105                .ready()
2106                .await
2107                .map_err(|e| {
2108                    tonic::Status::unknown(
2109                        format!("Service was not ready: {}", e.into()),
2110                    )
2111                })?;
2112            let codec = tonic_prost::ProstCodec::default();
2113            let path = http::uri::PathAndQuery::from_static("/Vine.CocoonService/stat");
2114            let mut req = request.into_request();
2115            req.extensions_mut().insert(GrpcMethod::new("Vine.CocoonService", "stat"));
2116            self.inner.unary(req, path, codec).await
2117        }
2118        /// Read Directory - List directory contents
2119        pub async fn readdir(
2120            &mut self,
2121            request: impl tonic::IntoRequest<super::ReaddirRequest>,
2122        ) -> std::result::Result<
2123            tonic::Response<super::ReaddirResponse>,
2124            tonic::Status,
2125        > {
2126            self.inner
2127                .ready()
2128                .await
2129                .map_err(|e| {
2130                    tonic::Status::unknown(
2131                        format!("Service was not ready: {}", e.into()),
2132                    )
2133                })?;
2134            let codec = tonic_prost::ProstCodec::default();
2135            let path = http::uri::PathAndQuery::from_static(
2136                "/Vine.CocoonService/readdir",
2137            );
2138            let mut req = request.into_request();
2139            req.extensions_mut()
2140                .insert(GrpcMethod::new("Vine.CocoonService", "readdir"));
2141            self.inner.unary(req, path, codec).await
2142        }
2143        /// Watch File - Watch file for changes
2144        pub async fn watch_file(
2145            &mut self,
2146            request: impl tonic::IntoRequest<super::WatchFileRequest>,
2147        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2148            self.inner
2149                .ready()
2150                .await
2151                .map_err(|e| {
2152                    tonic::Status::unknown(
2153                        format!("Service was not ready: {}", e.into()),
2154                    )
2155                })?;
2156            let codec = tonic_prost::ProstCodec::default();
2157            let path = http::uri::PathAndQuery::from_static(
2158                "/Vine.CocoonService/watch_file",
2159            );
2160            let mut req = request.into_request();
2161            req.extensions_mut()
2162                .insert(GrpcMethod::new("Vine.CocoonService", "watch_file"));
2163            self.inner.unary(req, path, codec).await
2164        }
2165        /// Find Files - Search for files
2166        pub async fn find_files(
2167            &mut self,
2168            request: impl tonic::IntoRequest<super::FindFilesRequest>,
2169        ) -> std::result::Result<
2170            tonic::Response<super::FindFilesResponse>,
2171            tonic::Status,
2172        > {
2173            self.inner
2174                .ready()
2175                .await
2176                .map_err(|e| {
2177                    tonic::Status::unknown(
2178                        format!("Service was not ready: {}", e.into()),
2179                    )
2180                })?;
2181            let codec = tonic_prost::ProstCodec::default();
2182            let path = http::uri::PathAndQuery::from_static(
2183                "/Vine.CocoonService/find_files",
2184            );
2185            let mut req = request.into_request();
2186            req.extensions_mut()
2187                .insert(GrpcMethod::new("Vine.CocoonService", "find_files"));
2188            self.inner.unary(req, path, codec).await
2189        }
2190        /// Find Text in Files - Search for text across files
2191        pub async fn find_text_in_files(
2192            &mut self,
2193            request: impl tonic::IntoRequest<super::FindTextInFilesRequest>,
2194        ) -> std::result::Result<
2195            tonic::Response<super::FindTextInFilesResponse>,
2196            tonic::Status,
2197        > {
2198            self.inner
2199                .ready()
2200                .await
2201                .map_err(|e| {
2202                    tonic::Status::unknown(
2203                        format!("Service was not ready: {}", e.into()),
2204                    )
2205                })?;
2206            let codec = tonic_prost::ProstCodec::default();
2207            let path = http::uri::PathAndQuery::from_static(
2208                "/Vine.CocoonService/find_text_in_files",
2209            );
2210            let mut req = request.into_request();
2211            req.extensions_mut()
2212                .insert(GrpcMethod::new("Vine.CocoonService", "find_text_in_files"));
2213            self.inner.unary(req, path, codec).await
2214        }
2215        /// Open Document - Open a document
2216        pub async fn open_document(
2217            &mut self,
2218            request: impl tonic::IntoRequest<super::OpenDocumentRequest>,
2219        ) -> std::result::Result<
2220            tonic::Response<super::OpenDocumentResponse>,
2221            tonic::Status,
2222        > {
2223            self.inner
2224                .ready()
2225                .await
2226                .map_err(|e| {
2227                    tonic::Status::unknown(
2228                        format!("Service was not ready: {}", e.into()),
2229                    )
2230                })?;
2231            let codec = tonic_prost::ProstCodec::default();
2232            let path = http::uri::PathAndQuery::from_static(
2233                "/Vine.CocoonService/open_document",
2234            );
2235            let mut req = request.into_request();
2236            req.extensions_mut()
2237                .insert(GrpcMethod::new("Vine.CocoonService", "open_document"));
2238            self.inner.unary(req, path, codec).await
2239        }
2240        /// Save All - Save all open documents
2241        pub async fn save_all(
2242            &mut self,
2243            request: impl tonic::IntoRequest<super::SaveAllRequest>,
2244        ) -> std::result::Result<
2245            tonic::Response<super::SaveAllResponse>,
2246            tonic::Status,
2247        > {
2248            self.inner
2249                .ready()
2250                .await
2251                .map_err(|e| {
2252                    tonic::Status::unknown(
2253                        format!("Service was not ready: {}", e.into()),
2254                    )
2255                })?;
2256            let codec = tonic_prost::ProstCodec::default();
2257            let path = http::uri::PathAndQuery::from_static(
2258                "/Vine.CocoonService/save_all",
2259            );
2260            let mut req = request.into_request();
2261            req.extensions_mut()
2262                .insert(GrpcMethod::new("Vine.CocoonService", "save_all"));
2263            self.inner.unary(req, path, codec).await
2264        }
2265        /// Apply Edit - Apply a text edit to a document
2266        pub async fn apply_edit(
2267            &mut self,
2268            request: impl tonic::IntoRequest<super::ApplyEditRequest>,
2269        ) -> std::result::Result<
2270            tonic::Response<super::ApplyEditResponse>,
2271            tonic::Status,
2272        > {
2273            self.inner
2274                .ready()
2275                .await
2276                .map_err(|e| {
2277                    tonic::Status::unknown(
2278                        format!("Service was not ready: {}", e.into()),
2279                    )
2280                })?;
2281            let codec = tonic_prost::ProstCodec::default();
2282            let path = http::uri::PathAndQuery::from_static(
2283                "/Vine.CocoonService/apply_edit",
2284            );
2285            let mut req = request.into_request();
2286            req.extensions_mut()
2287                .insert(GrpcMethod::new("Vine.CocoonService", "apply_edit"));
2288            self.inner.unary(req, path, codec).await
2289        }
2290        /// Update Configuration - Notify of configuration changes
2291        pub async fn update_configuration(
2292            &mut self,
2293            request: impl tonic::IntoRequest<super::UpdateConfigurationRequest>,
2294        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2295            self.inner
2296                .ready()
2297                .await
2298                .map_err(|e| {
2299                    tonic::Status::unknown(
2300                        format!("Service was not ready: {}", e.into()),
2301                    )
2302                })?;
2303            let codec = tonic_prost::ProstCodec::default();
2304            let path = http::uri::PathAndQuery::from_static(
2305                "/Vine.CocoonService/update_configuration",
2306            );
2307            let mut req = request.into_request();
2308            req.extensions_mut()
2309                .insert(GrpcMethod::new("Vine.CocoonService", "update_configuration"));
2310            self.inner.unary(req, path, codec).await
2311        }
2312        /// Update Workspace Folders - Update workspace folders
2313        pub async fn update_workspace_folders(
2314            &mut self,
2315            request: impl tonic::IntoRequest<super::UpdateWorkspaceFoldersRequest>,
2316        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2317            self.inner
2318                .ready()
2319                .await
2320                .map_err(|e| {
2321                    tonic::Status::unknown(
2322                        format!("Service was not ready: {}", e.into()),
2323                    )
2324                })?;
2325            let codec = tonic_prost::ProstCodec::default();
2326            let path = http::uri::PathAndQuery::from_static(
2327                "/Vine.CocoonService/update_workspace_folders",
2328            );
2329            let mut req = request.into_request();
2330            req.extensions_mut()
2331                .insert(
2332                    GrpcMethod::new("Vine.CocoonService", "update_workspace_folders"),
2333                );
2334            self.inner.unary(req, path, codec).await
2335        }
2336        /// Open Terminal - Open a new terminal
2337        pub async fn open_terminal(
2338            &mut self,
2339            request: impl tonic::IntoRequest<super::OpenTerminalRequest>,
2340        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2341            self.inner
2342                .ready()
2343                .await
2344                .map_err(|e| {
2345                    tonic::Status::unknown(
2346                        format!("Service was not ready: {}", e.into()),
2347                    )
2348                })?;
2349            let codec = tonic_prost::ProstCodec::default();
2350            let path = http::uri::PathAndQuery::from_static(
2351                "/Vine.CocoonService/open_terminal",
2352            );
2353            let mut req = request.into_request();
2354            req.extensions_mut()
2355                .insert(GrpcMethod::new("Vine.CocoonService", "open_terminal"));
2356            self.inner.unary(req, path, codec).await
2357        }
2358        /// Terminal Input - Send input to terminal
2359        pub async fn terminal_input(
2360            &mut self,
2361            request: impl tonic::IntoRequest<super::TerminalInputRequest>,
2362        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2363            self.inner
2364                .ready()
2365                .await
2366                .map_err(|e| {
2367                    tonic::Status::unknown(
2368                        format!("Service was not ready: {}", e.into()),
2369                    )
2370                })?;
2371            let codec = tonic_prost::ProstCodec::default();
2372            let path = http::uri::PathAndQuery::from_static(
2373                "/Vine.CocoonService/terminal_input",
2374            );
2375            let mut req = request.into_request();
2376            req.extensions_mut()
2377                .insert(GrpcMethod::new("Vine.CocoonService", "terminal_input"));
2378            self.inner.unary(req, path, codec).await
2379        }
2380        /// Close Terminal - Close a terminal
2381        pub async fn close_terminal(
2382            &mut self,
2383            request: impl tonic::IntoRequest<super::CloseTerminalRequest>,
2384        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2385            self.inner
2386                .ready()
2387                .await
2388                .map_err(|e| {
2389                    tonic::Status::unknown(
2390                        format!("Service was not ready: {}", e.into()),
2391                    )
2392                })?;
2393            let codec = tonic_prost::ProstCodec::default();
2394            let path = http::uri::PathAndQuery::from_static(
2395                "/Vine.CocoonService/close_terminal",
2396            );
2397            let mut req = request.into_request();
2398            req.extensions_mut()
2399                .insert(GrpcMethod::new("Vine.CocoonService", "close_terminal"));
2400            self.inner.unary(req, path, codec).await
2401        }
2402        /// Accept Terminal Opened - Notification: Terminal opened
2403        pub async fn accept_terminal_opened(
2404            &mut self,
2405            request: impl tonic::IntoRequest<super::TerminalOpenedNotification>,
2406        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2407            self.inner
2408                .ready()
2409                .await
2410                .map_err(|e| {
2411                    tonic::Status::unknown(
2412                        format!("Service was not ready: {}", e.into()),
2413                    )
2414                })?;
2415            let codec = tonic_prost::ProstCodec::default();
2416            let path = http::uri::PathAndQuery::from_static(
2417                "/Vine.CocoonService/accept_terminal_opened",
2418            );
2419            let mut req = request.into_request();
2420            req.extensions_mut()
2421                .insert(GrpcMethod::new("Vine.CocoonService", "accept_terminal_opened"));
2422            self.inner.unary(req, path, codec).await
2423        }
2424        /// Accept Terminal Closed - Notification: Terminal closed
2425        pub async fn accept_terminal_closed(
2426            &mut self,
2427            request: impl tonic::IntoRequest<super::TerminalClosedNotification>,
2428        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2429            self.inner
2430                .ready()
2431                .await
2432                .map_err(|e| {
2433                    tonic::Status::unknown(
2434                        format!("Service was not ready: {}", e.into()),
2435                    )
2436                })?;
2437            let codec = tonic_prost::ProstCodec::default();
2438            let path = http::uri::PathAndQuery::from_static(
2439                "/Vine.CocoonService/accept_terminal_closed",
2440            );
2441            let mut req = request.into_request();
2442            req.extensions_mut()
2443                .insert(GrpcMethod::new("Vine.CocoonService", "accept_terminal_closed"));
2444            self.inner.unary(req, path, codec).await
2445        }
2446        /// Accept Terminal Process ID - Notification: Terminal process ID
2447        pub async fn accept_terminal_process_id(
2448            &mut self,
2449            request: impl tonic::IntoRequest<super::TerminalProcessIdNotification>,
2450        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2451            self.inner
2452                .ready()
2453                .await
2454                .map_err(|e| {
2455                    tonic::Status::unknown(
2456                        format!("Service was not ready: {}", e.into()),
2457                    )
2458                })?;
2459            let codec = tonic_prost::ProstCodec::default();
2460            let path = http::uri::PathAndQuery::from_static(
2461                "/Vine.CocoonService/accept_terminal_process_id",
2462            );
2463            let mut req = request.into_request();
2464            req.extensions_mut()
2465                .insert(
2466                    GrpcMethod::new("Vine.CocoonService", "accept_terminal_process_id"),
2467                );
2468            self.inner.unary(req, path, codec).await
2469        }
2470        /// Accept Terminal Process Data - Notification: Terminal output
2471        pub async fn accept_terminal_process_data(
2472            &mut self,
2473            request: impl tonic::IntoRequest<super::TerminalDataNotification>,
2474        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2475            self.inner
2476                .ready()
2477                .await
2478                .map_err(|e| {
2479                    tonic::Status::unknown(
2480                        format!("Service was not ready: {}", e.into()),
2481                    )
2482                })?;
2483            let codec = tonic_prost::ProstCodec::default();
2484            let path = http::uri::PathAndQuery::from_static(
2485                "/Vine.CocoonService/accept_terminal_process_data",
2486            );
2487            let mut req = request.into_request();
2488            req.extensions_mut()
2489                .insert(
2490                    GrpcMethod::new("Vine.CocoonService", "accept_terminal_process_data"),
2491                );
2492            self.inner.unary(req, path, codec).await
2493        }
2494        /// Register Tree View Provider - Register a tree view provider
2495        pub async fn register_tree_view_provider(
2496            &mut self,
2497            request: impl tonic::IntoRequest<super::RegisterTreeViewProviderRequest>,
2498        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2499            self.inner
2500                .ready()
2501                .await
2502                .map_err(|e| {
2503                    tonic::Status::unknown(
2504                        format!("Service was not ready: {}", e.into()),
2505                    )
2506                })?;
2507            let codec = tonic_prost::ProstCodec::default();
2508            let path = http::uri::PathAndQuery::from_static(
2509                "/Vine.CocoonService/register_tree_view_provider",
2510            );
2511            let mut req = request.into_request();
2512            req.extensions_mut()
2513                .insert(
2514                    GrpcMethod::new("Vine.CocoonService", "register_tree_view_provider"),
2515                );
2516            self.inner.unary(req, path, codec).await
2517        }
2518        /// Get Tree Children - Request tree view children
2519        pub async fn get_tree_children(
2520            &mut self,
2521            request: impl tonic::IntoRequest<super::GetTreeChildrenRequest>,
2522        ) -> std::result::Result<
2523            tonic::Response<super::GetTreeChildrenResponse>,
2524            tonic::Status,
2525        > {
2526            self.inner
2527                .ready()
2528                .await
2529                .map_err(|e| {
2530                    tonic::Status::unknown(
2531                        format!("Service was not ready: {}", e.into()),
2532                    )
2533                })?;
2534            let codec = tonic_prost::ProstCodec::default();
2535            let path = http::uri::PathAndQuery::from_static(
2536                "/Vine.CocoonService/get_tree_children",
2537            );
2538            let mut req = request.into_request();
2539            req.extensions_mut()
2540                .insert(GrpcMethod::new("Vine.CocoonService", "get_tree_children"));
2541            self.inner.unary(req, path, codec).await
2542        }
2543        /// Register SCM Provider - Register source control provider
2544        pub async fn register_scm_provider(
2545            &mut self,
2546            request: impl tonic::IntoRequest<super::RegisterScmProviderRequest>,
2547        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2548            self.inner
2549                .ready()
2550                .await
2551                .map_err(|e| {
2552                    tonic::Status::unknown(
2553                        format!("Service was not ready: {}", e.into()),
2554                    )
2555                })?;
2556            let codec = tonic_prost::ProstCodec::default();
2557            let path = http::uri::PathAndQuery::from_static(
2558                "/Vine.CocoonService/register_scm_provider",
2559            );
2560            let mut req = request.into_request();
2561            req.extensions_mut()
2562                .insert(GrpcMethod::new("Vine.CocoonService", "register_scm_provider"));
2563            self.inner.unary(req, path, codec).await
2564        }
2565        /// Update SCM Group - Update SCM group
2566        pub async fn update_scm_group(
2567            &mut self,
2568            request: impl tonic::IntoRequest<super::UpdateScmGroupRequest>,
2569        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2570            self.inner
2571                .ready()
2572                .await
2573                .map_err(|e| {
2574                    tonic::Status::unknown(
2575                        format!("Service was not ready: {}", e.into()),
2576                    )
2577                })?;
2578            let codec = tonic_prost::ProstCodec::default();
2579            let path = http::uri::PathAndQuery::from_static(
2580                "/Vine.CocoonService/update_scm_group",
2581            );
2582            let mut req = request.into_request();
2583            req.extensions_mut()
2584                .insert(GrpcMethod::new("Vine.CocoonService", "update_scm_group"));
2585            self.inner.unary(req, path, codec).await
2586        }
2587        /// Execute Git - Execute git command
2588        pub async fn git_exec(
2589            &mut self,
2590            request: impl tonic::IntoRequest<super::GitExecRequest>,
2591        ) -> std::result::Result<
2592            tonic::Response<super::GitExecResponse>,
2593            tonic::Status,
2594        > {
2595            self.inner
2596                .ready()
2597                .await
2598                .map_err(|e| {
2599                    tonic::Status::unknown(
2600                        format!("Service was not ready: {}", e.into()),
2601                    )
2602                })?;
2603            let codec = tonic_prost::ProstCodec::default();
2604            let path = http::uri::PathAndQuery::from_static(
2605                "/Vine.CocoonService/git_exec",
2606            );
2607            let mut req = request.into_request();
2608            req.extensions_mut()
2609                .insert(GrpcMethod::new("Vine.CocoonService", "git_exec"));
2610            self.inner.unary(req, path, codec).await
2611        }
2612        /// Register Debug Adapter - Register debug adapter
2613        pub async fn register_debug_adapter(
2614            &mut self,
2615            request: impl tonic::IntoRequest<super::RegisterDebugAdapterRequest>,
2616        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2617            self.inner
2618                .ready()
2619                .await
2620                .map_err(|e| {
2621                    tonic::Status::unknown(
2622                        format!("Service was not ready: {}", e.into()),
2623                    )
2624                })?;
2625            let codec = tonic_prost::ProstCodec::default();
2626            let path = http::uri::PathAndQuery::from_static(
2627                "/Vine.CocoonService/register_debug_adapter",
2628            );
2629            let mut req = request.into_request();
2630            req.extensions_mut()
2631                .insert(GrpcMethod::new("Vine.CocoonService", "register_debug_adapter"));
2632            self.inner.unary(req, path, codec).await
2633        }
2634        /// Start Debugging - Start debug session
2635        pub async fn start_debugging(
2636            &mut self,
2637            request: impl tonic::IntoRequest<super::StartDebuggingRequest>,
2638        ) -> std::result::Result<
2639            tonic::Response<super::StartDebuggingResponse>,
2640            tonic::Status,
2641        > {
2642            self.inner
2643                .ready()
2644                .await
2645                .map_err(|e| {
2646                    tonic::Status::unknown(
2647                        format!("Service was not ready: {}", e.into()),
2648                    )
2649                })?;
2650            let codec = tonic_prost::ProstCodec::default();
2651            let path = http::uri::PathAndQuery::from_static(
2652                "/Vine.CocoonService/start_debugging",
2653            );
2654            let mut req = request.into_request();
2655            req.extensions_mut()
2656                .insert(GrpcMethod::new("Vine.CocoonService", "start_debugging"));
2657            self.inner.unary(req, path, codec).await
2658        }
2659        /// Participate in Save - Extension participates in save
2660        pub async fn participate_in_save(
2661            &mut self,
2662            request: impl tonic::IntoRequest<super::ParticipateInSaveRequest>,
2663        ) -> std::result::Result<
2664            tonic::Response<super::ParticipateInSaveResponse>,
2665            tonic::Status,
2666        > {
2667            self.inner
2668                .ready()
2669                .await
2670                .map_err(|e| {
2671                    tonic::Status::unknown(
2672                        format!("Service was not ready: {}", e.into()),
2673                    )
2674                })?;
2675            let codec = tonic_prost::ProstCodec::default();
2676            let path = http::uri::PathAndQuery::from_static(
2677                "/Vine.CocoonService/participate_in_save",
2678            );
2679            let mut req = request.into_request();
2680            req.extensions_mut()
2681                .insert(GrpcMethod::new("Vine.CocoonService", "participate_in_save"));
2682            self.inner.unary(req, path, codec).await
2683        }
2684        /// Get Secret - Retrieve a secret from storage
2685        pub async fn get_secret(
2686            &mut self,
2687            request: impl tonic::IntoRequest<super::GetSecretRequest>,
2688        ) -> std::result::Result<
2689            tonic::Response<super::GetSecretResponse>,
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/get_secret",
2703            );
2704            let mut req = request.into_request();
2705            req.extensions_mut()
2706                .insert(GrpcMethod::new("Vine.CocoonService", "get_secret"));
2707            self.inner.unary(req, path, codec).await
2708        }
2709        /// Store Secret - Store a secret in storage
2710        pub async fn store_secret(
2711            &mut self,
2712            request: impl tonic::IntoRequest<super::StoreSecretRequest>,
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/store_secret",
2725            );
2726            let mut req = request.into_request();
2727            req.extensions_mut()
2728                .insert(GrpcMethod::new("Vine.CocoonService", "store_secret"));
2729            self.inner.unary(req, path, codec).await
2730        }
2731        /// Delete Secret - Delete a secret from storage
2732        pub async fn delete_secret(
2733            &mut self,
2734            request: impl tonic::IntoRequest<super::DeleteSecretRequest>,
2735        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status> {
2736            self.inner
2737                .ready()
2738                .await
2739                .map_err(|e| {
2740                    tonic::Status::unknown(
2741                        format!("Service was not ready: {}", e.into()),
2742                    )
2743                })?;
2744            let codec = tonic_prost::ProstCodec::default();
2745            let path = http::uri::PathAndQuery::from_static(
2746                "/Vine.CocoonService/delete_secret",
2747            );
2748            let mut req = request.into_request();
2749            req.extensions_mut()
2750                .insert(GrpcMethod::new("Vine.CocoonService", "delete_secret"));
2751            self.inner.unary(req, path, codec).await
2752        }
2753    }
2754}
2755/// Generated server implementations.
2756pub mod cocoon_service_server {
2757    #![allow(
2758        unused_variables,
2759        dead_code,
2760        missing_docs,
2761        clippy::wildcard_imports,
2762        clippy::let_unit_value,
2763    )]
2764    use tonic::codegen::*;
2765    /// Generated trait containing gRPC methods that should be implemented for use with CocoonServiceServer.
2766    #[async_trait]
2767    pub trait CocoonService: std::marker::Send + std::marker::Sync + 'static {
2768        /// A generic request-response method for Mountain to call a function on Cocoon.
2769        async fn process_mountain_request(
2770            &self,
2771            request: tonic::Request<super::GenericRequest>,
2772        ) -> std::result::Result<tonic::Response<super::GenericResponse>, tonic::Status>;
2773        /// A generic fire-and-forget method for Mountain to send a notification to Cocoon.
2774        async fn send_mountain_notification(
2775            &self,
2776            request: tonic::Request<super::GenericNotification>,
2777        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2778        /// A method for Mountain to request that Cocoon cancel a long-running operation.
2779        async fn cancel_operation(
2780            &self,
2781            request: tonic::Request<super::CancelOperationRequest>,
2782        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2783        /// Handshake - Called by Cocoon to signal readiness
2784        async fn initial_handshake(
2785            &self,
2786            request: tonic::Request<super::Empty>,
2787        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2788        /// Initialize Extension Host - Mountain sends initialization data to Cocoon
2789        async fn init_extension_host(
2790            &self,
2791            request: tonic::Request<super::InitExtensionHostRequest>,
2792        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2793        /// Register Command - Cocoon registers an extension command
2794        async fn register_command(
2795            &self,
2796            request: tonic::Request<super::RegisterCommandRequest>,
2797        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2798        /// Execute Contributed Command - Mountain executes an extension command
2799        async fn execute_contributed_command(
2800            &self,
2801            request: tonic::Request<super::ExecuteCommandRequest>,
2802        ) -> std::result::Result<
2803            tonic::Response<super::ExecuteCommandResponse>,
2804            tonic::Status,
2805        >;
2806        /// Unregister Command - Unregister a previously registered command
2807        async fn unregister_command(
2808            &self,
2809            request: tonic::Request<super::UnregisterCommandRequest>,
2810        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2811        /// Register Hover Provider - Register a hover provider
2812        async fn register_hover_provider(
2813            &self,
2814            request: tonic::Request<super::RegisterProviderRequest>,
2815        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2816        /// Provide Hover - Request hover information
2817        async fn provide_hover(
2818            &self,
2819            request: tonic::Request<super::ProvideHoverRequest>,
2820        ) -> std::result::Result<
2821            tonic::Response<super::ProvideHoverResponse>,
2822            tonic::Status,
2823        >;
2824        /// Register Completion Item Provider - Register a completion provider
2825        async fn register_completion_item_provider(
2826            &self,
2827            request: tonic::Request<super::RegisterProviderRequest>,
2828        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2829        /// Provide Completion Items - Request completion items
2830        async fn provide_completion_items(
2831            &self,
2832            request: tonic::Request<super::ProvideCompletionItemsRequest>,
2833        ) -> std::result::Result<
2834            tonic::Response<super::ProvideCompletionItemsResponse>,
2835            tonic::Status,
2836        >;
2837        /// Register Definition Provider - Register a definition provider
2838        async fn register_definition_provider(
2839            &self,
2840            request: tonic::Request<super::RegisterProviderRequest>,
2841        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2842        /// Provide Definition - Request definition location
2843        async fn provide_definition(
2844            &self,
2845            request: tonic::Request<super::ProvideDefinitionRequest>,
2846        ) -> std::result::Result<
2847            tonic::Response<super::ProvideDefinitionResponse>,
2848            tonic::Status,
2849        >;
2850        /// Register Reference Provider - Register a reference provider
2851        async fn register_reference_provider(
2852            &self,
2853            request: tonic::Request<super::RegisterProviderRequest>,
2854        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2855        /// Provide References - Request references
2856        async fn provide_references(
2857            &self,
2858            request: tonic::Request<super::ProvideReferencesRequest>,
2859        ) -> std::result::Result<
2860            tonic::Response<super::ProvideReferencesResponse>,
2861            tonic::Status,
2862        >;
2863        /// Register Code Actions Provider - Register code actions provider
2864        async fn register_code_actions_provider(
2865            &self,
2866            request: tonic::Request<super::RegisterProviderRequest>,
2867        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2868        /// Provide Code Actions - Request code actions
2869        async fn provide_code_actions(
2870            &self,
2871            request: tonic::Request<super::ProvideCodeActionsRequest>,
2872        ) -> std::result::Result<
2873            tonic::Response<super::ProvideCodeActionsResponse>,
2874            tonic::Status,
2875        >;
2876        /// Show Text Document - Open a text document
2877        async fn show_text_document(
2878            &self,
2879            request: tonic::Request<super::ShowTextDocumentRequest>,
2880        ) -> std::result::Result<
2881            tonic::Response<super::ShowTextDocumentResponse>,
2882            tonic::Status,
2883        >;
2884        /// Show Information Message - Display an info message
2885        async fn show_information_message(
2886            &self,
2887            request: tonic::Request<super::ShowMessageRequest>,
2888        ) -> std::result::Result<
2889            tonic::Response<super::ShowMessageResponse>,
2890            tonic::Status,
2891        >;
2892        /// Show Warning Message - Display a warning message
2893        async fn show_warning_message(
2894            &self,
2895            request: tonic::Request<super::ShowMessageRequest>,
2896        ) -> std::result::Result<
2897            tonic::Response<super::ShowMessageResponse>,
2898            tonic::Status,
2899        >;
2900        /// Show Error Message - Display an error message
2901        async fn show_error_message(
2902            &self,
2903            request: tonic::Request<super::ShowMessageRequest>,
2904        ) -> std::result::Result<
2905            tonic::Response<super::ShowMessageResponse>,
2906            tonic::Status,
2907        >;
2908        /// Create Status Bar Item - Create a status bar item
2909        async fn create_status_bar_item(
2910            &self,
2911            request: tonic::Request<super::CreateStatusBarItemRequest>,
2912        ) -> std::result::Result<
2913            tonic::Response<super::CreateStatusBarItemResponse>,
2914            tonic::Status,
2915        >;
2916        /// Set Status Bar Text - Set status bar text
2917        async fn set_status_bar_text(
2918            &self,
2919            request: tonic::Request<super::SetStatusBarTextRequest>,
2920        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2921        /// Create Webview Panel - Create a new webview panel
2922        async fn create_webview_panel(
2923            &self,
2924            request: tonic::Request<super::CreateWebviewPanelRequest>,
2925        ) -> std::result::Result<
2926            tonic::Response<super::CreateWebviewPanelResponse>,
2927            tonic::Status,
2928        >;
2929        /// Set Webview HTML - Update webview HTML content
2930        async fn set_webview_html(
2931            &self,
2932            request: tonic::Request<super::SetWebviewHtmlRequest>,
2933        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2934        /// On Did Receive Message - Receive message from webview
2935        async fn on_did_receive_message(
2936            &self,
2937            request: tonic::Request<super::OnDidReceiveMessageRequest>,
2938        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2939        /// Read File - Read file contents
2940        async fn read_file(
2941            &self,
2942            request: tonic::Request<super::ReadFileRequest>,
2943        ) -> std::result::Result<
2944            tonic::Response<super::ReadFileResponse>,
2945            tonic::Status,
2946        >;
2947        /// Write File - Write file contents
2948        async fn write_file(
2949            &self,
2950            request: tonic::Request<super::WriteFileRequest>,
2951        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2952        /// Stat - Get file metadata
2953        async fn stat(
2954            &self,
2955            request: tonic::Request<super::StatRequest>,
2956        ) -> std::result::Result<tonic::Response<super::StatResponse>, tonic::Status>;
2957        /// Read Directory - List directory contents
2958        async fn readdir(
2959            &self,
2960            request: tonic::Request<super::ReaddirRequest>,
2961        ) -> std::result::Result<tonic::Response<super::ReaddirResponse>, tonic::Status>;
2962        /// Watch File - Watch file for changes
2963        async fn watch_file(
2964            &self,
2965            request: tonic::Request<super::WatchFileRequest>,
2966        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
2967        /// Find Files - Search for files
2968        async fn find_files(
2969            &self,
2970            request: tonic::Request<super::FindFilesRequest>,
2971        ) -> std::result::Result<
2972            tonic::Response<super::FindFilesResponse>,
2973            tonic::Status,
2974        >;
2975        /// Find Text in Files - Search for text across files
2976        async fn find_text_in_files(
2977            &self,
2978            request: tonic::Request<super::FindTextInFilesRequest>,
2979        ) -> std::result::Result<
2980            tonic::Response<super::FindTextInFilesResponse>,
2981            tonic::Status,
2982        >;
2983        /// Open Document - Open a document
2984        async fn open_document(
2985            &self,
2986            request: tonic::Request<super::OpenDocumentRequest>,
2987        ) -> std::result::Result<
2988            tonic::Response<super::OpenDocumentResponse>,
2989            tonic::Status,
2990        >;
2991        /// Save All - Save all open documents
2992        async fn save_all(
2993            &self,
2994            request: tonic::Request<super::SaveAllRequest>,
2995        ) -> std::result::Result<tonic::Response<super::SaveAllResponse>, tonic::Status>;
2996        /// Apply Edit - Apply a text edit to a document
2997        async fn apply_edit(
2998            &self,
2999            request: tonic::Request<super::ApplyEditRequest>,
3000        ) -> std::result::Result<
3001            tonic::Response<super::ApplyEditResponse>,
3002            tonic::Status,
3003        >;
3004        /// Update Configuration - Notify of configuration changes
3005        async fn update_configuration(
3006            &self,
3007            request: tonic::Request<super::UpdateConfigurationRequest>,
3008        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3009        /// Update Workspace Folders - Update workspace folders
3010        async fn update_workspace_folders(
3011            &self,
3012            request: tonic::Request<super::UpdateWorkspaceFoldersRequest>,
3013        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3014        /// Open Terminal - Open a new terminal
3015        async fn open_terminal(
3016            &self,
3017            request: tonic::Request<super::OpenTerminalRequest>,
3018        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3019        /// Terminal Input - Send input to terminal
3020        async fn terminal_input(
3021            &self,
3022            request: tonic::Request<super::TerminalInputRequest>,
3023        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3024        /// Close Terminal - Close a terminal
3025        async fn close_terminal(
3026            &self,
3027            request: tonic::Request<super::CloseTerminalRequest>,
3028        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3029        /// Accept Terminal Opened - Notification: Terminal opened
3030        async fn accept_terminal_opened(
3031            &self,
3032            request: tonic::Request<super::TerminalOpenedNotification>,
3033        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3034        /// Accept Terminal Closed - Notification: Terminal closed
3035        async fn accept_terminal_closed(
3036            &self,
3037            request: tonic::Request<super::TerminalClosedNotification>,
3038        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3039        /// Accept Terminal Process ID - Notification: Terminal process ID
3040        async fn accept_terminal_process_id(
3041            &self,
3042            request: tonic::Request<super::TerminalProcessIdNotification>,
3043        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3044        /// Accept Terminal Process Data - Notification: Terminal output
3045        async fn accept_terminal_process_data(
3046            &self,
3047            request: tonic::Request<super::TerminalDataNotification>,
3048        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3049        /// Register Tree View Provider - Register a tree view provider
3050        async fn register_tree_view_provider(
3051            &self,
3052            request: tonic::Request<super::RegisterTreeViewProviderRequest>,
3053        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3054        /// Get Tree Children - Request tree view children
3055        async fn get_tree_children(
3056            &self,
3057            request: tonic::Request<super::GetTreeChildrenRequest>,
3058        ) -> std::result::Result<
3059            tonic::Response<super::GetTreeChildrenResponse>,
3060            tonic::Status,
3061        >;
3062        /// Register SCM Provider - Register source control provider
3063        async fn register_scm_provider(
3064            &self,
3065            request: tonic::Request<super::RegisterScmProviderRequest>,
3066        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3067        /// Update SCM Group - Update SCM group
3068        async fn update_scm_group(
3069            &self,
3070            request: tonic::Request<super::UpdateScmGroupRequest>,
3071        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3072        /// Execute Git - Execute git command
3073        async fn git_exec(
3074            &self,
3075            request: tonic::Request<super::GitExecRequest>,
3076        ) -> std::result::Result<tonic::Response<super::GitExecResponse>, tonic::Status>;
3077        /// Register Debug Adapter - Register debug adapter
3078        async fn register_debug_adapter(
3079            &self,
3080            request: tonic::Request<super::RegisterDebugAdapterRequest>,
3081        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3082        /// Start Debugging - Start debug session
3083        async fn start_debugging(
3084            &self,
3085            request: tonic::Request<super::StartDebuggingRequest>,
3086        ) -> std::result::Result<
3087            tonic::Response<super::StartDebuggingResponse>,
3088            tonic::Status,
3089        >;
3090        /// Participate in Save - Extension participates in save
3091        async fn participate_in_save(
3092            &self,
3093            request: tonic::Request<super::ParticipateInSaveRequest>,
3094        ) -> std::result::Result<
3095            tonic::Response<super::ParticipateInSaveResponse>,
3096            tonic::Status,
3097        >;
3098        /// Get Secret - Retrieve a secret from storage
3099        async fn get_secret(
3100            &self,
3101            request: tonic::Request<super::GetSecretRequest>,
3102        ) -> std::result::Result<
3103            tonic::Response<super::GetSecretResponse>,
3104            tonic::Status,
3105        >;
3106        /// Store Secret - Store a secret in storage
3107        async fn store_secret(
3108            &self,
3109            request: tonic::Request<super::StoreSecretRequest>,
3110        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3111        /// Delete Secret - Delete a secret from storage
3112        async fn delete_secret(
3113            &self,
3114            request: tonic::Request<super::DeleteSecretRequest>,
3115        ) -> std::result::Result<tonic::Response<super::Empty>, tonic::Status>;
3116    }
3117    /// Service running on the Cocoon sidecar, listening for requests from Mountain.
3118    #[derive(Debug)]
3119    pub struct CocoonServiceServer<T> {
3120        inner: Arc<T>,
3121        accept_compression_encodings: EnabledCompressionEncodings,
3122        send_compression_encodings: EnabledCompressionEncodings,
3123        max_decoding_message_size: Option<usize>,
3124        max_encoding_message_size: Option<usize>,
3125    }
3126    impl<T> CocoonServiceServer<T> {
3127        pub fn new(inner: T) -> Self {
3128            Self::from_arc(Arc::new(inner))
3129        }
3130        pub fn from_arc(inner: Arc<T>) -> Self {
3131            Self {
3132                inner,
3133                accept_compression_encodings: Default::default(),
3134                send_compression_encodings: Default::default(),
3135                max_decoding_message_size: None,
3136                max_encoding_message_size: None,
3137            }
3138        }
3139        pub fn with_interceptor<F>(
3140            inner: T,
3141            interceptor: F,
3142        ) -> InterceptedService<Self, F>
3143        where
3144            F: tonic::service::Interceptor,
3145        {
3146            InterceptedService::new(Self::new(inner), interceptor)
3147        }
3148        /// Enable decompressing requests with the given encoding.
3149        #[must_use]
3150        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
3151            self.accept_compression_encodings.enable(encoding);
3152            self
3153        }
3154        /// Compress responses with the given encoding, if the client supports it.
3155        #[must_use]
3156        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
3157            self.send_compression_encodings.enable(encoding);
3158            self
3159        }
3160        /// Limits the maximum size of a decoded message.
3161        ///
3162        /// Default: `4MB`
3163        #[must_use]
3164        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
3165            self.max_decoding_message_size = Some(limit);
3166            self
3167        }
3168        /// Limits the maximum size of an encoded message.
3169        ///
3170        /// Default: `usize::MAX`
3171        #[must_use]
3172        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
3173            self.max_encoding_message_size = Some(limit);
3174            self
3175        }
3176    }
3177    impl<T, B> tonic::codegen::Service<http::Request<B>> for CocoonServiceServer<T>
3178    where
3179        T: CocoonService,
3180        B: Body + std::marker::Send + 'static,
3181        B::Error: Into<StdError> + std::marker::Send + 'static,
3182    {
3183        type Response = http::Response<tonic::body::Body>;
3184        type Error = std::convert::Infallible;
3185        type Future = BoxFuture<Self::Response, Self::Error>;
3186        fn poll_ready(
3187            &mut self,
3188            _cx: &mut Context<'_>,
3189        ) -> Poll<std::result::Result<(), Self::Error>> {
3190            Poll::Ready(Ok(()))
3191        }
3192        fn call(&mut self, req: http::Request<B>) -> Self::Future {
3193            match req.uri().path() {
3194                "/Vine.CocoonService/ProcessMountainRequest" => {
3195                    #[allow(non_camel_case_types)]
3196                    struct ProcessMountainRequestSvc<T: CocoonService>(pub Arc<T>);
3197                    impl<
3198                        T: CocoonService,
3199                    > tonic::server::UnaryService<super::GenericRequest>
3200                    for ProcessMountainRequestSvc<T> {
3201                        type Response = super::GenericResponse;
3202                        type Future = BoxFuture<
3203                            tonic::Response<Self::Response>,
3204                            tonic::Status,
3205                        >;
3206                        fn call(
3207                            &mut self,
3208                            request: tonic::Request<super::GenericRequest>,
3209                        ) -> Self::Future {
3210                            let inner = Arc::clone(&self.0);
3211                            let fut = async move {
3212                                <T as CocoonService>::process_mountain_request(
3213                                        &inner,
3214                                        request,
3215                                    )
3216                                    .await
3217                            };
3218                            Box::pin(fut)
3219                        }
3220                    }
3221                    let accept_compression_encodings = self.accept_compression_encodings;
3222                    let send_compression_encodings = self.send_compression_encodings;
3223                    let max_decoding_message_size = self.max_decoding_message_size;
3224                    let max_encoding_message_size = self.max_encoding_message_size;
3225                    let inner = self.inner.clone();
3226                    let fut = async move {
3227                        let method = ProcessMountainRequestSvc(inner);
3228                        let codec = tonic_prost::ProstCodec::default();
3229                        let mut grpc = tonic::server::Grpc::new(codec)
3230                            .apply_compression_config(
3231                                accept_compression_encodings,
3232                                send_compression_encodings,
3233                            )
3234                            .apply_max_message_size_config(
3235                                max_decoding_message_size,
3236                                max_encoding_message_size,
3237                            );
3238                        let res = grpc.unary(method, req).await;
3239                        Ok(res)
3240                    };
3241                    Box::pin(fut)
3242                }
3243                "/Vine.CocoonService/SendMountainNotification" => {
3244                    #[allow(non_camel_case_types)]
3245                    struct SendMountainNotificationSvc<T: CocoonService>(pub Arc<T>);
3246                    impl<
3247                        T: CocoonService,
3248                    > tonic::server::UnaryService<super::GenericNotification>
3249                    for SendMountainNotificationSvc<T> {
3250                        type Response = super::Empty;
3251                        type Future = BoxFuture<
3252                            tonic::Response<Self::Response>,
3253                            tonic::Status,
3254                        >;
3255                        fn call(
3256                            &mut self,
3257                            request: tonic::Request<super::GenericNotification>,
3258                        ) -> Self::Future {
3259                            let inner = Arc::clone(&self.0);
3260                            let fut = async move {
3261                                <T as CocoonService>::send_mountain_notification(
3262                                        &inner,
3263                                        request,
3264                                    )
3265                                    .await
3266                            };
3267                            Box::pin(fut)
3268                        }
3269                    }
3270                    let accept_compression_encodings = self.accept_compression_encodings;
3271                    let send_compression_encodings = self.send_compression_encodings;
3272                    let max_decoding_message_size = self.max_decoding_message_size;
3273                    let max_encoding_message_size = self.max_encoding_message_size;
3274                    let inner = self.inner.clone();
3275                    let fut = async move {
3276                        let method = SendMountainNotificationSvc(inner);
3277                        let codec = tonic_prost::ProstCodec::default();
3278                        let mut grpc = tonic::server::Grpc::new(codec)
3279                            .apply_compression_config(
3280                                accept_compression_encodings,
3281                                send_compression_encodings,
3282                            )
3283                            .apply_max_message_size_config(
3284                                max_decoding_message_size,
3285                                max_encoding_message_size,
3286                            );
3287                        let res = grpc.unary(method, req).await;
3288                        Ok(res)
3289                    };
3290                    Box::pin(fut)
3291                }
3292                "/Vine.CocoonService/CancelOperation" => {
3293                    #[allow(non_camel_case_types)]
3294                    struct CancelOperationSvc<T: CocoonService>(pub Arc<T>);
3295                    impl<
3296                        T: CocoonService,
3297                    > tonic::server::UnaryService<super::CancelOperationRequest>
3298                    for CancelOperationSvc<T> {
3299                        type Response = super::Empty;
3300                        type Future = BoxFuture<
3301                            tonic::Response<Self::Response>,
3302                            tonic::Status,
3303                        >;
3304                        fn call(
3305                            &mut self,
3306                            request: tonic::Request<super::CancelOperationRequest>,
3307                        ) -> Self::Future {
3308                            let inner = Arc::clone(&self.0);
3309                            let fut = async move {
3310                                <T as CocoonService>::cancel_operation(&inner, request)
3311                                    .await
3312                            };
3313                            Box::pin(fut)
3314                        }
3315                    }
3316                    let accept_compression_encodings = self.accept_compression_encodings;
3317                    let send_compression_encodings = self.send_compression_encodings;
3318                    let max_decoding_message_size = self.max_decoding_message_size;
3319                    let max_encoding_message_size = self.max_encoding_message_size;
3320                    let inner = self.inner.clone();
3321                    let fut = async move {
3322                        let method = CancelOperationSvc(inner);
3323                        let codec = tonic_prost::ProstCodec::default();
3324                        let mut grpc = tonic::server::Grpc::new(codec)
3325                            .apply_compression_config(
3326                                accept_compression_encodings,
3327                                send_compression_encodings,
3328                            )
3329                            .apply_max_message_size_config(
3330                                max_decoding_message_size,
3331                                max_encoding_message_size,
3332                            );
3333                        let res = grpc.unary(method, req).await;
3334                        Ok(res)
3335                    };
3336                    Box::pin(fut)
3337                }
3338                "/Vine.CocoonService/initial_handshake" => {
3339                    #[allow(non_camel_case_types)]
3340                    struct initial_handshakeSvc<T: CocoonService>(pub Arc<T>);
3341                    impl<T: CocoonService> tonic::server::UnaryService<super::Empty>
3342                    for initial_handshakeSvc<T> {
3343                        type Response = super::Empty;
3344                        type Future = BoxFuture<
3345                            tonic::Response<Self::Response>,
3346                            tonic::Status,
3347                        >;
3348                        fn call(
3349                            &mut self,
3350                            request: tonic::Request<super::Empty>,
3351                        ) -> Self::Future {
3352                            let inner = Arc::clone(&self.0);
3353                            let fut = async move {
3354                                <T as CocoonService>::initial_handshake(&inner, request)
3355                                    .await
3356                            };
3357                            Box::pin(fut)
3358                        }
3359                    }
3360                    let accept_compression_encodings = self.accept_compression_encodings;
3361                    let send_compression_encodings = self.send_compression_encodings;
3362                    let max_decoding_message_size = self.max_decoding_message_size;
3363                    let max_encoding_message_size = self.max_encoding_message_size;
3364                    let inner = self.inner.clone();
3365                    let fut = async move {
3366                        let method = initial_handshakeSvc(inner);
3367                        let codec = tonic_prost::ProstCodec::default();
3368                        let mut grpc = tonic::server::Grpc::new(codec)
3369                            .apply_compression_config(
3370                                accept_compression_encodings,
3371                                send_compression_encodings,
3372                            )
3373                            .apply_max_message_size_config(
3374                                max_decoding_message_size,
3375                                max_encoding_message_size,
3376                            );
3377                        let res = grpc.unary(method, req).await;
3378                        Ok(res)
3379                    };
3380                    Box::pin(fut)
3381                }
3382                "/Vine.CocoonService/init_extension_host" => {
3383                    #[allow(non_camel_case_types)]
3384                    struct init_extension_hostSvc<T: CocoonService>(pub Arc<T>);
3385                    impl<
3386                        T: CocoonService,
3387                    > tonic::server::UnaryService<super::InitExtensionHostRequest>
3388                    for init_extension_hostSvc<T> {
3389                        type Response = super::Empty;
3390                        type Future = BoxFuture<
3391                            tonic::Response<Self::Response>,
3392                            tonic::Status,
3393                        >;
3394                        fn call(
3395                            &mut self,
3396                            request: tonic::Request<super::InitExtensionHostRequest>,
3397                        ) -> Self::Future {
3398                            let inner = Arc::clone(&self.0);
3399                            let fut = async move {
3400                                <T as CocoonService>::init_extension_host(&inner, request)
3401                                    .await
3402                            };
3403                            Box::pin(fut)
3404                        }
3405                    }
3406                    let accept_compression_encodings = self.accept_compression_encodings;
3407                    let send_compression_encodings = self.send_compression_encodings;
3408                    let max_decoding_message_size = self.max_decoding_message_size;
3409                    let max_encoding_message_size = self.max_encoding_message_size;
3410                    let inner = self.inner.clone();
3411                    let fut = async move {
3412                        let method = init_extension_hostSvc(inner);
3413                        let codec = tonic_prost::ProstCodec::default();
3414                        let mut grpc = tonic::server::Grpc::new(codec)
3415                            .apply_compression_config(
3416                                accept_compression_encodings,
3417                                send_compression_encodings,
3418                            )
3419                            .apply_max_message_size_config(
3420                                max_decoding_message_size,
3421                                max_encoding_message_size,
3422                            );
3423                        let res = grpc.unary(method, req).await;
3424                        Ok(res)
3425                    };
3426                    Box::pin(fut)
3427                }
3428                "/Vine.CocoonService/register_command" => {
3429                    #[allow(non_camel_case_types)]
3430                    struct register_commandSvc<T: CocoonService>(pub Arc<T>);
3431                    impl<
3432                        T: CocoonService,
3433                    > tonic::server::UnaryService<super::RegisterCommandRequest>
3434                    for register_commandSvc<T> {
3435                        type Response = super::Empty;
3436                        type Future = BoxFuture<
3437                            tonic::Response<Self::Response>,
3438                            tonic::Status,
3439                        >;
3440                        fn call(
3441                            &mut self,
3442                            request: tonic::Request<super::RegisterCommandRequest>,
3443                        ) -> Self::Future {
3444                            let inner = Arc::clone(&self.0);
3445                            let fut = async move {
3446                                <T as CocoonService>::register_command(&inner, request)
3447                                    .await
3448                            };
3449                            Box::pin(fut)
3450                        }
3451                    }
3452                    let accept_compression_encodings = self.accept_compression_encodings;
3453                    let send_compression_encodings = self.send_compression_encodings;
3454                    let max_decoding_message_size = self.max_decoding_message_size;
3455                    let max_encoding_message_size = self.max_encoding_message_size;
3456                    let inner = self.inner.clone();
3457                    let fut = async move {
3458                        let method = register_commandSvc(inner);
3459                        let codec = tonic_prost::ProstCodec::default();
3460                        let mut grpc = tonic::server::Grpc::new(codec)
3461                            .apply_compression_config(
3462                                accept_compression_encodings,
3463                                send_compression_encodings,
3464                            )
3465                            .apply_max_message_size_config(
3466                                max_decoding_message_size,
3467                                max_encoding_message_size,
3468                            );
3469                        let res = grpc.unary(method, req).await;
3470                        Ok(res)
3471                    };
3472                    Box::pin(fut)
3473                }
3474                "/Vine.CocoonService/execute_contributed_command" => {
3475                    #[allow(non_camel_case_types)]
3476                    struct execute_contributed_commandSvc<T: CocoonService>(pub Arc<T>);
3477                    impl<
3478                        T: CocoonService,
3479                    > tonic::server::UnaryService<super::ExecuteCommandRequest>
3480                    for execute_contributed_commandSvc<T> {
3481                        type Response = super::ExecuteCommandResponse;
3482                        type Future = BoxFuture<
3483                            tonic::Response<Self::Response>,
3484                            tonic::Status,
3485                        >;
3486                        fn call(
3487                            &mut self,
3488                            request: tonic::Request<super::ExecuteCommandRequest>,
3489                        ) -> Self::Future {
3490                            let inner = Arc::clone(&self.0);
3491                            let fut = async move {
3492                                <T as CocoonService>::execute_contributed_command(
3493                                        &inner,
3494                                        request,
3495                                    )
3496                                    .await
3497                            };
3498                            Box::pin(fut)
3499                        }
3500                    }
3501                    let accept_compression_encodings = self.accept_compression_encodings;
3502                    let send_compression_encodings = self.send_compression_encodings;
3503                    let max_decoding_message_size = self.max_decoding_message_size;
3504                    let max_encoding_message_size = self.max_encoding_message_size;
3505                    let inner = self.inner.clone();
3506                    let fut = async move {
3507                        let method = execute_contributed_commandSvc(inner);
3508                        let codec = tonic_prost::ProstCodec::default();
3509                        let mut grpc = tonic::server::Grpc::new(codec)
3510                            .apply_compression_config(
3511                                accept_compression_encodings,
3512                                send_compression_encodings,
3513                            )
3514                            .apply_max_message_size_config(
3515                                max_decoding_message_size,
3516                                max_encoding_message_size,
3517                            );
3518                        let res = grpc.unary(method, req).await;
3519                        Ok(res)
3520                    };
3521                    Box::pin(fut)
3522                }
3523                "/Vine.CocoonService/unregister_command" => {
3524                    #[allow(non_camel_case_types)]
3525                    struct unregister_commandSvc<T: CocoonService>(pub Arc<T>);
3526                    impl<
3527                        T: CocoonService,
3528                    > tonic::server::UnaryService<super::UnregisterCommandRequest>
3529                    for unregister_commandSvc<T> {
3530                        type Response = super::Empty;
3531                        type Future = BoxFuture<
3532                            tonic::Response<Self::Response>,
3533                            tonic::Status,
3534                        >;
3535                        fn call(
3536                            &mut self,
3537                            request: tonic::Request<super::UnregisterCommandRequest>,
3538                        ) -> Self::Future {
3539                            let inner = Arc::clone(&self.0);
3540                            let fut = async move {
3541                                <T as CocoonService>::unregister_command(&inner, request)
3542                                    .await
3543                            };
3544                            Box::pin(fut)
3545                        }
3546                    }
3547                    let accept_compression_encodings = self.accept_compression_encodings;
3548                    let send_compression_encodings = self.send_compression_encodings;
3549                    let max_decoding_message_size = self.max_decoding_message_size;
3550                    let max_encoding_message_size = self.max_encoding_message_size;
3551                    let inner = self.inner.clone();
3552                    let fut = async move {
3553                        let method = unregister_commandSvc(inner);
3554                        let codec = tonic_prost::ProstCodec::default();
3555                        let mut grpc = tonic::server::Grpc::new(codec)
3556                            .apply_compression_config(
3557                                accept_compression_encodings,
3558                                send_compression_encodings,
3559                            )
3560                            .apply_max_message_size_config(
3561                                max_decoding_message_size,
3562                                max_encoding_message_size,
3563                            );
3564                        let res = grpc.unary(method, req).await;
3565                        Ok(res)
3566                    };
3567                    Box::pin(fut)
3568                }
3569                "/Vine.CocoonService/register_hover_provider" => {
3570                    #[allow(non_camel_case_types)]
3571                    struct register_hover_providerSvc<T: CocoonService>(pub Arc<T>);
3572                    impl<
3573                        T: CocoonService,
3574                    > tonic::server::UnaryService<super::RegisterProviderRequest>
3575                    for register_hover_providerSvc<T> {
3576                        type Response = super::Empty;
3577                        type Future = BoxFuture<
3578                            tonic::Response<Self::Response>,
3579                            tonic::Status,
3580                        >;
3581                        fn call(
3582                            &mut self,
3583                            request: tonic::Request<super::RegisterProviderRequest>,
3584                        ) -> Self::Future {
3585                            let inner = Arc::clone(&self.0);
3586                            let fut = async move {
3587                                <T as CocoonService>::register_hover_provider(
3588                                        &inner,
3589                                        request,
3590                                    )
3591                                    .await
3592                            };
3593                            Box::pin(fut)
3594                        }
3595                    }
3596                    let accept_compression_encodings = self.accept_compression_encodings;
3597                    let send_compression_encodings = self.send_compression_encodings;
3598                    let max_decoding_message_size = self.max_decoding_message_size;
3599                    let max_encoding_message_size = self.max_encoding_message_size;
3600                    let inner = self.inner.clone();
3601                    let fut = async move {
3602                        let method = register_hover_providerSvc(inner);
3603                        let codec = tonic_prost::ProstCodec::default();
3604                        let mut grpc = tonic::server::Grpc::new(codec)
3605                            .apply_compression_config(
3606                                accept_compression_encodings,
3607                                send_compression_encodings,
3608                            )
3609                            .apply_max_message_size_config(
3610                                max_decoding_message_size,
3611                                max_encoding_message_size,
3612                            );
3613                        let res = grpc.unary(method, req).await;
3614                        Ok(res)
3615                    };
3616                    Box::pin(fut)
3617                }
3618                "/Vine.CocoonService/provide_hover" => {
3619                    #[allow(non_camel_case_types)]
3620                    struct provide_hoverSvc<T: CocoonService>(pub Arc<T>);
3621                    impl<
3622                        T: CocoonService,
3623                    > tonic::server::UnaryService<super::ProvideHoverRequest>
3624                    for provide_hoverSvc<T> {
3625                        type Response = super::ProvideHoverResponse;
3626                        type Future = BoxFuture<
3627                            tonic::Response<Self::Response>,
3628                            tonic::Status,
3629                        >;
3630                        fn call(
3631                            &mut self,
3632                            request: tonic::Request<super::ProvideHoverRequest>,
3633                        ) -> Self::Future {
3634                            let inner = Arc::clone(&self.0);
3635                            let fut = async move {
3636                                <T as CocoonService>::provide_hover(&inner, request).await
3637                            };
3638                            Box::pin(fut)
3639                        }
3640                    }
3641                    let accept_compression_encodings = self.accept_compression_encodings;
3642                    let send_compression_encodings = self.send_compression_encodings;
3643                    let max_decoding_message_size = self.max_decoding_message_size;
3644                    let max_encoding_message_size = self.max_encoding_message_size;
3645                    let inner = self.inner.clone();
3646                    let fut = async move {
3647                        let method = provide_hoverSvc(inner);
3648                        let codec = tonic_prost::ProstCodec::default();
3649                        let mut grpc = tonic::server::Grpc::new(codec)
3650                            .apply_compression_config(
3651                                accept_compression_encodings,
3652                                send_compression_encodings,
3653                            )
3654                            .apply_max_message_size_config(
3655                                max_decoding_message_size,
3656                                max_encoding_message_size,
3657                            );
3658                        let res = grpc.unary(method, req).await;
3659                        Ok(res)
3660                    };
3661                    Box::pin(fut)
3662                }
3663                "/Vine.CocoonService/register_completion_item_provider" => {
3664                    #[allow(non_camel_case_types)]
3665                    struct register_completion_item_providerSvc<T: CocoonService>(
3666                        pub Arc<T>,
3667                    );
3668                    impl<
3669                        T: CocoonService,
3670                    > tonic::server::UnaryService<super::RegisterProviderRequest>
3671                    for register_completion_item_providerSvc<T> {
3672                        type Response = super::Empty;
3673                        type Future = BoxFuture<
3674                            tonic::Response<Self::Response>,
3675                            tonic::Status,
3676                        >;
3677                        fn call(
3678                            &mut self,
3679                            request: tonic::Request<super::RegisterProviderRequest>,
3680                        ) -> Self::Future {
3681                            let inner = Arc::clone(&self.0);
3682                            let fut = async move {
3683                                <T as CocoonService>::register_completion_item_provider(
3684                                        &inner,
3685                                        request,
3686                                    )
3687                                    .await
3688                            };
3689                            Box::pin(fut)
3690                        }
3691                    }
3692                    let accept_compression_encodings = self.accept_compression_encodings;
3693                    let send_compression_encodings = self.send_compression_encodings;
3694                    let max_decoding_message_size = self.max_decoding_message_size;
3695                    let max_encoding_message_size = self.max_encoding_message_size;
3696                    let inner = self.inner.clone();
3697                    let fut = async move {
3698                        let method = register_completion_item_providerSvc(inner);
3699                        let codec = tonic_prost::ProstCodec::default();
3700                        let mut grpc = tonic::server::Grpc::new(codec)
3701                            .apply_compression_config(
3702                                accept_compression_encodings,
3703                                send_compression_encodings,
3704                            )
3705                            .apply_max_message_size_config(
3706                                max_decoding_message_size,
3707                                max_encoding_message_size,
3708                            );
3709                        let res = grpc.unary(method, req).await;
3710                        Ok(res)
3711                    };
3712                    Box::pin(fut)
3713                }
3714                "/Vine.CocoonService/provide_completion_items" => {
3715                    #[allow(non_camel_case_types)]
3716                    struct provide_completion_itemsSvc<T: CocoonService>(pub Arc<T>);
3717                    impl<
3718                        T: CocoonService,
3719                    > tonic::server::UnaryService<super::ProvideCompletionItemsRequest>
3720                    for provide_completion_itemsSvc<T> {
3721                        type Response = super::ProvideCompletionItemsResponse;
3722                        type Future = BoxFuture<
3723                            tonic::Response<Self::Response>,
3724                            tonic::Status,
3725                        >;
3726                        fn call(
3727                            &mut self,
3728                            request: tonic::Request<super::ProvideCompletionItemsRequest>,
3729                        ) -> Self::Future {
3730                            let inner = Arc::clone(&self.0);
3731                            let fut = async move {
3732                                <T as CocoonService>::provide_completion_items(
3733                                        &inner,
3734                                        request,
3735                                    )
3736                                    .await
3737                            };
3738                            Box::pin(fut)
3739                        }
3740                    }
3741                    let accept_compression_encodings = self.accept_compression_encodings;
3742                    let send_compression_encodings = self.send_compression_encodings;
3743                    let max_decoding_message_size = self.max_decoding_message_size;
3744                    let max_encoding_message_size = self.max_encoding_message_size;
3745                    let inner = self.inner.clone();
3746                    let fut = async move {
3747                        let method = provide_completion_itemsSvc(inner);
3748                        let codec = tonic_prost::ProstCodec::default();
3749                        let mut grpc = tonic::server::Grpc::new(codec)
3750                            .apply_compression_config(
3751                                accept_compression_encodings,
3752                                send_compression_encodings,
3753                            )
3754                            .apply_max_message_size_config(
3755                                max_decoding_message_size,
3756                                max_encoding_message_size,
3757                            );
3758                        let res = grpc.unary(method, req).await;
3759                        Ok(res)
3760                    };
3761                    Box::pin(fut)
3762                }
3763                "/Vine.CocoonService/register_definition_provider" => {
3764                    #[allow(non_camel_case_types)]
3765                    struct register_definition_providerSvc<T: CocoonService>(pub Arc<T>);
3766                    impl<
3767                        T: CocoonService,
3768                    > tonic::server::UnaryService<super::RegisterProviderRequest>
3769                    for register_definition_providerSvc<T> {
3770                        type Response = super::Empty;
3771                        type Future = BoxFuture<
3772                            tonic::Response<Self::Response>,
3773                            tonic::Status,
3774                        >;
3775                        fn call(
3776                            &mut self,
3777                            request: tonic::Request<super::RegisterProviderRequest>,
3778                        ) -> Self::Future {
3779                            let inner = Arc::clone(&self.0);
3780                            let fut = async move {
3781                                <T as CocoonService>::register_definition_provider(
3782                                        &inner,
3783                                        request,
3784                                    )
3785                                    .await
3786                            };
3787                            Box::pin(fut)
3788                        }
3789                    }
3790                    let accept_compression_encodings = self.accept_compression_encodings;
3791                    let send_compression_encodings = self.send_compression_encodings;
3792                    let max_decoding_message_size = self.max_decoding_message_size;
3793                    let max_encoding_message_size = self.max_encoding_message_size;
3794                    let inner = self.inner.clone();
3795                    let fut = async move {
3796                        let method = register_definition_providerSvc(inner);
3797                        let codec = tonic_prost::ProstCodec::default();
3798                        let mut grpc = tonic::server::Grpc::new(codec)
3799                            .apply_compression_config(
3800                                accept_compression_encodings,
3801                                send_compression_encodings,
3802                            )
3803                            .apply_max_message_size_config(
3804                                max_decoding_message_size,
3805                                max_encoding_message_size,
3806                            );
3807                        let res = grpc.unary(method, req).await;
3808                        Ok(res)
3809                    };
3810                    Box::pin(fut)
3811                }
3812                "/Vine.CocoonService/provide_definition" => {
3813                    #[allow(non_camel_case_types)]
3814                    struct provide_definitionSvc<T: CocoonService>(pub Arc<T>);
3815                    impl<
3816                        T: CocoonService,
3817                    > tonic::server::UnaryService<super::ProvideDefinitionRequest>
3818                    for provide_definitionSvc<T> {
3819                        type Response = super::ProvideDefinitionResponse;
3820                        type Future = BoxFuture<
3821                            tonic::Response<Self::Response>,
3822                            tonic::Status,
3823                        >;
3824                        fn call(
3825                            &mut self,
3826                            request: tonic::Request<super::ProvideDefinitionRequest>,
3827                        ) -> Self::Future {
3828                            let inner = Arc::clone(&self.0);
3829                            let fut = async move {
3830                                <T as CocoonService>::provide_definition(&inner, request)
3831                                    .await
3832                            };
3833                            Box::pin(fut)
3834                        }
3835                    }
3836                    let accept_compression_encodings = self.accept_compression_encodings;
3837                    let send_compression_encodings = self.send_compression_encodings;
3838                    let max_decoding_message_size = self.max_decoding_message_size;
3839                    let max_encoding_message_size = self.max_encoding_message_size;
3840                    let inner = self.inner.clone();
3841                    let fut = async move {
3842                        let method = provide_definitionSvc(inner);
3843                        let codec = tonic_prost::ProstCodec::default();
3844                        let mut grpc = tonic::server::Grpc::new(codec)
3845                            .apply_compression_config(
3846                                accept_compression_encodings,
3847                                send_compression_encodings,
3848                            )
3849                            .apply_max_message_size_config(
3850                                max_decoding_message_size,
3851                                max_encoding_message_size,
3852                            );
3853                        let res = grpc.unary(method, req).await;
3854                        Ok(res)
3855                    };
3856                    Box::pin(fut)
3857                }
3858                "/Vine.CocoonService/register_reference_provider" => {
3859                    #[allow(non_camel_case_types)]
3860                    struct register_reference_providerSvc<T: CocoonService>(pub Arc<T>);
3861                    impl<
3862                        T: CocoonService,
3863                    > tonic::server::UnaryService<super::RegisterProviderRequest>
3864                    for register_reference_providerSvc<T> {
3865                        type Response = super::Empty;
3866                        type Future = BoxFuture<
3867                            tonic::Response<Self::Response>,
3868                            tonic::Status,
3869                        >;
3870                        fn call(
3871                            &mut self,
3872                            request: tonic::Request<super::RegisterProviderRequest>,
3873                        ) -> Self::Future {
3874                            let inner = Arc::clone(&self.0);
3875                            let fut = async move {
3876                                <T as CocoonService>::register_reference_provider(
3877                                        &inner,
3878                                        request,
3879                                    )
3880                                    .await
3881                            };
3882                            Box::pin(fut)
3883                        }
3884                    }
3885                    let accept_compression_encodings = self.accept_compression_encodings;
3886                    let send_compression_encodings = self.send_compression_encodings;
3887                    let max_decoding_message_size = self.max_decoding_message_size;
3888                    let max_encoding_message_size = self.max_encoding_message_size;
3889                    let inner = self.inner.clone();
3890                    let fut = async move {
3891                        let method = register_reference_providerSvc(inner);
3892                        let codec = tonic_prost::ProstCodec::default();
3893                        let mut grpc = tonic::server::Grpc::new(codec)
3894                            .apply_compression_config(
3895                                accept_compression_encodings,
3896                                send_compression_encodings,
3897                            )
3898                            .apply_max_message_size_config(
3899                                max_decoding_message_size,
3900                                max_encoding_message_size,
3901                            );
3902                        let res = grpc.unary(method, req).await;
3903                        Ok(res)
3904                    };
3905                    Box::pin(fut)
3906                }
3907                "/Vine.CocoonService/provide_references" => {
3908                    #[allow(non_camel_case_types)]
3909                    struct provide_referencesSvc<T: CocoonService>(pub Arc<T>);
3910                    impl<
3911                        T: CocoonService,
3912                    > tonic::server::UnaryService<super::ProvideReferencesRequest>
3913                    for provide_referencesSvc<T> {
3914                        type Response = super::ProvideReferencesResponse;
3915                        type Future = BoxFuture<
3916                            tonic::Response<Self::Response>,
3917                            tonic::Status,
3918                        >;
3919                        fn call(
3920                            &mut self,
3921                            request: tonic::Request<super::ProvideReferencesRequest>,
3922                        ) -> Self::Future {
3923                            let inner = Arc::clone(&self.0);
3924                            let fut = async move {
3925                                <T as CocoonService>::provide_references(&inner, request)
3926                                    .await
3927                            };
3928                            Box::pin(fut)
3929                        }
3930                    }
3931                    let accept_compression_encodings = self.accept_compression_encodings;
3932                    let send_compression_encodings = self.send_compression_encodings;
3933                    let max_decoding_message_size = self.max_decoding_message_size;
3934                    let max_encoding_message_size = self.max_encoding_message_size;
3935                    let inner = self.inner.clone();
3936                    let fut = async move {
3937                        let method = provide_referencesSvc(inner);
3938                        let codec = tonic_prost::ProstCodec::default();
3939                        let mut grpc = tonic::server::Grpc::new(codec)
3940                            .apply_compression_config(
3941                                accept_compression_encodings,
3942                                send_compression_encodings,
3943                            )
3944                            .apply_max_message_size_config(
3945                                max_decoding_message_size,
3946                                max_encoding_message_size,
3947                            );
3948                        let res = grpc.unary(method, req).await;
3949                        Ok(res)
3950                    };
3951                    Box::pin(fut)
3952                }
3953                "/Vine.CocoonService/register_code_actions_provider" => {
3954                    #[allow(non_camel_case_types)]
3955                    struct register_code_actions_providerSvc<T: CocoonService>(
3956                        pub Arc<T>,
3957                    );
3958                    impl<
3959                        T: CocoonService,
3960                    > tonic::server::UnaryService<super::RegisterProviderRequest>
3961                    for register_code_actions_providerSvc<T> {
3962                        type Response = super::Empty;
3963                        type Future = BoxFuture<
3964                            tonic::Response<Self::Response>,
3965                            tonic::Status,
3966                        >;
3967                        fn call(
3968                            &mut self,
3969                            request: tonic::Request<super::RegisterProviderRequest>,
3970                        ) -> Self::Future {
3971                            let inner = Arc::clone(&self.0);
3972                            let fut = async move {
3973                                <T as CocoonService>::register_code_actions_provider(
3974                                        &inner,
3975                                        request,
3976                                    )
3977                                    .await
3978                            };
3979                            Box::pin(fut)
3980                        }
3981                    }
3982                    let accept_compression_encodings = self.accept_compression_encodings;
3983                    let send_compression_encodings = self.send_compression_encodings;
3984                    let max_decoding_message_size = self.max_decoding_message_size;
3985                    let max_encoding_message_size = self.max_encoding_message_size;
3986                    let inner = self.inner.clone();
3987                    let fut = async move {
3988                        let method = register_code_actions_providerSvc(inner);
3989                        let codec = tonic_prost::ProstCodec::default();
3990                        let mut grpc = tonic::server::Grpc::new(codec)
3991                            .apply_compression_config(
3992                                accept_compression_encodings,
3993                                send_compression_encodings,
3994                            )
3995                            .apply_max_message_size_config(
3996                                max_decoding_message_size,
3997                                max_encoding_message_size,
3998                            );
3999                        let res = grpc.unary(method, req).await;
4000                        Ok(res)
4001                    };
4002                    Box::pin(fut)
4003                }
4004                "/Vine.CocoonService/provide_code_actions" => {
4005                    #[allow(non_camel_case_types)]
4006                    struct provide_code_actionsSvc<T: CocoonService>(pub Arc<T>);
4007                    impl<
4008                        T: CocoonService,
4009                    > tonic::server::UnaryService<super::ProvideCodeActionsRequest>
4010                    for provide_code_actionsSvc<T> {
4011                        type Response = super::ProvideCodeActionsResponse;
4012                        type Future = BoxFuture<
4013                            tonic::Response<Self::Response>,
4014                            tonic::Status,
4015                        >;
4016                        fn call(
4017                            &mut self,
4018                            request: tonic::Request<super::ProvideCodeActionsRequest>,
4019                        ) -> Self::Future {
4020                            let inner = Arc::clone(&self.0);
4021                            let fut = async move {
4022                                <T as CocoonService>::provide_code_actions(&inner, request)
4023                                    .await
4024                            };
4025                            Box::pin(fut)
4026                        }
4027                    }
4028                    let accept_compression_encodings = self.accept_compression_encodings;
4029                    let send_compression_encodings = self.send_compression_encodings;
4030                    let max_decoding_message_size = self.max_decoding_message_size;
4031                    let max_encoding_message_size = self.max_encoding_message_size;
4032                    let inner = self.inner.clone();
4033                    let fut = async move {
4034                        let method = provide_code_actionsSvc(inner);
4035                        let codec = tonic_prost::ProstCodec::default();
4036                        let mut grpc = tonic::server::Grpc::new(codec)
4037                            .apply_compression_config(
4038                                accept_compression_encodings,
4039                                send_compression_encodings,
4040                            )
4041                            .apply_max_message_size_config(
4042                                max_decoding_message_size,
4043                                max_encoding_message_size,
4044                            );
4045                        let res = grpc.unary(method, req).await;
4046                        Ok(res)
4047                    };
4048                    Box::pin(fut)
4049                }
4050                "/Vine.CocoonService/show_text_document" => {
4051                    #[allow(non_camel_case_types)]
4052                    struct show_text_documentSvc<T: CocoonService>(pub Arc<T>);
4053                    impl<
4054                        T: CocoonService,
4055                    > tonic::server::UnaryService<super::ShowTextDocumentRequest>
4056                    for show_text_documentSvc<T> {
4057                        type Response = super::ShowTextDocumentResponse;
4058                        type Future = BoxFuture<
4059                            tonic::Response<Self::Response>,
4060                            tonic::Status,
4061                        >;
4062                        fn call(
4063                            &mut self,
4064                            request: tonic::Request<super::ShowTextDocumentRequest>,
4065                        ) -> Self::Future {
4066                            let inner = Arc::clone(&self.0);
4067                            let fut = async move {
4068                                <T as CocoonService>::show_text_document(&inner, request)
4069                                    .await
4070                            };
4071                            Box::pin(fut)
4072                        }
4073                    }
4074                    let accept_compression_encodings = self.accept_compression_encodings;
4075                    let send_compression_encodings = self.send_compression_encodings;
4076                    let max_decoding_message_size = self.max_decoding_message_size;
4077                    let max_encoding_message_size = self.max_encoding_message_size;
4078                    let inner = self.inner.clone();
4079                    let fut = async move {
4080                        let method = show_text_documentSvc(inner);
4081                        let codec = tonic_prost::ProstCodec::default();
4082                        let mut grpc = tonic::server::Grpc::new(codec)
4083                            .apply_compression_config(
4084                                accept_compression_encodings,
4085                                send_compression_encodings,
4086                            )
4087                            .apply_max_message_size_config(
4088                                max_decoding_message_size,
4089                                max_encoding_message_size,
4090                            );
4091                        let res = grpc.unary(method, req).await;
4092                        Ok(res)
4093                    };
4094                    Box::pin(fut)
4095                }
4096                "/Vine.CocoonService/show_information_message" => {
4097                    #[allow(non_camel_case_types)]
4098                    struct show_information_messageSvc<T: CocoonService>(pub Arc<T>);
4099                    impl<
4100                        T: CocoonService,
4101                    > tonic::server::UnaryService<super::ShowMessageRequest>
4102                    for show_information_messageSvc<T> {
4103                        type Response = super::ShowMessageResponse;
4104                        type Future = BoxFuture<
4105                            tonic::Response<Self::Response>,
4106                            tonic::Status,
4107                        >;
4108                        fn call(
4109                            &mut self,
4110                            request: tonic::Request<super::ShowMessageRequest>,
4111                        ) -> Self::Future {
4112                            let inner = Arc::clone(&self.0);
4113                            let fut = async move {
4114                                <T as CocoonService>::show_information_message(
4115                                        &inner,
4116                                        request,
4117                                    )
4118                                    .await
4119                            };
4120                            Box::pin(fut)
4121                        }
4122                    }
4123                    let accept_compression_encodings = self.accept_compression_encodings;
4124                    let send_compression_encodings = self.send_compression_encodings;
4125                    let max_decoding_message_size = self.max_decoding_message_size;
4126                    let max_encoding_message_size = self.max_encoding_message_size;
4127                    let inner = self.inner.clone();
4128                    let fut = async move {
4129                        let method = show_information_messageSvc(inner);
4130                        let codec = tonic_prost::ProstCodec::default();
4131                        let mut grpc = tonic::server::Grpc::new(codec)
4132                            .apply_compression_config(
4133                                accept_compression_encodings,
4134                                send_compression_encodings,
4135                            )
4136                            .apply_max_message_size_config(
4137                                max_decoding_message_size,
4138                                max_encoding_message_size,
4139                            );
4140                        let res = grpc.unary(method, req).await;
4141                        Ok(res)
4142                    };
4143                    Box::pin(fut)
4144                }
4145                "/Vine.CocoonService/show_warning_message" => {
4146                    #[allow(non_camel_case_types)]
4147                    struct show_warning_messageSvc<T: CocoonService>(pub Arc<T>);
4148                    impl<
4149                        T: CocoonService,
4150                    > tonic::server::UnaryService<super::ShowMessageRequest>
4151                    for show_warning_messageSvc<T> {
4152                        type Response = super::ShowMessageResponse;
4153                        type Future = BoxFuture<
4154                            tonic::Response<Self::Response>,
4155                            tonic::Status,
4156                        >;
4157                        fn call(
4158                            &mut self,
4159                            request: tonic::Request<super::ShowMessageRequest>,
4160                        ) -> Self::Future {
4161                            let inner = Arc::clone(&self.0);
4162                            let fut = async move {
4163                                <T as CocoonService>::show_warning_message(&inner, request)
4164                                    .await
4165                            };
4166                            Box::pin(fut)
4167                        }
4168                    }
4169                    let accept_compression_encodings = self.accept_compression_encodings;
4170                    let send_compression_encodings = self.send_compression_encodings;
4171                    let max_decoding_message_size = self.max_decoding_message_size;
4172                    let max_encoding_message_size = self.max_encoding_message_size;
4173                    let inner = self.inner.clone();
4174                    let fut = async move {
4175                        let method = show_warning_messageSvc(inner);
4176                        let codec = tonic_prost::ProstCodec::default();
4177                        let mut grpc = tonic::server::Grpc::new(codec)
4178                            .apply_compression_config(
4179                                accept_compression_encodings,
4180                                send_compression_encodings,
4181                            )
4182                            .apply_max_message_size_config(
4183                                max_decoding_message_size,
4184                                max_encoding_message_size,
4185                            );
4186                        let res = grpc.unary(method, req).await;
4187                        Ok(res)
4188                    };
4189                    Box::pin(fut)
4190                }
4191                "/Vine.CocoonService/show_error_message" => {
4192                    #[allow(non_camel_case_types)]
4193                    struct show_error_messageSvc<T: CocoonService>(pub Arc<T>);
4194                    impl<
4195                        T: CocoonService,
4196                    > tonic::server::UnaryService<super::ShowMessageRequest>
4197                    for show_error_messageSvc<T> {
4198                        type Response = super::ShowMessageResponse;
4199                        type Future = BoxFuture<
4200                            tonic::Response<Self::Response>,
4201                            tonic::Status,
4202                        >;
4203                        fn call(
4204                            &mut self,
4205                            request: tonic::Request<super::ShowMessageRequest>,
4206                        ) -> Self::Future {
4207                            let inner = Arc::clone(&self.0);
4208                            let fut = async move {
4209                                <T as CocoonService>::show_error_message(&inner, request)
4210                                    .await
4211                            };
4212                            Box::pin(fut)
4213                        }
4214                    }
4215                    let accept_compression_encodings = self.accept_compression_encodings;
4216                    let send_compression_encodings = self.send_compression_encodings;
4217                    let max_decoding_message_size = self.max_decoding_message_size;
4218                    let max_encoding_message_size = self.max_encoding_message_size;
4219                    let inner = self.inner.clone();
4220                    let fut = async move {
4221                        let method = show_error_messageSvc(inner);
4222                        let codec = tonic_prost::ProstCodec::default();
4223                        let mut grpc = tonic::server::Grpc::new(codec)
4224                            .apply_compression_config(
4225                                accept_compression_encodings,
4226                                send_compression_encodings,
4227                            )
4228                            .apply_max_message_size_config(
4229                                max_decoding_message_size,
4230                                max_encoding_message_size,
4231                            );
4232                        let res = grpc.unary(method, req).await;
4233                        Ok(res)
4234                    };
4235                    Box::pin(fut)
4236                }
4237                "/Vine.CocoonService/create_status_bar_item" => {
4238                    #[allow(non_camel_case_types)]
4239                    struct create_status_bar_itemSvc<T: CocoonService>(pub Arc<T>);
4240                    impl<
4241                        T: CocoonService,
4242                    > tonic::server::UnaryService<super::CreateStatusBarItemRequest>
4243                    for create_status_bar_itemSvc<T> {
4244                        type Response = super::CreateStatusBarItemResponse;
4245                        type Future = BoxFuture<
4246                            tonic::Response<Self::Response>,
4247                            tonic::Status,
4248                        >;
4249                        fn call(
4250                            &mut self,
4251                            request: tonic::Request<super::CreateStatusBarItemRequest>,
4252                        ) -> Self::Future {
4253                            let inner = Arc::clone(&self.0);
4254                            let fut = async move {
4255                                <T as CocoonService>::create_status_bar_item(
4256                                        &inner,
4257                                        request,
4258                                    )
4259                                    .await
4260                            };
4261                            Box::pin(fut)
4262                        }
4263                    }
4264                    let accept_compression_encodings = self.accept_compression_encodings;
4265                    let send_compression_encodings = self.send_compression_encodings;
4266                    let max_decoding_message_size = self.max_decoding_message_size;
4267                    let max_encoding_message_size = self.max_encoding_message_size;
4268                    let inner = self.inner.clone();
4269                    let fut = async move {
4270                        let method = create_status_bar_itemSvc(inner);
4271                        let codec = tonic_prost::ProstCodec::default();
4272                        let mut grpc = tonic::server::Grpc::new(codec)
4273                            .apply_compression_config(
4274                                accept_compression_encodings,
4275                                send_compression_encodings,
4276                            )
4277                            .apply_max_message_size_config(
4278                                max_decoding_message_size,
4279                                max_encoding_message_size,
4280                            );
4281                        let res = grpc.unary(method, req).await;
4282                        Ok(res)
4283                    };
4284                    Box::pin(fut)
4285                }
4286                "/Vine.CocoonService/set_status_bar_text" => {
4287                    #[allow(non_camel_case_types)]
4288                    struct set_status_bar_textSvc<T: CocoonService>(pub Arc<T>);
4289                    impl<
4290                        T: CocoonService,
4291                    > tonic::server::UnaryService<super::SetStatusBarTextRequest>
4292                    for set_status_bar_textSvc<T> {
4293                        type Response = super::Empty;
4294                        type Future = BoxFuture<
4295                            tonic::Response<Self::Response>,
4296                            tonic::Status,
4297                        >;
4298                        fn call(
4299                            &mut self,
4300                            request: tonic::Request<super::SetStatusBarTextRequest>,
4301                        ) -> Self::Future {
4302                            let inner = Arc::clone(&self.0);
4303                            let fut = async move {
4304                                <T as CocoonService>::set_status_bar_text(&inner, request)
4305                                    .await
4306                            };
4307                            Box::pin(fut)
4308                        }
4309                    }
4310                    let accept_compression_encodings = self.accept_compression_encodings;
4311                    let send_compression_encodings = self.send_compression_encodings;
4312                    let max_decoding_message_size = self.max_decoding_message_size;
4313                    let max_encoding_message_size = self.max_encoding_message_size;
4314                    let inner = self.inner.clone();
4315                    let fut = async move {
4316                        let method = set_status_bar_textSvc(inner);
4317                        let codec = tonic_prost::ProstCodec::default();
4318                        let mut grpc = tonic::server::Grpc::new(codec)
4319                            .apply_compression_config(
4320                                accept_compression_encodings,
4321                                send_compression_encodings,
4322                            )
4323                            .apply_max_message_size_config(
4324                                max_decoding_message_size,
4325                                max_encoding_message_size,
4326                            );
4327                        let res = grpc.unary(method, req).await;
4328                        Ok(res)
4329                    };
4330                    Box::pin(fut)
4331                }
4332                "/Vine.CocoonService/create_webview_panel" => {
4333                    #[allow(non_camel_case_types)]
4334                    struct create_webview_panelSvc<T: CocoonService>(pub Arc<T>);
4335                    impl<
4336                        T: CocoonService,
4337                    > tonic::server::UnaryService<super::CreateWebviewPanelRequest>
4338                    for create_webview_panelSvc<T> {
4339                        type Response = super::CreateWebviewPanelResponse;
4340                        type Future = BoxFuture<
4341                            tonic::Response<Self::Response>,
4342                            tonic::Status,
4343                        >;
4344                        fn call(
4345                            &mut self,
4346                            request: tonic::Request<super::CreateWebviewPanelRequest>,
4347                        ) -> Self::Future {
4348                            let inner = Arc::clone(&self.0);
4349                            let fut = async move {
4350                                <T as CocoonService>::create_webview_panel(&inner, request)
4351                                    .await
4352                            };
4353                            Box::pin(fut)
4354                        }
4355                    }
4356                    let accept_compression_encodings = self.accept_compression_encodings;
4357                    let send_compression_encodings = self.send_compression_encodings;
4358                    let max_decoding_message_size = self.max_decoding_message_size;
4359                    let max_encoding_message_size = self.max_encoding_message_size;
4360                    let inner = self.inner.clone();
4361                    let fut = async move {
4362                        let method = create_webview_panelSvc(inner);
4363                        let codec = tonic_prost::ProstCodec::default();
4364                        let mut grpc = tonic::server::Grpc::new(codec)
4365                            .apply_compression_config(
4366                                accept_compression_encodings,
4367                                send_compression_encodings,
4368                            )
4369                            .apply_max_message_size_config(
4370                                max_decoding_message_size,
4371                                max_encoding_message_size,
4372                            );
4373                        let res = grpc.unary(method, req).await;
4374                        Ok(res)
4375                    };
4376                    Box::pin(fut)
4377                }
4378                "/Vine.CocoonService/set_webview_html" => {
4379                    #[allow(non_camel_case_types)]
4380                    struct set_webview_htmlSvc<T: CocoonService>(pub Arc<T>);
4381                    impl<
4382                        T: CocoonService,
4383                    > tonic::server::UnaryService<super::SetWebviewHtmlRequest>
4384                    for set_webview_htmlSvc<T> {
4385                        type Response = super::Empty;
4386                        type Future = BoxFuture<
4387                            tonic::Response<Self::Response>,
4388                            tonic::Status,
4389                        >;
4390                        fn call(
4391                            &mut self,
4392                            request: tonic::Request<super::SetWebviewHtmlRequest>,
4393                        ) -> Self::Future {
4394                            let inner = Arc::clone(&self.0);
4395                            let fut = async move {
4396                                <T as CocoonService>::set_webview_html(&inner, request)
4397                                    .await
4398                            };
4399                            Box::pin(fut)
4400                        }
4401                    }
4402                    let accept_compression_encodings = self.accept_compression_encodings;
4403                    let send_compression_encodings = self.send_compression_encodings;
4404                    let max_decoding_message_size = self.max_decoding_message_size;
4405                    let max_encoding_message_size = self.max_encoding_message_size;
4406                    let inner = self.inner.clone();
4407                    let fut = async move {
4408                        let method = set_webview_htmlSvc(inner);
4409                        let codec = tonic_prost::ProstCodec::default();
4410                        let mut grpc = tonic::server::Grpc::new(codec)
4411                            .apply_compression_config(
4412                                accept_compression_encodings,
4413                                send_compression_encodings,
4414                            )
4415                            .apply_max_message_size_config(
4416                                max_decoding_message_size,
4417                                max_encoding_message_size,
4418                            );
4419                        let res = grpc.unary(method, req).await;
4420                        Ok(res)
4421                    };
4422                    Box::pin(fut)
4423                }
4424                "/Vine.CocoonService/on_did_receive_message" => {
4425                    #[allow(non_camel_case_types)]
4426                    struct on_did_receive_messageSvc<T: CocoonService>(pub Arc<T>);
4427                    impl<
4428                        T: CocoonService,
4429                    > tonic::server::UnaryService<super::OnDidReceiveMessageRequest>
4430                    for on_did_receive_messageSvc<T> {
4431                        type Response = super::Empty;
4432                        type Future = BoxFuture<
4433                            tonic::Response<Self::Response>,
4434                            tonic::Status,
4435                        >;
4436                        fn call(
4437                            &mut self,
4438                            request: tonic::Request<super::OnDidReceiveMessageRequest>,
4439                        ) -> Self::Future {
4440                            let inner = Arc::clone(&self.0);
4441                            let fut = async move {
4442                                <T as CocoonService>::on_did_receive_message(
4443                                        &inner,
4444                                        request,
4445                                    )
4446                                    .await
4447                            };
4448                            Box::pin(fut)
4449                        }
4450                    }
4451                    let accept_compression_encodings = self.accept_compression_encodings;
4452                    let send_compression_encodings = self.send_compression_encodings;
4453                    let max_decoding_message_size = self.max_decoding_message_size;
4454                    let max_encoding_message_size = self.max_encoding_message_size;
4455                    let inner = self.inner.clone();
4456                    let fut = async move {
4457                        let method = on_did_receive_messageSvc(inner);
4458                        let codec = tonic_prost::ProstCodec::default();
4459                        let mut grpc = tonic::server::Grpc::new(codec)
4460                            .apply_compression_config(
4461                                accept_compression_encodings,
4462                                send_compression_encodings,
4463                            )
4464                            .apply_max_message_size_config(
4465                                max_decoding_message_size,
4466                                max_encoding_message_size,
4467                            );
4468                        let res = grpc.unary(method, req).await;
4469                        Ok(res)
4470                    };
4471                    Box::pin(fut)
4472                }
4473                "/Vine.CocoonService/read_file" => {
4474                    #[allow(non_camel_case_types)]
4475                    struct read_fileSvc<T: CocoonService>(pub Arc<T>);
4476                    impl<
4477                        T: CocoonService,
4478                    > tonic::server::UnaryService<super::ReadFileRequest>
4479                    for read_fileSvc<T> {
4480                        type Response = super::ReadFileResponse;
4481                        type Future = BoxFuture<
4482                            tonic::Response<Self::Response>,
4483                            tonic::Status,
4484                        >;
4485                        fn call(
4486                            &mut self,
4487                            request: tonic::Request<super::ReadFileRequest>,
4488                        ) -> Self::Future {
4489                            let inner = Arc::clone(&self.0);
4490                            let fut = async move {
4491                                <T as CocoonService>::read_file(&inner, request).await
4492                            };
4493                            Box::pin(fut)
4494                        }
4495                    }
4496                    let accept_compression_encodings = self.accept_compression_encodings;
4497                    let send_compression_encodings = self.send_compression_encodings;
4498                    let max_decoding_message_size = self.max_decoding_message_size;
4499                    let max_encoding_message_size = self.max_encoding_message_size;
4500                    let inner = self.inner.clone();
4501                    let fut = async move {
4502                        let method = read_fileSvc(inner);
4503                        let codec = tonic_prost::ProstCodec::default();
4504                        let mut grpc = tonic::server::Grpc::new(codec)
4505                            .apply_compression_config(
4506                                accept_compression_encodings,
4507                                send_compression_encodings,
4508                            )
4509                            .apply_max_message_size_config(
4510                                max_decoding_message_size,
4511                                max_encoding_message_size,
4512                            );
4513                        let res = grpc.unary(method, req).await;
4514                        Ok(res)
4515                    };
4516                    Box::pin(fut)
4517                }
4518                "/Vine.CocoonService/write_file" => {
4519                    #[allow(non_camel_case_types)]
4520                    struct write_fileSvc<T: CocoonService>(pub Arc<T>);
4521                    impl<
4522                        T: CocoonService,
4523                    > tonic::server::UnaryService<super::WriteFileRequest>
4524                    for write_fileSvc<T> {
4525                        type Response = super::Empty;
4526                        type Future = BoxFuture<
4527                            tonic::Response<Self::Response>,
4528                            tonic::Status,
4529                        >;
4530                        fn call(
4531                            &mut self,
4532                            request: tonic::Request<super::WriteFileRequest>,
4533                        ) -> Self::Future {
4534                            let inner = Arc::clone(&self.0);
4535                            let fut = async move {
4536                                <T as CocoonService>::write_file(&inner, request).await
4537                            };
4538                            Box::pin(fut)
4539                        }
4540                    }
4541                    let accept_compression_encodings = self.accept_compression_encodings;
4542                    let send_compression_encodings = self.send_compression_encodings;
4543                    let max_decoding_message_size = self.max_decoding_message_size;
4544                    let max_encoding_message_size = self.max_encoding_message_size;
4545                    let inner = self.inner.clone();
4546                    let fut = async move {
4547                        let method = write_fileSvc(inner);
4548                        let codec = tonic_prost::ProstCodec::default();
4549                        let mut grpc = tonic::server::Grpc::new(codec)
4550                            .apply_compression_config(
4551                                accept_compression_encodings,
4552                                send_compression_encodings,
4553                            )
4554                            .apply_max_message_size_config(
4555                                max_decoding_message_size,
4556                                max_encoding_message_size,
4557                            );
4558                        let res = grpc.unary(method, req).await;
4559                        Ok(res)
4560                    };
4561                    Box::pin(fut)
4562                }
4563                "/Vine.CocoonService/stat" => {
4564                    #[allow(non_camel_case_types)]
4565                    struct statSvc<T: CocoonService>(pub Arc<T>);
4566                    impl<
4567                        T: CocoonService,
4568                    > tonic::server::UnaryService<super::StatRequest> for statSvc<T> {
4569                        type Response = super::StatResponse;
4570                        type Future = BoxFuture<
4571                            tonic::Response<Self::Response>,
4572                            tonic::Status,
4573                        >;
4574                        fn call(
4575                            &mut self,
4576                            request: tonic::Request<super::StatRequest>,
4577                        ) -> Self::Future {
4578                            let inner = Arc::clone(&self.0);
4579                            let fut = async move {
4580                                <T as CocoonService>::stat(&inner, request).await
4581                            };
4582                            Box::pin(fut)
4583                        }
4584                    }
4585                    let accept_compression_encodings = self.accept_compression_encodings;
4586                    let send_compression_encodings = self.send_compression_encodings;
4587                    let max_decoding_message_size = self.max_decoding_message_size;
4588                    let max_encoding_message_size = self.max_encoding_message_size;
4589                    let inner = self.inner.clone();
4590                    let fut = async move {
4591                        let method = statSvc(inner);
4592                        let codec = tonic_prost::ProstCodec::default();
4593                        let mut grpc = tonic::server::Grpc::new(codec)
4594                            .apply_compression_config(
4595                                accept_compression_encodings,
4596                                send_compression_encodings,
4597                            )
4598                            .apply_max_message_size_config(
4599                                max_decoding_message_size,
4600                                max_encoding_message_size,
4601                            );
4602                        let res = grpc.unary(method, req).await;
4603                        Ok(res)
4604                    };
4605                    Box::pin(fut)
4606                }
4607                "/Vine.CocoonService/readdir" => {
4608                    #[allow(non_camel_case_types)]
4609                    struct readdirSvc<T: CocoonService>(pub Arc<T>);
4610                    impl<
4611                        T: CocoonService,
4612                    > tonic::server::UnaryService<super::ReaddirRequest>
4613                    for readdirSvc<T> {
4614                        type Response = super::ReaddirResponse;
4615                        type Future = BoxFuture<
4616                            tonic::Response<Self::Response>,
4617                            tonic::Status,
4618                        >;
4619                        fn call(
4620                            &mut self,
4621                            request: tonic::Request<super::ReaddirRequest>,
4622                        ) -> Self::Future {
4623                            let inner = Arc::clone(&self.0);
4624                            let fut = async move {
4625                                <T as CocoonService>::readdir(&inner, request).await
4626                            };
4627                            Box::pin(fut)
4628                        }
4629                    }
4630                    let accept_compression_encodings = self.accept_compression_encodings;
4631                    let send_compression_encodings = self.send_compression_encodings;
4632                    let max_decoding_message_size = self.max_decoding_message_size;
4633                    let max_encoding_message_size = self.max_encoding_message_size;
4634                    let inner = self.inner.clone();
4635                    let fut = async move {
4636                        let method = readdirSvc(inner);
4637                        let codec = tonic_prost::ProstCodec::default();
4638                        let mut grpc = tonic::server::Grpc::new(codec)
4639                            .apply_compression_config(
4640                                accept_compression_encodings,
4641                                send_compression_encodings,
4642                            )
4643                            .apply_max_message_size_config(
4644                                max_decoding_message_size,
4645                                max_encoding_message_size,
4646                            );
4647                        let res = grpc.unary(method, req).await;
4648                        Ok(res)
4649                    };
4650                    Box::pin(fut)
4651                }
4652                "/Vine.CocoonService/watch_file" => {
4653                    #[allow(non_camel_case_types)]
4654                    struct watch_fileSvc<T: CocoonService>(pub Arc<T>);
4655                    impl<
4656                        T: CocoonService,
4657                    > tonic::server::UnaryService<super::WatchFileRequest>
4658                    for watch_fileSvc<T> {
4659                        type Response = super::Empty;
4660                        type Future = BoxFuture<
4661                            tonic::Response<Self::Response>,
4662                            tonic::Status,
4663                        >;
4664                        fn call(
4665                            &mut self,
4666                            request: tonic::Request<super::WatchFileRequest>,
4667                        ) -> Self::Future {
4668                            let inner = Arc::clone(&self.0);
4669                            let fut = async move {
4670                                <T as CocoonService>::watch_file(&inner, request).await
4671                            };
4672                            Box::pin(fut)
4673                        }
4674                    }
4675                    let accept_compression_encodings = self.accept_compression_encodings;
4676                    let send_compression_encodings = self.send_compression_encodings;
4677                    let max_decoding_message_size = self.max_decoding_message_size;
4678                    let max_encoding_message_size = self.max_encoding_message_size;
4679                    let inner = self.inner.clone();
4680                    let fut = async move {
4681                        let method = watch_fileSvc(inner);
4682                        let codec = tonic_prost::ProstCodec::default();
4683                        let mut grpc = tonic::server::Grpc::new(codec)
4684                            .apply_compression_config(
4685                                accept_compression_encodings,
4686                                send_compression_encodings,
4687                            )
4688                            .apply_max_message_size_config(
4689                                max_decoding_message_size,
4690                                max_encoding_message_size,
4691                            );
4692                        let res = grpc.unary(method, req).await;
4693                        Ok(res)
4694                    };
4695                    Box::pin(fut)
4696                }
4697                "/Vine.CocoonService/find_files" => {
4698                    #[allow(non_camel_case_types)]
4699                    struct find_filesSvc<T: CocoonService>(pub Arc<T>);
4700                    impl<
4701                        T: CocoonService,
4702                    > tonic::server::UnaryService<super::FindFilesRequest>
4703                    for find_filesSvc<T> {
4704                        type Response = super::FindFilesResponse;
4705                        type Future = BoxFuture<
4706                            tonic::Response<Self::Response>,
4707                            tonic::Status,
4708                        >;
4709                        fn call(
4710                            &mut self,
4711                            request: tonic::Request<super::FindFilesRequest>,
4712                        ) -> Self::Future {
4713                            let inner = Arc::clone(&self.0);
4714                            let fut = async move {
4715                                <T as CocoonService>::find_files(&inner, request).await
4716                            };
4717                            Box::pin(fut)
4718                        }
4719                    }
4720                    let accept_compression_encodings = self.accept_compression_encodings;
4721                    let send_compression_encodings = self.send_compression_encodings;
4722                    let max_decoding_message_size = self.max_decoding_message_size;
4723                    let max_encoding_message_size = self.max_encoding_message_size;
4724                    let inner = self.inner.clone();
4725                    let fut = async move {
4726                        let method = find_filesSvc(inner);
4727                        let codec = tonic_prost::ProstCodec::default();
4728                        let mut grpc = tonic::server::Grpc::new(codec)
4729                            .apply_compression_config(
4730                                accept_compression_encodings,
4731                                send_compression_encodings,
4732                            )
4733                            .apply_max_message_size_config(
4734                                max_decoding_message_size,
4735                                max_encoding_message_size,
4736                            );
4737                        let res = grpc.unary(method, req).await;
4738                        Ok(res)
4739                    };
4740                    Box::pin(fut)
4741                }
4742                "/Vine.CocoonService/find_text_in_files" => {
4743                    #[allow(non_camel_case_types)]
4744                    struct find_text_in_filesSvc<T: CocoonService>(pub Arc<T>);
4745                    impl<
4746                        T: CocoonService,
4747                    > tonic::server::UnaryService<super::FindTextInFilesRequest>
4748                    for find_text_in_filesSvc<T> {
4749                        type Response = super::FindTextInFilesResponse;
4750                        type Future = BoxFuture<
4751                            tonic::Response<Self::Response>,
4752                            tonic::Status,
4753                        >;
4754                        fn call(
4755                            &mut self,
4756                            request: tonic::Request<super::FindTextInFilesRequest>,
4757                        ) -> Self::Future {
4758                            let inner = Arc::clone(&self.0);
4759                            let fut = async move {
4760                                <T as CocoonService>::find_text_in_files(&inner, request)
4761                                    .await
4762                            };
4763                            Box::pin(fut)
4764                        }
4765                    }
4766                    let accept_compression_encodings = self.accept_compression_encodings;
4767                    let send_compression_encodings = self.send_compression_encodings;
4768                    let max_decoding_message_size = self.max_decoding_message_size;
4769                    let max_encoding_message_size = self.max_encoding_message_size;
4770                    let inner = self.inner.clone();
4771                    let fut = async move {
4772                        let method = find_text_in_filesSvc(inner);
4773                        let codec = tonic_prost::ProstCodec::default();
4774                        let mut grpc = tonic::server::Grpc::new(codec)
4775                            .apply_compression_config(
4776                                accept_compression_encodings,
4777                                send_compression_encodings,
4778                            )
4779                            .apply_max_message_size_config(
4780                                max_decoding_message_size,
4781                                max_encoding_message_size,
4782                            );
4783                        let res = grpc.unary(method, req).await;
4784                        Ok(res)
4785                    };
4786                    Box::pin(fut)
4787                }
4788                "/Vine.CocoonService/open_document" => {
4789                    #[allow(non_camel_case_types)]
4790                    struct open_documentSvc<T: CocoonService>(pub Arc<T>);
4791                    impl<
4792                        T: CocoonService,
4793                    > tonic::server::UnaryService<super::OpenDocumentRequest>
4794                    for open_documentSvc<T> {
4795                        type Response = super::OpenDocumentResponse;
4796                        type Future = BoxFuture<
4797                            tonic::Response<Self::Response>,
4798                            tonic::Status,
4799                        >;
4800                        fn call(
4801                            &mut self,
4802                            request: tonic::Request<super::OpenDocumentRequest>,
4803                        ) -> Self::Future {
4804                            let inner = Arc::clone(&self.0);
4805                            let fut = async move {
4806                                <T as CocoonService>::open_document(&inner, request).await
4807                            };
4808                            Box::pin(fut)
4809                        }
4810                    }
4811                    let accept_compression_encodings = self.accept_compression_encodings;
4812                    let send_compression_encodings = self.send_compression_encodings;
4813                    let max_decoding_message_size = self.max_decoding_message_size;
4814                    let max_encoding_message_size = self.max_encoding_message_size;
4815                    let inner = self.inner.clone();
4816                    let fut = async move {
4817                        let method = open_documentSvc(inner);
4818                        let codec = tonic_prost::ProstCodec::default();
4819                        let mut grpc = tonic::server::Grpc::new(codec)
4820                            .apply_compression_config(
4821                                accept_compression_encodings,
4822                                send_compression_encodings,
4823                            )
4824                            .apply_max_message_size_config(
4825                                max_decoding_message_size,
4826                                max_encoding_message_size,
4827                            );
4828                        let res = grpc.unary(method, req).await;
4829                        Ok(res)
4830                    };
4831                    Box::pin(fut)
4832                }
4833                "/Vine.CocoonService/save_all" => {
4834                    #[allow(non_camel_case_types)]
4835                    struct save_allSvc<T: CocoonService>(pub Arc<T>);
4836                    impl<
4837                        T: CocoonService,
4838                    > tonic::server::UnaryService<super::SaveAllRequest>
4839                    for save_allSvc<T> {
4840                        type Response = super::SaveAllResponse;
4841                        type Future = BoxFuture<
4842                            tonic::Response<Self::Response>,
4843                            tonic::Status,
4844                        >;
4845                        fn call(
4846                            &mut self,
4847                            request: tonic::Request<super::SaveAllRequest>,
4848                        ) -> Self::Future {
4849                            let inner = Arc::clone(&self.0);
4850                            let fut = async move {
4851                                <T as CocoonService>::save_all(&inner, request).await
4852                            };
4853                            Box::pin(fut)
4854                        }
4855                    }
4856                    let accept_compression_encodings = self.accept_compression_encodings;
4857                    let send_compression_encodings = self.send_compression_encodings;
4858                    let max_decoding_message_size = self.max_decoding_message_size;
4859                    let max_encoding_message_size = self.max_encoding_message_size;
4860                    let inner = self.inner.clone();
4861                    let fut = async move {
4862                        let method = save_allSvc(inner);
4863                        let codec = tonic_prost::ProstCodec::default();
4864                        let mut grpc = tonic::server::Grpc::new(codec)
4865                            .apply_compression_config(
4866                                accept_compression_encodings,
4867                                send_compression_encodings,
4868                            )
4869                            .apply_max_message_size_config(
4870                                max_decoding_message_size,
4871                                max_encoding_message_size,
4872                            );
4873                        let res = grpc.unary(method, req).await;
4874                        Ok(res)
4875                    };
4876                    Box::pin(fut)
4877                }
4878                "/Vine.CocoonService/apply_edit" => {
4879                    #[allow(non_camel_case_types)]
4880                    struct apply_editSvc<T: CocoonService>(pub Arc<T>);
4881                    impl<
4882                        T: CocoonService,
4883                    > tonic::server::UnaryService<super::ApplyEditRequest>
4884                    for apply_editSvc<T> {
4885                        type Response = super::ApplyEditResponse;
4886                        type Future = BoxFuture<
4887                            tonic::Response<Self::Response>,
4888                            tonic::Status,
4889                        >;
4890                        fn call(
4891                            &mut self,
4892                            request: tonic::Request<super::ApplyEditRequest>,
4893                        ) -> Self::Future {
4894                            let inner = Arc::clone(&self.0);
4895                            let fut = async move {
4896                                <T as CocoonService>::apply_edit(&inner, request).await
4897                            };
4898                            Box::pin(fut)
4899                        }
4900                    }
4901                    let accept_compression_encodings = self.accept_compression_encodings;
4902                    let send_compression_encodings = self.send_compression_encodings;
4903                    let max_decoding_message_size = self.max_decoding_message_size;
4904                    let max_encoding_message_size = self.max_encoding_message_size;
4905                    let inner = self.inner.clone();
4906                    let fut = async move {
4907                        let method = apply_editSvc(inner);
4908                        let codec = tonic_prost::ProstCodec::default();
4909                        let mut grpc = tonic::server::Grpc::new(codec)
4910                            .apply_compression_config(
4911                                accept_compression_encodings,
4912                                send_compression_encodings,
4913                            )
4914                            .apply_max_message_size_config(
4915                                max_decoding_message_size,
4916                                max_encoding_message_size,
4917                            );
4918                        let res = grpc.unary(method, req).await;
4919                        Ok(res)
4920                    };
4921                    Box::pin(fut)
4922                }
4923                "/Vine.CocoonService/update_configuration" => {
4924                    #[allow(non_camel_case_types)]
4925                    struct update_configurationSvc<T: CocoonService>(pub Arc<T>);
4926                    impl<
4927                        T: CocoonService,
4928                    > tonic::server::UnaryService<super::UpdateConfigurationRequest>
4929                    for update_configurationSvc<T> {
4930                        type Response = super::Empty;
4931                        type Future = BoxFuture<
4932                            tonic::Response<Self::Response>,
4933                            tonic::Status,
4934                        >;
4935                        fn call(
4936                            &mut self,
4937                            request: tonic::Request<super::UpdateConfigurationRequest>,
4938                        ) -> Self::Future {
4939                            let inner = Arc::clone(&self.0);
4940                            let fut = async move {
4941                                <T as CocoonService>::update_configuration(&inner, request)
4942                                    .await
4943                            };
4944                            Box::pin(fut)
4945                        }
4946                    }
4947                    let accept_compression_encodings = self.accept_compression_encodings;
4948                    let send_compression_encodings = self.send_compression_encodings;
4949                    let max_decoding_message_size = self.max_decoding_message_size;
4950                    let max_encoding_message_size = self.max_encoding_message_size;
4951                    let inner = self.inner.clone();
4952                    let fut = async move {
4953                        let method = update_configurationSvc(inner);
4954                        let codec = tonic_prost::ProstCodec::default();
4955                        let mut grpc = tonic::server::Grpc::new(codec)
4956                            .apply_compression_config(
4957                                accept_compression_encodings,
4958                                send_compression_encodings,
4959                            )
4960                            .apply_max_message_size_config(
4961                                max_decoding_message_size,
4962                                max_encoding_message_size,
4963                            );
4964                        let res = grpc.unary(method, req).await;
4965                        Ok(res)
4966                    };
4967                    Box::pin(fut)
4968                }
4969                "/Vine.CocoonService/update_workspace_folders" => {
4970                    #[allow(non_camel_case_types)]
4971                    struct update_workspace_foldersSvc<T: CocoonService>(pub Arc<T>);
4972                    impl<
4973                        T: CocoonService,
4974                    > tonic::server::UnaryService<super::UpdateWorkspaceFoldersRequest>
4975                    for update_workspace_foldersSvc<T> {
4976                        type Response = super::Empty;
4977                        type Future = BoxFuture<
4978                            tonic::Response<Self::Response>,
4979                            tonic::Status,
4980                        >;
4981                        fn call(
4982                            &mut self,
4983                            request: tonic::Request<super::UpdateWorkspaceFoldersRequest>,
4984                        ) -> Self::Future {
4985                            let inner = Arc::clone(&self.0);
4986                            let fut = async move {
4987                                <T as CocoonService>::update_workspace_folders(
4988                                        &inner,
4989                                        request,
4990                                    )
4991                                    .await
4992                            };
4993                            Box::pin(fut)
4994                        }
4995                    }
4996                    let accept_compression_encodings = self.accept_compression_encodings;
4997                    let send_compression_encodings = self.send_compression_encodings;
4998                    let max_decoding_message_size = self.max_decoding_message_size;
4999                    let max_encoding_message_size = self.max_encoding_message_size;
5000                    let inner = self.inner.clone();
5001                    let fut = async move {
5002                        let method = update_workspace_foldersSvc(inner);
5003                        let codec = tonic_prost::ProstCodec::default();
5004                        let mut grpc = tonic::server::Grpc::new(codec)
5005                            .apply_compression_config(
5006                                accept_compression_encodings,
5007                                send_compression_encodings,
5008                            )
5009                            .apply_max_message_size_config(
5010                                max_decoding_message_size,
5011                                max_encoding_message_size,
5012                            );
5013                        let res = grpc.unary(method, req).await;
5014                        Ok(res)
5015                    };
5016                    Box::pin(fut)
5017                }
5018                "/Vine.CocoonService/open_terminal" => {
5019                    #[allow(non_camel_case_types)]
5020                    struct open_terminalSvc<T: CocoonService>(pub Arc<T>);
5021                    impl<
5022                        T: CocoonService,
5023                    > tonic::server::UnaryService<super::OpenTerminalRequest>
5024                    for open_terminalSvc<T> {
5025                        type Response = super::Empty;
5026                        type Future = BoxFuture<
5027                            tonic::Response<Self::Response>,
5028                            tonic::Status,
5029                        >;
5030                        fn call(
5031                            &mut self,
5032                            request: tonic::Request<super::OpenTerminalRequest>,
5033                        ) -> Self::Future {
5034                            let inner = Arc::clone(&self.0);
5035                            let fut = async move {
5036                                <T as CocoonService>::open_terminal(&inner, request).await
5037                            };
5038                            Box::pin(fut)
5039                        }
5040                    }
5041                    let accept_compression_encodings = self.accept_compression_encodings;
5042                    let send_compression_encodings = self.send_compression_encodings;
5043                    let max_decoding_message_size = self.max_decoding_message_size;
5044                    let max_encoding_message_size = self.max_encoding_message_size;
5045                    let inner = self.inner.clone();
5046                    let fut = async move {
5047                        let method = open_terminalSvc(inner);
5048                        let codec = tonic_prost::ProstCodec::default();
5049                        let mut grpc = tonic::server::Grpc::new(codec)
5050                            .apply_compression_config(
5051                                accept_compression_encodings,
5052                                send_compression_encodings,
5053                            )
5054                            .apply_max_message_size_config(
5055                                max_decoding_message_size,
5056                                max_encoding_message_size,
5057                            );
5058                        let res = grpc.unary(method, req).await;
5059                        Ok(res)
5060                    };
5061                    Box::pin(fut)
5062                }
5063                "/Vine.CocoonService/terminal_input" => {
5064                    #[allow(non_camel_case_types)]
5065                    struct terminal_inputSvc<T: CocoonService>(pub Arc<T>);
5066                    impl<
5067                        T: CocoonService,
5068                    > tonic::server::UnaryService<super::TerminalInputRequest>
5069                    for terminal_inputSvc<T> {
5070                        type Response = super::Empty;
5071                        type Future = BoxFuture<
5072                            tonic::Response<Self::Response>,
5073                            tonic::Status,
5074                        >;
5075                        fn call(
5076                            &mut self,
5077                            request: tonic::Request<super::TerminalInputRequest>,
5078                        ) -> Self::Future {
5079                            let inner = Arc::clone(&self.0);
5080                            let fut = async move {
5081                                <T as CocoonService>::terminal_input(&inner, request).await
5082                            };
5083                            Box::pin(fut)
5084                        }
5085                    }
5086                    let accept_compression_encodings = self.accept_compression_encodings;
5087                    let send_compression_encodings = self.send_compression_encodings;
5088                    let max_decoding_message_size = self.max_decoding_message_size;
5089                    let max_encoding_message_size = self.max_encoding_message_size;
5090                    let inner = self.inner.clone();
5091                    let fut = async move {
5092                        let method = terminal_inputSvc(inner);
5093                        let codec = tonic_prost::ProstCodec::default();
5094                        let mut grpc = tonic::server::Grpc::new(codec)
5095                            .apply_compression_config(
5096                                accept_compression_encodings,
5097                                send_compression_encodings,
5098                            )
5099                            .apply_max_message_size_config(
5100                                max_decoding_message_size,
5101                                max_encoding_message_size,
5102                            );
5103                        let res = grpc.unary(method, req).await;
5104                        Ok(res)
5105                    };
5106                    Box::pin(fut)
5107                }
5108                "/Vine.CocoonService/close_terminal" => {
5109                    #[allow(non_camel_case_types)]
5110                    struct close_terminalSvc<T: CocoonService>(pub Arc<T>);
5111                    impl<
5112                        T: CocoonService,
5113                    > tonic::server::UnaryService<super::CloseTerminalRequest>
5114                    for close_terminalSvc<T> {
5115                        type Response = super::Empty;
5116                        type Future = BoxFuture<
5117                            tonic::Response<Self::Response>,
5118                            tonic::Status,
5119                        >;
5120                        fn call(
5121                            &mut self,
5122                            request: tonic::Request<super::CloseTerminalRequest>,
5123                        ) -> Self::Future {
5124                            let inner = Arc::clone(&self.0);
5125                            let fut = async move {
5126                                <T as CocoonService>::close_terminal(&inner, request).await
5127                            };
5128                            Box::pin(fut)
5129                        }
5130                    }
5131                    let accept_compression_encodings = self.accept_compression_encodings;
5132                    let send_compression_encodings = self.send_compression_encodings;
5133                    let max_decoding_message_size = self.max_decoding_message_size;
5134                    let max_encoding_message_size = self.max_encoding_message_size;
5135                    let inner = self.inner.clone();
5136                    let fut = async move {
5137                        let method = close_terminalSvc(inner);
5138                        let codec = tonic_prost::ProstCodec::default();
5139                        let mut grpc = tonic::server::Grpc::new(codec)
5140                            .apply_compression_config(
5141                                accept_compression_encodings,
5142                                send_compression_encodings,
5143                            )
5144                            .apply_max_message_size_config(
5145                                max_decoding_message_size,
5146                                max_encoding_message_size,
5147                            );
5148                        let res = grpc.unary(method, req).await;
5149                        Ok(res)
5150                    };
5151                    Box::pin(fut)
5152                }
5153                "/Vine.CocoonService/accept_terminal_opened" => {
5154                    #[allow(non_camel_case_types)]
5155                    struct accept_terminal_openedSvc<T: CocoonService>(pub Arc<T>);
5156                    impl<
5157                        T: CocoonService,
5158                    > tonic::server::UnaryService<super::TerminalOpenedNotification>
5159                    for accept_terminal_openedSvc<T> {
5160                        type Response = super::Empty;
5161                        type Future = BoxFuture<
5162                            tonic::Response<Self::Response>,
5163                            tonic::Status,
5164                        >;
5165                        fn call(
5166                            &mut self,
5167                            request: tonic::Request<super::TerminalOpenedNotification>,
5168                        ) -> Self::Future {
5169                            let inner = Arc::clone(&self.0);
5170                            let fut = async move {
5171                                <T as CocoonService>::accept_terminal_opened(
5172                                        &inner,
5173                                        request,
5174                                    )
5175                                    .await
5176                            };
5177                            Box::pin(fut)
5178                        }
5179                    }
5180                    let accept_compression_encodings = self.accept_compression_encodings;
5181                    let send_compression_encodings = self.send_compression_encodings;
5182                    let max_decoding_message_size = self.max_decoding_message_size;
5183                    let max_encoding_message_size = self.max_encoding_message_size;
5184                    let inner = self.inner.clone();
5185                    let fut = async move {
5186                        let method = accept_terminal_openedSvc(inner);
5187                        let codec = tonic_prost::ProstCodec::default();
5188                        let mut grpc = tonic::server::Grpc::new(codec)
5189                            .apply_compression_config(
5190                                accept_compression_encodings,
5191                                send_compression_encodings,
5192                            )
5193                            .apply_max_message_size_config(
5194                                max_decoding_message_size,
5195                                max_encoding_message_size,
5196                            );
5197                        let res = grpc.unary(method, req).await;
5198                        Ok(res)
5199                    };
5200                    Box::pin(fut)
5201                }
5202                "/Vine.CocoonService/accept_terminal_closed" => {
5203                    #[allow(non_camel_case_types)]
5204                    struct accept_terminal_closedSvc<T: CocoonService>(pub Arc<T>);
5205                    impl<
5206                        T: CocoonService,
5207                    > tonic::server::UnaryService<super::TerminalClosedNotification>
5208                    for accept_terminal_closedSvc<T> {
5209                        type Response = super::Empty;
5210                        type Future = BoxFuture<
5211                            tonic::Response<Self::Response>,
5212                            tonic::Status,
5213                        >;
5214                        fn call(
5215                            &mut self,
5216                            request: tonic::Request<super::TerminalClosedNotification>,
5217                        ) -> Self::Future {
5218                            let inner = Arc::clone(&self.0);
5219                            let fut = async move {
5220                                <T as CocoonService>::accept_terminal_closed(
5221                                        &inner,
5222                                        request,
5223                                    )
5224                                    .await
5225                            };
5226                            Box::pin(fut)
5227                        }
5228                    }
5229                    let accept_compression_encodings = self.accept_compression_encodings;
5230                    let send_compression_encodings = self.send_compression_encodings;
5231                    let max_decoding_message_size = self.max_decoding_message_size;
5232                    let max_encoding_message_size = self.max_encoding_message_size;
5233                    let inner = self.inner.clone();
5234                    let fut = async move {
5235                        let method = accept_terminal_closedSvc(inner);
5236                        let codec = tonic_prost::ProstCodec::default();
5237                        let mut grpc = tonic::server::Grpc::new(codec)
5238                            .apply_compression_config(
5239                                accept_compression_encodings,
5240                                send_compression_encodings,
5241                            )
5242                            .apply_max_message_size_config(
5243                                max_decoding_message_size,
5244                                max_encoding_message_size,
5245                            );
5246                        let res = grpc.unary(method, req).await;
5247                        Ok(res)
5248                    };
5249                    Box::pin(fut)
5250                }
5251                "/Vine.CocoonService/accept_terminal_process_id" => {
5252                    #[allow(non_camel_case_types)]
5253                    struct accept_terminal_process_idSvc<T: CocoonService>(pub Arc<T>);
5254                    impl<
5255                        T: CocoonService,
5256                    > tonic::server::UnaryService<super::TerminalProcessIdNotification>
5257                    for accept_terminal_process_idSvc<T> {
5258                        type Response = super::Empty;
5259                        type Future = BoxFuture<
5260                            tonic::Response<Self::Response>,
5261                            tonic::Status,
5262                        >;
5263                        fn call(
5264                            &mut self,
5265                            request: tonic::Request<super::TerminalProcessIdNotification>,
5266                        ) -> Self::Future {
5267                            let inner = Arc::clone(&self.0);
5268                            let fut = async move {
5269                                <T as CocoonService>::accept_terminal_process_id(
5270                                        &inner,
5271                                        request,
5272                                    )
5273                                    .await
5274                            };
5275                            Box::pin(fut)
5276                        }
5277                    }
5278                    let accept_compression_encodings = self.accept_compression_encodings;
5279                    let send_compression_encodings = self.send_compression_encodings;
5280                    let max_decoding_message_size = self.max_decoding_message_size;
5281                    let max_encoding_message_size = self.max_encoding_message_size;
5282                    let inner = self.inner.clone();
5283                    let fut = async move {
5284                        let method = accept_terminal_process_idSvc(inner);
5285                        let codec = tonic_prost::ProstCodec::default();
5286                        let mut grpc = tonic::server::Grpc::new(codec)
5287                            .apply_compression_config(
5288                                accept_compression_encodings,
5289                                send_compression_encodings,
5290                            )
5291                            .apply_max_message_size_config(
5292                                max_decoding_message_size,
5293                                max_encoding_message_size,
5294                            );
5295                        let res = grpc.unary(method, req).await;
5296                        Ok(res)
5297                    };
5298                    Box::pin(fut)
5299                }
5300                "/Vine.CocoonService/accept_terminal_process_data" => {
5301                    #[allow(non_camel_case_types)]
5302                    struct accept_terminal_process_dataSvc<T: CocoonService>(pub Arc<T>);
5303                    impl<
5304                        T: CocoonService,
5305                    > tonic::server::UnaryService<super::TerminalDataNotification>
5306                    for accept_terminal_process_dataSvc<T> {
5307                        type Response = super::Empty;
5308                        type Future = BoxFuture<
5309                            tonic::Response<Self::Response>,
5310                            tonic::Status,
5311                        >;
5312                        fn call(
5313                            &mut self,
5314                            request: tonic::Request<super::TerminalDataNotification>,
5315                        ) -> Self::Future {
5316                            let inner = Arc::clone(&self.0);
5317                            let fut = async move {
5318                                <T as CocoonService>::accept_terminal_process_data(
5319                                        &inner,
5320                                        request,
5321                                    )
5322                                    .await
5323                            };
5324                            Box::pin(fut)
5325                        }
5326                    }
5327                    let accept_compression_encodings = self.accept_compression_encodings;
5328                    let send_compression_encodings = self.send_compression_encodings;
5329                    let max_decoding_message_size = self.max_decoding_message_size;
5330                    let max_encoding_message_size = self.max_encoding_message_size;
5331                    let inner = self.inner.clone();
5332                    let fut = async move {
5333                        let method = accept_terminal_process_dataSvc(inner);
5334                        let codec = tonic_prost::ProstCodec::default();
5335                        let mut grpc = tonic::server::Grpc::new(codec)
5336                            .apply_compression_config(
5337                                accept_compression_encodings,
5338                                send_compression_encodings,
5339                            )
5340                            .apply_max_message_size_config(
5341                                max_decoding_message_size,
5342                                max_encoding_message_size,
5343                            );
5344                        let res = grpc.unary(method, req).await;
5345                        Ok(res)
5346                    };
5347                    Box::pin(fut)
5348                }
5349                "/Vine.CocoonService/register_tree_view_provider" => {
5350                    #[allow(non_camel_case_types)]
5351                    struct register_tree_view_providerSvc<T: CocoonService>(pub Arc<T>);
5352                    impl<
5353                        T: CocoonService,
5354                    > tonic::server::UnaryService<super::RegisterTreeViewProviderRequest>
5355                    for register_tree_view_providerSvc<T> {
5356                        type Response = super::Empty;
5357                        type Future = BoxFuture<
5358                            tonic::Response<Self::Response>,
5359                            tonic::Status,
5360                        >;
5361                        fn call(
5362                            &mut self,
5363                            request: tonic::Request<
5364                                super::RegisterTreeViewProviderRequest,
5365                            >,
5366                        ) -> Self::Future {
5367                            let inner = Arc::clone(&self.0);
5368                            let fut = async move {
5369                                <T as CocoonService>::register_tree_view_provider(
5370                                        &inner,
5371                                        request,
5372                                    )
5373                                    .await
5374                            };
5375                            Box::pin(fut)
5376                        }
5377                    }
5378                    let accept_compression_encodings = self.accept_compression_encodings;
5379                    let send_compression_encodings = self.send_compression_encodings;
5380                    let max_decoding_message_size = self.max_decoding_message_size;
5381                    let max_encoding_message_size = self.max_encoding_message_size;
5382                    let inner = self.inner.clone();
5383                    let fut = async move {
5384                        let method = register_tree_view_providerSvc(inner);
5385                        let codec = tonic_prost::ProstCodec::default();
5386                        let mut grpc = tonic::server::Grpc::new(codec)
5387                            .apply_compression_config(
5388                                accept_compression_encodings,
5389                                send_compression_encodings,
5390                            )
5391                            .apply_max_message_size_config(
5392                                max_decoding_message_size,
5393                                max_encoding_message_size,
5394                            );
5395                        let res = grpc.unary(method, req).await;
5396                        Ok(res)
5397                    };
5398                    Box::pin(fut)
5399                }
5400                "/Vine.CocoonService/get_tree_children" => {
5401                    #[allow(non_camel_case_types)]
5402                    struct get_tree_childrenSvc<T: CocoonService>(pub Arc<T>);
5403                    impl<
5404                        T: CocoonService,
5405                    > tonic::server::UnaryService<super::GetTreeChildrenRequest>
5406                    for get_tree_childrenSvc<T> {
5407                        type Response = super::GetTreeChildrenResponse;
5408                        type Future = BoxFuture<
5409                            tonic::Response<Self::Response>,
5410                            tonic::Status,
5411                        >;
5412                        fn call(
5413                            &mut self,
5414                            request: tonic::Request<super::GetTreeChildrenRequest>,
5415                        ) -> Self::Future {
5416                            let inner = Arc::clone(&self.0);
5417                            let fut = async move {
5418                                <T as CocoonService>::get_tree_children(&inner, request)
5419                                    .await
5420                            };
5421                            Box::pin(fut)
5422                        }
5423                    }
5424                    let accept_compression_encodings = self.accept_compression_encodings;
5425                    let send_compression_encodings = self.send_compression_encodings;
5426                    let max_decoding_message_size = self.max_decoding_message_size;
5427                    let max_encoding_message_size = self.max_encoding_message_size;
5428                    let inner = self.inner.clone();
5429                    let fut = async move {
5430                        let method = get_tree_childrenSvc(inner);
5431                        let codec = tonic_prost::ProstCodec::default();
5432                        let mut grpc = tonic::server::Grpc::new(codec)
5433                            .apply_compression_config(
5434                                accept_compression_encodings,
5435                                send_compression_encodings,
5436                            )
5437                            .apply_max_message_size_config(
5438                                max_decoding_message_size,
5439                                max_encoding_message_size,
5440                            );
5441                        let res = grpc.unary(method, req).await;
5442                        Ok(res)
5443                    };
5444                    Box::pin(fut)
5445                }
5446                "/Vine.CocoonService/register_scm_provider" => {
5447                    #[allow(non_camel_case_types)]
5448                    struct register_scm_providerSvc<T: CocoonService>(pub Arc<T>);
5449                    impl<
5450                        T: CocoonService,
5451                    > tonic::server::UnaryService<super::RegisterScmProviderRequest>
5452                    for register_scm_providerSvc<T> {
5453                        type Response = super::Empty;
5454                        type Future = BoxFuture<
5455                            tonic::Response<Self::Response>,
5456                            tonic::Status,
5457                        >;
5458                        fn call(
5459                            &mut self,
5460                            request: tonic::Request<super::RegisterScmProviderRequest>,
5461                        ) -> Self::Future {
5462                            let inner = Arc::clone(&self.0);
5463                            let fut = async move {
5464                                <T as CocoonService>::register_scm_provider(&inner, request)
5465                                    .await
5466                            };
5467                            Box::pin(fut)
5468                        }
5469                    }
5470                    let accept_compression_encodings = self.accept_compression_encodings;
5471                    let send_compression_encodings = self.send_compression_encodings;
5472                    let max_decoding_message_size = self.max_decoding_message_size;
5473                    let max_encoding_message_size = self.max_encoding_message_size;
5474                    let inner = self.inner.clone();
5475                    let fut = async move {
5476                        let method = register_scm_providerSvc(inner);
5477                        let codec = tonic_prost::ProstCodec::default();
5478                        let mut grpc = tonic::server::Grpc::new(codec)
5479                            .apply_compression_config(
5480                                accept_compression_encodings,
5481                                send_compression_encodings,
5482                            )
5483                            .apply_max_message_size_config(
5484                                max_decoding_message_size,
5485                                max_encoding_message_size,
5486                            );
5487                        let res = grpc.unary(method, req).await;
5488                        Ok(res)
5489                    };
5490                    Box::pin(fut)
5491                }
5492                "/Vine.CocoonService/update_scm_group" => {
5493                    #[allow(non_camel_case_types)]
5494                    struct update_scm_groupSvc<T: CocoonService>(pub Arc<T>);
5495                    impl<
5496                        T: CocoonService,
5497                    > tonic::server::UnaryService<super::UpdateScmGroupRequest>
5498                    for update_scm_groupSvc<T> {
5499                        type Response = super::Empty;
5500                        type Future = BoxFuture<
5501                            tonic::Response<Self::Response>,
5502                            tonic::Status,
5503                        >;
5504                        fn call(
5505                            &mut self,
5506                            request: tonic::Request<super::UpdateScmGroupRequest>,
5507                        ) -> Self::Future {
5508                            let inner = Arc::clone(&self.0);
5509                            let fut = async move {
5510                                <T as CocoonService>::update_scm_group(&inner, request)
5511                                    .await
5512                            };
5513                            Box::pin(fut)
5514                        }
5515                    }
5516                    let accept_compression_encodings = self.accept_compression_encodings;
5517                    let send_compression_encodings = self.send_compression_encodings;
5518                    let max_decoding_message_size = self.max_decoding_message_size;
5519                    let max_encoding_message_size = self.max_encoding_message_size;
5520                    let inner = self.inner.clone();
5521                    let fut = async move {
5522                        let method = update_scm_groupSvc(inner);
5523                        let codec = tonic_prost::ProstCodec::default();
5524                        let mut grpc = tonic::server::Grpc::new(codec)
5525                            .apply_compression_config(
5526                                accept_compression_encodings,
5527                                send_compression_encodings,
5528                            )
5529                            .apply_max_message_size_config(
5530                                max_decoding_message_size,
5531                                max_encoding_message_size,
5532                            );
5533                        let res = grpc.unary(method, req).await;
5534                        Ok(res)
5535                    };
5536                    Box::pin(fut)
5537                }
5538                "/Vine.CocoonService/git_exec" => {
5539                    #[allow(non_camel_case_types)]
5540                    struct git_execSvc<T: CocoonService>(pub Arc<T>);
5541                    impl<
5542                        T: CocoonService,
5543                    > tonic::server::UnaryService<super::GitExecRequest>
5544                    for git_execSvc<T> {
5545                        type Response = super::GitExecResponse;
5546                        type Future = BoxFuture<
5547                            tonic::Response<Self::Response>,
5548                            tonic::Status,
5549                        >;
5550                        fn call(
5551                            &mut self,
5552                            request: tonic::Request<super::GitExecRequest>,
5553                        ) -> Self::Future {
5554                            let inner = Arc::clone(&self.0);
5555                            let fut = async move {
5556                                <T as CocoonService>::git_exec(&inner, request).await
5557                            };
5558                            Box::pin(fut)
5559                        }
5560                    }
5561                    let accept_compression_encodings = self.accept_compression_encodings;
5562                    let send_compression_encodings = self.send_compression_encodings;
5563                    let max_decoding_message_size = self.max_decoding_message_size;
5564                    let max_encoding_message_size = self.max_encoding_message_size;
5565                    let inner = self.inner.clone();
5566                    let fut = async move {
5567                        let method = git_execSvc(inner);
5568                        let codec = tonic_prost::ProstCodec::default();
5569                        let mut grpc = tonic::server::Grpc::new(codec)
5570                            .apply_compression_config(
5571                                accept_compression_encodings,
5572                                send_compression_encodings,
5573                            )
5574                            .apply_max_message_size_config(
5575                                max_decoding_message_size,
5576                                max_encoding_message_size,
5577                            );
5578                        let res = grpc.unary(method, req).await;
5579                        Ok(res)
5580                    };
5581                    Box::pin(fut)
5582                }
5583                "/Vine.CocoonService/register_debug_adapter" => {
5584                    #[allow(non_camel_case_types)]
5585                    struct register_debug_adapterSvc<T: CocoonService>(pub Arc<T>);
5586                    impl<
5587                        T: CocoonService,
5588                    > tonic::server::UnaryService<super::RegisterDebugAdapterRequest>
5589                    for register_debug_adapterSvc<T> {
5590                        type Response = super::Empty;
5591                        type Future = BoxFuture<
5592                            tonic::Response<Self::Response>,
5593                            tonic::Status,
5594                        >;
5595                        fn call(
5596                            &mut self,
5597                            request: tonic::Request<super::RegisterDebugAdapterRequest>,
5598                        ) -> Self::Future {
5599                            let inner = Arc::clone(&self.0);
5600                            let fut = async move {
5601                                <T as CocoonService>::register_debug_adapter(
5602                                        &inner,
5603                                        request,
5604                                    )
5605                                    .await
5606                            };
5607                            Box::pin(fut)
5608                        }
5609                    }
5610                    let accept_compression_encodings = self.accept_compression_encodings;
5611                    let send_compression_encodings = self.send_compression_encodings;
5612                    let max_decoding_message_size = self.max_decoding_message_size;
5613                    let max_encoding_message_size = self.max_encoding_message_size;
5614                    let inner = self.inner.clone();
5615                    let fut = async move {
5616                        let method = register_debug_adapterSvc(inner);
5617                        let codec = tonic_prost::ProstCodec::default();
5618                        let mut grpc = tonic::server::Grpc::new(codec)
5619                            .apply_compression_config(
5620                                accept_compression_encodings,
5621                                send_compression_encodings,
5622                            )
5623                            .apply_max_message_size_config(
5624                                max_decoding_message_size,
5625                                max_encoding_message_size,
5626                            );
5627                        let res = grpc.unary(method, req).await;
5628                        Ok(res)
5629                    };
5630                    Box::pin(fut)
5631                }
5632                "/Vine.CocoonService/start_debugging" => {
5633                    #[allow(non_camel_case_types)]
5634                    struct start_debuggingSvc<T: CocoonService>(pub Arc<T>);
5635                    impl<
5636                        T: CocoonService,
5637                    > tonic::server::UnaryService<super::StartDebuggingRequest>
5638                    for start_debuggingSvc<T> {
5639                        type Response = super::StartDebuggingResponse;
5640                        type Future = BoxFuture<
5641                            tonic::Response<Self::Response>,
5642                            tonic::Status,
5643                        >;
5644                        fn call(
5645                            &mut self,
5646                            request: tonic::Request<super::StartDebuggingRequest>,
5647                        ) -> Self::Future {
5648                            let inner = Arc::clone(&self.0);
5649                            let fut = async move {
5650                                <T as CocoonService>::start_debugging(&inner, request).await
5651                            };
5652                            Box::pin(fut)
5653                        }
5654                    }
5655                    let accept_compression_encodings = self.accept_compression_encodings;
5656                    let send_compression_encodings = self.send_compression_encodings;
5657                    let max_decoding_message_size = self.max_decoding_message_size;
5658                    let max_encoding_message_size = self.max_encoding_message_size;
5659                    let inner = self.inner.clone();
5660                    let fut = async move {
5661                        let method = start_debuggingSvc(inner);
5662                        let codec = tonic_prost::ProstCodec::default();
5663                        let mut grpc = tonic::server::Grpc::new(codec)
5664                            .apply_compression_config(
5665                                accept_compression_encodings,
5666                                send_compression_encodings,
5667                            )
5668                            .apply_max_message_size_config(
5669                                max_decoding_message_size,
5670                                max_encoding_message_size,
5671                            );
5672                        let res = grpc.unary(method, req).await;
5673                        Ok(res)
5674                    };
5675                    Box::pin(fut)
5676                }
5677                "/Vine.CocoonService/participate_in_save" => {
5678                    #[allow(non_camel_case_types)]
5679                    struct participate_in_saveSvc<T: CocoonService>(pub Arc<T>);
5680                    impl<
5681                        T: CocoonService,
5682                    > tonic::server::UnaryService<super::ParticipateInSaveRequest>
5683                    for participate_in_saveSvc<T> {
5684                        type Response = super::ParticipateInSaveResponse;
5685                        type Future = BoxFuture<
5686                            tonic::Response<Self::Response>,
5687                            tonic::Status,
5688                        >;
5689                        fn call(
5690                            &mut self,
5691                            request: tonic::Request<super::ParticipateInSaveRequest>,
5692                        ) -> Self::Future {
5693                            let inner = Arc::clone(&self.0);
5694                            let fut = async move {
5695                                <T as CocoonService>::participate_in_save(&inner, request)
5696                                    .await
5697                            };
5698                            Box::pin(fut)
5699                        }
5700                    }
5701                    let accept_compression_encodings = self.accept_compression_encodings;
5702                    let send_compression_encodings = self.send_compression_encodings;
5703                    let max_decoding_message_size = self.max_decoding_message_size;
5704                    let max_encoding_message_size = self.max_encoding_message_size;
5705                    let inner = self.inner.clone();
5706                    let fut = async move {
5707                        let method = participate_in_saveSvc(inner);
5708                        let codec = tonic_prost::ProstCodec::default();
5709                        let mut grpc = tonic::server::Grpc::new(codec)
5710                            .apply_compression_config(
5711                                accept_compression_encodings,
5712                                send_compression_encodings,
5713                            )
5714                            .apply_max_message_size_config(
5715                                max_decoding_message_size,
5716                                max_encoding_message_size,
5717                            );
5718                        let res = grpc.unary(method, req).await;
5719                        Ok(res)
5720                    };
5721                    Box::pin(fut)
5722                }
5723                "/Vine.CocoonService/get_secret" => {
5724                    #[allow(non_camel_case_types)]
5725                    struct get_secretSvc<T: CocoonService>(pub Arc<T>);
5726                    impl<
5727                        T: CocoonService,
5728                    > tonic::server::UnaryService<super::GetSecretRequest>
5729                    for get_secretSvc<T> {
5730                        type Response = super::GetSecretResponse;
5731                        type Future = BoxFuture<
5732                            tonic::Response<Self::Response>,
5733                            tonic::Status,
5734                        >;
5735                        fn call(
5736                            &mut self,
5737                            request: tonic::Request<super::GetSecretRequest>,
5738                        ) -> Self::Future {
5739                            let inner = Arc::clone(&self.0);
5740                            let fut = async move {
5741                                <T as CocoonService>::get_secret(&inner, request).await
5742                            };
5743                            Box::pin(fut)
5744                        }
5745                    }
5746                    let accept_compression_encodings = self.accept_compression_encodings;
5747                    let send_compression_encodings = self.send_compression_encodings;
5748                    let max_decoding_message_size = self.max_decoding_message_size;
5749                    let max_encoding_message_size = self.max_encoding_message_size;
5750                    let inner = self.inner.clone();
5751                    let fut = async move {
5752                        let method = get_secretSvc(inner);
5753                        let codec = tonic_prost::ProstCodec::default();
5754                        let mut grpc = tonic::server::Grpc::new(codec)
5755                            .apply_compression_config(
5756                                accept_compression_encodings,
5757                                send_compression_encodings,
5758                            )
5759                            .apply_max_message_size_config(
5760                                max_decoding_message_size,
5761                                max_encoding_message_size,
5762                            );
5763                        let res = grpc.unary(method, req).await;
5764                        Ok(res)
5765                    };
5766                    Box::pin(fut)
5767                }
5768                "/Vine.CocoonService/store_secret" => {
5769                    #[allow(non_camel_case_types)]
5770                    struct store_secretSvc<T: CocoonService>(pub Arc<T>);
5771                    impl<
5772                        T: CocoonService,
5773                    > tonic::server::UnaryService<super::StoreSecretRequest>
5774                    for store_secretSvc<T> {
5775                        type Response = super::Empty;
5776                        type Future = BoxFuture<
5777                            tonic::Response<Self::Response>,
5778                            tonic::Status,
5779                        >;
5780                        fn call(
5781                            &mut self,
5782                            request: tonic::Request<super::StoreSecretRequest>,
5783                        ) -> Self::Future {
5784                            let inner = Arc::clone(&self.0);
5785                            let fut = async move {
5786                                <T as CocoonService>::store_secret(&inner, request).await
5787                            };
5788                            Box::pin(fut)
5789                        }
5790                    }
5791                    let accept_compression_encodings = self.accept_compression_encodings;
5792                    let send_compression_encodings = self.send_compression_encodings;
5793                    let max_decoding_message_size = self.max_decoding_message_size;
5794                    let max_encoding_message_size = self.max_encoding_message_size;
5795                    let inner = self.inner.clone();
5796                    let fut = async move {
5797                        let method = store_secretSvc(inner);
5798                        let codec = tonic_prost::ProstCodec::default();
5799                        let mut grpc = tonic::server::Grpc::new(codec)
5800                            .apply_compression_config(
5801                                accept_compression_encodings,
5802                                send_compression_encodings,
5803                            )
5804                            .apply_max_message_size_config(
5805                                max_decoding_message_size,
5806                                max_encoding_message_size,
5807                            );
5808                        let res = grpc.unary(method, req).await;
5809                        Ok(res)
5810                    };
5811                    Box::pin(fut)
5812                }
5813                "/Vine.CocoonService/delete_secret" => {
5814                    #[allow(non_camel_case_types)]
5815                    struct delete_secretSvc<T: CocoonService>(pub Arc<T>);
5816                    impl<
5817                        T: CocoonService,
5818                    > tonic::server::UnaryService<super::DeleteSecretRequest>
5819                    for delete_secretSvc<T> {
5820                        type Response = super::Empty;
5821                        type Future = BoxFuture<
5822                            tonic::Response<Self::Response>,
5823                            tonic::Status,
5824                        >;
5825                        fn call(
5826                            &mut self,
5827                            request: tonic::Request<super::DeleteSecretRequest>,
5828                        ) -> Self::Future {
5829                            let inner = Arc::clone(&self.0);
5830                            let fut = async move {
5831                                <T as CocoonService>::delete_secret(&inner, request).await
5832                            };
5833                            Box::pin(fut)
5834                        }
5835                    }
5836                    let accept_compression_encodings = self.accept_compression_encodings;
5837                    let send_compression_encodings = self.send_compression_encodings;
5838                    let max_decoding_message_size = self.max_decoding_message_size;
5839                    let max_encoding_message_size = self.max_encoding_message_size;
5840                    let inner = self.inner.clone();
5841                    let fut = async move {
5842                        let method = delete_secretSvc(inner);
5843                        let codec = tonic_prost::ProstCodec::default();
5844                        let mut grpc = tonic::server::Grpc::new(codec)
5845                            .apply_compression_config(
5846                                accept_compression_encodings,
5847                                send_compression_encodings,
5848                            )
5849                            .apply_max_message_size_config(
5850                                max_decoding_message_size,
5851                                max_encoding_message_size,
5852                            );
5853                        let res = grpc.unary(method, req).await;
5854                        Ok(res)
5855                    };
5856                    Box::pin(fut)
5857                }
5858                _ => {
5859                    Box::pin(async move {
5860                        let mut response = http::Response::new(
5861                            tonic::body::Body::default(),
5862                        );
5863                        let headers = response.headers_mut();
5864                        headers
5865                            .insert(
5866                                tonic::Status::GRPC_STATUS,
5867                                (tonic::Code::Unimplemented as i32).into(),
5868                            );
5869                        headers
5870                            .insert(
5871                                http::header::CONTENT_TYPE,
5872                                tonic::metadata::GRPC_CONTENT_TYPE,
5873                            );
5874                        Ok(response)
5875                    })
5876                }
5877            }
5878        }
5879    }
5880    impl<T> Clone for CocoonServiceServer<T> {
5881        fn clone(&self) -> Self {
5882            let inner = self.inner.clone();
5883            Self {
5884                inner,
5885                accept_compression_encodings: self.accept_compression_encodings,
5886                send_compression_encodings: self.send_compression_encodings,
5887                max_decoding_message_size: self.max_decoding_message_size,
5888                max_encoding_message_size: self.max_encoding_message_size,
5889            }
5890        }
5891    }
5892    /// Generated gRPC service name
5893    pub const SERVICE_NAME: &str = "Vine.CocoonService";
5894    impl<T> tonic::server::NamedService for CocoonServiceServer<T> {
5895        const NAME: &'static str = SERVICE_NAME;
5896    }
5897}