Skip to main content

polyester/gen/connect/
layout.v1.rs

1// @generated by connectrpc-codegen. DO NOT EDIT.
2
3///Shorthand for `OwnedView<GetLayoutsRequestView<'static>>`.
4pub type OwnedGetLayoutsRequestView = ::buffa::view::OwnedView<
5    crate::proto::layout::v1::__buffa::view::GetLayoutsRequestView<'static>,
6>;
7///Shorthand for `OwnedView<GetLayoutsResponseView<'static>>`.
8pub type OwnedGetLayoutsResponseView = ::buffa::view::OwnedView<
9    crate::proto::layout::v1::__buffa::view::GetLayoutsResponseView<'static>,
10>;
11///Shorthand for `OwnedView<GetLayoutRequestView<'static>>`.
12pub type OwnedGetLayoutRequestView = ::buffa::view::OwnedView<
13    crate::proto::layout::v1::__buffa::view::GetLayoutRequestView<'static>,
14>;
15///Shorthand for `OwnedView<GetLayoutResponseView<'static>>`.
16pub type OwnedGetLayoutResponseView = ::buffa::view::OwnedView<
17    crate::proto::layout::v1::__buffa::view::GetLayoutResponseView<'static>,
18>;
19///Shorthand for `OwnedView<UpsertLayoutRequestView<'static>>`.
20pub type OwnedUpsertLayoutRequestView = ::buffa::view::OwnedView<
21    crate::proto::layout::v1::__buffa::view::UpsertLayoutRequestView<'static>,
22>;
23///Shorthand for `OwnedView<UpsertLayoutResponseView<'static>>`.
24pub type OwnedUpsertLayoutResponseView = ::buffa::view::OwnedView<
25    crate::proto::layout::v1::__buffa::view::UpsertLayoutResponseView<'static>,
26>;
27///Shorthand for `OwnedView<DeleteLayoutRequestView<'static>>`.
28pub type OwnedDeleteLayoutRequestView = ::buffa::view::OwnedView<
29    crate::proto::layout::v1::__buffa::view::DeleteLayoutRequestView<'static>,
30>;
31///Shorthand for `OwnedView<DeleteLayoutResponseView<'static>>`.
32pub type OwnedDeleteLayoutResponseView = ::buffa::view::OwnedView<
33    crate::proto::layout::v1::__buffa::view::DeleteLayoutResponseView<'static>,
34>;
35///Shorthand for `OwnedView<ResolveLayoutShareTokenRequestView<'static>>`.
36pub type OwnedResolveLayoutShareTokenRequestView = ::buffa::view::OwnedView<
37    crate::proto::layout::v1::__buffa::view::ResolveLayoutShareTokenRequestView<'static>,
38>;
39///Shorthand for `OwnedView<ResolveLayoutShareTokenResponseView<'static>>`.
40pub type OwnedResolveLayoutShareTokenResponseView = ::buffa::view::OwnedView<
41    crate::proto::layout::v1::__buffa::view::ResolveLayoutShareTokenResponseView<'static>,
42>;
43///Shorthand for `OwnedView<CreateLayoutShareLinkRequestView<'static>>`.
44pub type OwnedCreateLayoutShareLinkRequestView = ::buffa::view::OwnedView<
45    crate::proto::layout::v1::__buffa::view::CreateLayoutShareLinkRequestView<'static>,
46>;
47///Shorthand for `OwnedView<CreateLayoutShareLinkResponseView<'static>>`.
48pub type OwnedCreateLayoutShareLinkResponseView = ::buffa::view::OwnedView<
49    crate::proto::layout::v1::__buffa::view::CreateLayoutShareLinkResponseView<'static>,
50>;
51///Shorthand for `OwnedView<RevokeLayoutShareLinkRequestView<'static>>`.
52pub type OwnedRevokeLayoutShareLinkRequestView = ::buffa::view::OwnedView<
53    crate::proto::layout::v1::__buffa::view::RevokeLayoutShareLinkRequestView<'static>,
54>;
55///Shorthand for `OwnedView<RevokeLayoutShareLinkResponseView<'static>>`.
56pub type OwnedRevokeLayoutShareLinkResponseView = ::buffa::view::OwnedView<
57    crate::proto::layout::v1::__buffa::view::RevokeLayoutShareLinkResponseView<'static>,
58>;
59///Shorthand for `OwnedView<ListOwnerPublishedLayoutsRequestView<'static>>`.
60pub type OwnedListOwnerPublishedLayoutsRequestView = ::buffa::view::OwnedView<
61    crate::proto::layout::v1::__buffa::view::ListOwnerPublishedLayoutsRequestView<
62        'static,
63    >,
64>;
65///Shorthand for `OwnedView<ListOwnerPublishedLayoutsResponseView<'static>>`.
66pub type OwnedListOwnerPublishedLayoutsResponseView = ::buffa::view::OwnedView<
67    crate::proto::layout::v1::__buffa::view::ListOwnerPublishedLayoutsResponseView<
68        'static,
69    >,
70>;
71///Shorthand for `OwnedView<PublishLayoutRequestView<'static>>`.
72pub type OwnedPublishLayoutRequestView = ::buffa::view::OwnedView<
73    crate::proto::layout::v1::__buffa::view::PublishLayoutRequestView<'static>,
74>;
75///Shorthand for `OwnedView<PublishLayoutResponseView<'static>>`.
76pub type OwnedPublishLayoutResponseView = ::buffa::view::OwnedView<
77    crate::proto::layout::v1::__buffa::view::PublishLayoutResponseView<'static>,
78>;
79///Shorthand for `OwnedView<UnpublishLayoutRequestView<'static>>`.
80pub type OwnedUnpublishLayoutRequestView = ::buffa::view::OwnedView<
81    crate::proto::layout::v1::__buffa::view::UnpublishLayoutRequestView<'static>,
82>;
83///Shorthand for `OwnedView<UnpublishLayoutResponseView<'static>>`.
84pub type OwnedUnpublishLayoutResponseView = ::buffa::view::OwnedView<
85    crate::proto::layout::v1::__buffa::view::UnpublishLayoutResponseView<'static>,
86>;
87///Shorthand for `OwnedView<ListLayoutTemplateVersionsRequestView<'static>>`.
88pub type OwnedListLayoutTemplateVersionsRequestView = ::buffa::view::OwnedView<
89    crate::proto::layout::v1::__buffa::view::ListLayoutTemplateVersionsRequestView<
90        'static,
91    >,
92>;
93///Shorthand for `OwnedView<ListLayoutTemplateVersionsResponseView<'static>>`.
94pub type OwnedListLayoutTemplateVersionsResponseView = ::buffa::view::OwnedView<
95    crate::proto::layout::v1::__buffa::view::ListLayoutTemplateVersionsResponseView<
96        'static,
97    >,
98>;
99///Shorthand for `OwnedView<GetLayoutTemplateVersionRequestView<'static>>`.
100pub type OwnedGetLayoutTemplateVersionRequestView = ::buffa::view::OwnedView<
101    crate::proto::layout::v1::__buffa::view::GetLayoutTemplateVersionRequestView<'static>,
102>;
103///Shorthand for `OwnedView<GetLayoutTemplateVersionResponseView<'static>>`.
104pub type OwnedGetLayoutTemplateVersionResponseView = ::buffa::view::OwnedView<
105    crate::proto::layout::v1::__buffa::view::GetLayoutTemplateVersionResponseView<
106        'static,
107    >,
108>;
109///Shorthand for `OwnedView<SetLayoutTemplateSubscriptionRequestView<'static>>`.
110pub type OwnedSetLayoutTemplateSubscriptionRequestView = ::buffa::view::OwnedView<
111    crate::proto::layout::v1::__buffa::view::SetLayoutTemplateSubscriptionRequestView<
112        'static,
113    >,
114>;
115///Shorthand for `OwnedView<SetLayoutTemplateSubscriptionResponseView<'static>>`.
116pub type OwnedSetLayoutTemplateSubscriptionResponseView = ::buffa::view::OwnedView<
117    crate::proto::layout::v1::__buffa::view::SetLayoutTemplateSubscriptionResponseView<
118        'static,
119    >,
120>;
121///Shorthand for `OwnedView<DeleteLayoutTemplateSubscriptionRequestView<'static>>`.
122pub type OwnedDeleteLayoutTemplateSubscriptionRequestView = ::buffa::view::OwnedView<
123    crate::proto::layout::v1::__buffa::view::DeleteLayoutTemplateSubscriptionRequestView<
124        'static,
125    >,
126>;
127///Shorthand for `OwnedView<DeleteLayoutTemplateSubscriptionResponseView<'static>>`.
128pub type OwnedDeleteLayoutTemplateSubscriptionResponseView = ::buffa::view::OwnedView<
129    crate::proto::layout::v1::__buffa::view::DeleteLayoutTemplateSubscriptionResponseView<
130        'static,
131    >,
132>;
133///Shorthand for `OwnedView<ListMyLayoutTemplateSubscriptionsRequestView<'static>>`.
134pub type OwnedListMyLayoutTemplateSubscriptionsRequestView = ::buffa::view::OwnedView<
135    crate::proto::layout::v1::__buffa::view::ListMyLayoutTemplateSubscriptionsRequestView<
136        'static,
137    >,
138>;
139///Shorthand for `OwnedView<ListMyLayoutTemplateSubscriptionsResponseView<'static>>`.
140pub type OwnedListMyLayoutTemplateSubscriptionsResponseView = ::buffa::view::OwnedView<
141    crate::proto::layout::v1::__buffa::view::ListMyLayoutTemplateSubscriptionsResponseView<
142        'static,
143    >,
144>;
145impl ::connectrpc::Encodable<crate::proto::layout::v1::GetLayoutsResponse>
146for crate::proto::layout::v1::__buffa::view::GetLayoutsResponseView<'_> {
147    fn encode(
148        &self,
149        codec: ::connectrpc::CodecFormat,
150    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
151        ::connectrpc::__codegen::encode_view_body(self, codec)
152    }
153}
154impl ::connectrpc::Encodable<crate::proto::layout::v1::GetLayoutsResponse>
155for ::buffa::view::OwnedView<
156    crate::proto::layout::v1::__buffa::view::GetLayoutsResponseView<'static>,
157> {
158    fn encode(
159        &self,
160        codec: ::connectrpc::CodecFormat,
161    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
162        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
163    }
164}
165impl ::connectrpc::Encodable<crate::proto::layout::v1::GetLayoutResponse>
166for crate::proto::layout::v1::__buffa::view::GetLayoutResponseView<'_> {
167    fn encode(
168        &self,
169        codec: ::connectrpc::CodecFormat,
170    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
171        ::connectrpc::__codegen::encode_view_body(self, codec)
172    }
173}
174impl ::connectrpc::Encodable<crate::proto::layout::v1::GetLayoutResponse>
175for ::buffa::view::OwnedView<
176    crate::proto::layout::v1::__buffa::view::GetLayoutResponseView<'static>,
177> {
178    fn encode(
179        &self,
180        codec: ::connectrpc::CodecFormat,
181    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
182        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
183    }
184}
185impl ::connectrpc::Encodable<crate::proto::layout::v1::UpsertLayoutResponse>
186for crate::proto::layout::v1::__buffa::view::UpsertLayoutResponseView<'_> {
187    fn encode(
188        &self,
189        codec: ::connectrpc::CodecFormat,
190    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
191        ::connectrpc::__codegen::encode_view_body(self, codec)
192    }
193}
194impl ::connectrpc::Encodable<crate::proto::layout::v1::UpsertLayoutResponse>
195for ::buffa::view::OwnedView<
196    crate::proto::layout::v1::__buffa::view::UpsertLayoutResponseView<'static>,
197> {
198    fn encode(
199        &self,
200        codec: ::connectrpc::CodecFormat,
201    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
202        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
203    }
204}
205impl ::connectrpc::Encodable<crate::proto::layout::v1::DeleteLayoutResponse>
206for crate::proto::layout::v1::__buffa::view::DeleteLayoutResponseView<'_> {
207    fn encode(
208        &self,
209        codec: ::connectrpc::CodecFormat,
210    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
211        ::connectrpc::__codegen::encode_view_body(self, codec)
212    }
213}
214impl ::connectrpc::Encodable<crate::proto::layout::v1::DeleteLayoutResponse>
215for ::buffa::view::OwnedView<
216    crate::proto::layout::v1::__buffa::view::DeleteLayoutResponseView<'static>,
217> {
218    fn encode(
219        &self,
220        codec: ::connectrpc::CodecFormat,
221    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
222        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
223    }
224}
225impl ::connectrpc::Encodable<crate::proto::layout::v1::ResolveLayoutShareTokenResponse>
226for crate::proto::layout::v1::__buffa::view::ResolveLayoutShareTokenResponseView<'_> {
227    fn encode(
228        &self,
229        codec: ::connectrpc::CodecFormat,
230    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
231        ::connectrpc::__codegen::encode_view_body(self, codec)
232    }
233}
234impl ::connectrpc::Encodable<crate::proto::layout::v1::ResolveLayoutShareTokenResponse>
235for ::buffa::view::OwnedView<
236    crate::proto::layout::v1::__buffa::view::ResolveLayoutShareTokenResponseView<'static>,
237> {
238    fn encode(
239        &self,
240        codec: ::connectrpc::CodecFormat,
241    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
242        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
243    }
244}
245impl ::connectrpc::Encodable<crate::proto::layout::v1::CreateLayoutShareLinkResponse>
246for crate::proto::layout::v1::__buffa::view::CreateLayoutShareLinkResponseView<'_> {
247    fn encode(
248        &self,
249        codec: ::connectrpc::CodecFormat,
250    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
251        ::connectrpc::__codegen::encode_view_body(self, codec)
252    }
253}
254impl ::connectrpc::Encodable<crate::proto::layout::v1::CreateLayoutShareLinkResponse>
255for ::buffa::view::OwnedView<
256    crate::proto::layout::v1::__buffa::view::CreateLayoutShareLinkResponseView<'static>,
257> {
258    fn encode(
259        &self,
260        codec: ::connectrpc::CodecFormat,
261    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
262        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
263    }
264}
265impl ::connectrpc::Encodable<crate::proto::layout::v1::RevokeLayoutShareLinkResponse>
266for crate::proto::layout::v1::__buffa::view::RevokeLayoutShareLinkResponseView<'_> {
267    fn encode(
268        &self,
269        codec: ::connectrpc::CodecFormat,
270    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
271        ::connectrpc::__codegen::encode_view_body(self, codec)
272    }
273}
274impl ::connectrpc::Encodable<crate::proto::layout::v1::RevokeLayoutShareLinkResponse>
275for ::buffa::view::OwnedView<
276    crate::proto::layout::v1::__buffa::view::RevokeLayoutShareLinkResponseView<'static>,
277> {
278    fn encode(
279        &self,
280        codec: ::connectrpc::CodecFormat,
281    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
282        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
283    }
284}
285impl ::connectrpc::Encodable<crate::proto::layout::v1::ListOwnerPublishedLayoutsResponse>
286for crate::proto::layout::v1::__buffa::view::ListOwnerPublishedLayoutsResponseView<'_> {
287    fn encode(
288        &self,
289        codec: ::connectrpc::CodecFormat,
290    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
291        ::connectrpc::__codegen::encode_view_body(self, codec)
292    }
293}
294impl ::connectrpc::Encodable<crate::proto::layout::v1::ListOwnerPublishedLayoutsResponse>
295for ::buffa::view::OwnedView<
296    crate::proto::layout::v1::__buffa::view::ListOwnerPublishedLayoutsResponseView<
297        'static,
298    >,
299> {
300    fn encode(
301        &self,
302        codec: ::connectrpc::CodecFormat,
303    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
304        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
305    }
306}
307impl ::connectrpc::Encodable<crate::proto::layout::v1::PublishLayoutResponse>
308for crate::proto::layout::v1::__buffa::view::PublishLayoutResponseView<'_> {
309    fn encode(
310        &self,
311        codec: ::connectrpc::CodecFormat,
312    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
313        ::connectrpc::__codegen::encode_view_body(self, codec)
314    }
315}
316impl ::connectrpc::Encodable<crate::proto::layout::v1::PublishLayoutResponse>
317for ::buffa::view::OwnedView<
318    crate::proto::layout::v1::__buffa::view::PublishLayoutResponseView<'static>,
319> {
320    fn encode(
321        &self,
322        codec: ::connectrpc::CodecFormat,
323    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
324        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
325    }
326}
327impl ::connectrpc::Encodable<crate::proto::layout::v1::UnpublishLayoutResponse>
328for crate::proto::layout::v1::__buffa::view::UnpublishLayoutResponseView<'_> {
329    fn encode(
330        &self,
331        codec: ::connectrpc::CodecFormat,
332    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
333        ::connectrpc::__codegen::encode_view_body(self, codec)
334    }
335}
336impl ::connectrpc::Encodable<crate::proto::layout::v1::UnpublishLayoutResponse>
337for ::buffa::view::OwnedView<
338    crate::proto::layout::v1::__buffa::view::UnpublishLayoutResponseView<'static>,
339> {
340    fn encode(
341        &self,
342        codec: ::connectrpc::CodecFormat,
343    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
344        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
345    }
346}
347impl ::connectrpc::Encodable<
348    crate::proto::layout::v1::ListLayoutTemplateVersionsResponse,
349>
350for crate::proto::layout::v1::__buffa::view::ListLayoutTemplateVersionsResponseView<'_> {
351    fn encode(
352        &self,
353        codec: ::connectrpc::CodecFormat,
354    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
355        ::connectrpc::__codegen::encode_view_body(self, codec)
356    }
357}
358impl ::connectrpc::Encodable<
359    crate::proto::layout::v1::ListLayoutTemplateVersionsResponse,
360>
361for ::buffa::view::OwnedView<
362    crate::proto::layout::v1::__buffa::view::ListLayoutTemplateVersionsResponseView<
363        'static,
364    >,
365> {
366    fn encode(
367        &self,
368        codec: ::connectrpc::CodecFormat,
369    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
370        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
371    }
372}
373impl ::connectrpc::Encodable<crate::proto::layout::v1::GetLayoutTemplateVersionResponse>
374for crate::proto::layout::v1::__buffa::view::GetLayoutTemplateVersionResponseView<'_> {
375    fn encode(
376        &self,
377        codec: ::connectrpc::CodecFormat,
378    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
379        ::connectrpc::__codegen::encode_view_body(self, codec)
380    }
381}
382impl ::connectrpc::Encodable<crate::proto::layout::v1::GetLayoutTemplateVersionResponse>
383for ::buffa::view::OwnedView<
384    crate::proto::layout::v1::__buffa::view::GetLayoutTemplateVersionResponseView<
385        'static,
386    >,
387> {
388    fn encode(
389        &self,
390        codec: ::connectrpc::CodecFormat,
391    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
392        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
393    }
394}
395impl ::connectrpc::Encodable<
396    crate::proto::layout::v1::SetLayoutTemplateSubscriptionResponse,
397>
398for crate::proto::layout::v1::__buffa::view::SetLayoutTemplateSubscriptionResponseView<
399    '_,
400> {
401    fn encode(
402        &self,
403        codec: ::connectrpc::CodecFormat,
404    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
405        ::connectrpc::__codegen::encode_view_body(self, codec)
406    }
407}
408impl ::connectrpc::Encodable<
409    crate::proto::layout::v1::SetLayoutTemplateSubscriptionResponse,
410>
411for ::buffa::view::OwnedView<
412    crate::proto::layout::v1::__buffa::view::SetLayoutTemplateSubscriptionResponseView<
413        'static,
414    >,
415> {
416    fn encode(
417        &self,
418        codec: ::connectrpc::CodecFormat,
419    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
420        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
421    }
422}
423impl ::connectrpc::Encodable<
424    crate::proto::layout::v1::DeleteLayoutTemplateSubscriptionResponse,
425>
426for crate::proto::layout::v1::__buffa::view::DeleteLayoutTemplateSubscriptionResponseView<
427    '_,
428> {
429    fn encode(
430        &self,
431        codec: ::connectrpc::CodecFormat,
432    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
433        ::connectrpc::__codegen::encode_view_body(self, codec)
434    }
435}
436impl ::connectrpc::Encodable<
437    crate::proto::layout::v1::DeleteLayoutTemplateSubscriptionResponse,
438>
439for ::buffa::view::OwnedView<
440    crate::proto::layout::v1::__buffa::view::DeleteLayoutTemplateSubscriptionResponseView<
441        'static,
442    >,
443> {
444    fn encode(
445        &self,
446        codec: ::connectrpc::CodecFormat,
447    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
448        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
449    }
450}
451impl ::connectrpc::Encodable<
452    crate::proto::layout::v1::ListMyLayoutTemplateSubscriptionsResponse,
453>
454for crate::proto::layout::v1::__buffa::view::ListMyLayoutTemplateSubscriptionsResponseView<
455    '_,
456> {
457    fn encode(
458        &self,
459        codec: ::connectrpc::CodecFormat,
460    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
461        ::connectrpc::__codegen::encode_view_body(self, codec)
462    }
463}
464impl ::connectrpc::Encodable<
465    crate::proto::layout::v1::ListMyLayoutTemplateSubscriptionsResponse,
466>
467for ::buffa::view::OwnedView<
468    crate::proto::layout::v1::__buffa::view::ListMyLayoutTemplateSubscriptionsResponseView<
469        'static,
470    >,
471> {
472    fn encode(
473        &self,
474        codec: ::connectrpc::CodecFormat,
475    ) -> ::std::result::Result<::buffa::bytes::Bytes, ::connectrpc::ConnectError> {
476        ::connectrpc::__codegen::encode_view_body(self.reborrow(), codec)
477    }
478}
479/// Full service name for this service.
480pub const LAYOUT_SERVICE_SERVICE_NAME: &str = "layout.v1.LayoutService";
481/// Static [`Spec`](::connectrpc::Spec) for the server-side `GetLayouts` RPC.
482///
483/// The dispatcher surfaces this on
484/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
485pub const LAYOUT_SERVICE_GET_LAYOUTS_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
486        "/layout.v1.LayoutService/GetLayouts",
487        ::connectrpc::StreamType::Unary,
488    )
489    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
490/// Static [`Spec`](::connectrpc::Spec) for the server-side `GetLayout` RPC.
491///
492/// The dispatcher surfaces this on
493/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
494pub const LAYOUT_SERVICE_GET_LAYOUT_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
495        "/layout.v1.LayoutService/GetLayout",
496        ::connectrpc::StreamType::Unary,
497    )
498    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
499/// Static [`Spec`](::connectrpc::Spec) for the server-side `UpsertLayout` RPC.
500///
501/// The dispatcher surfaces this on
502/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
503pub const LAYOUT_SERVICE_UPSERT_LAYOUT_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
504        "/layout.v1.LayoutService/UpsertLayout",
505        ::connectrpc::StreamType::Unary,
506    )
507    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
508/// Static [`Spec`](::connectrpc::Spec) for the server-side `DeleteLayout` RPC.
509///
510/// The dispatcher surfaces this on
511/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
512pub const LAYOUT_SERVICE_DELETE_LAYOUT_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
513        "/layout.v1.LayoutService/DeleteLayout",
514        ::connectrpc::StreamType::Unary,
515    )
516    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
517/// Static [`Spec`](::connectrpc::Spec) for the server-side `ResolveLayoutShareToken` RPC.
518///
519/// The dispatcher surfaces this on
520/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
521pub const LAYOUT_SERVICE_RESOLVE_LAYOUT_SHARE_TOKEN_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
522        "/layout.v1.LayoutService/ResolveLayoutShareToken",
523        ::connectrpc::StreamType::Unary,
524    )
525    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
526/// Static [`Spec`](::connectrpc::Spec) for the server-side `CreateLayoutShareLink` RPC.
527///
528/// The dispatcher surfaces this on
529/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
530pub const LAYOUT_SERVICE_CREATE_LAYOUT_SHARE_LINK_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
531        "/layout.v1.LayoutService/CreateLayoutShareLink",
532        ::connectrpc::StreamType::Unary,
533    )
534    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
535/// Static [`Spec`](::connectrpc::Spec) for the server-side `RevokeLayoutShareLink` RPC.
536///
537/// The dispatcher surfaces this on
538/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
539pub const LAYOUT_SERVICE_REVOKE_LAYOUT_SHARE_LINK_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
540        "/layout.v1.LayoutService/RevokeLayoutShareLink",
541        ::connectrpc::StreamType::Unary,
542    )
543    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
544/// Static [`Spec`](::connectrpc::Spec) for the server-side `ListOwnerPublishedLayouts` RPC.
545///
546/// The dispatcher surfaces this on
547/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
548pub const LAYOUT_SERVICE_LIST_OWNER_PUBLISHED_LAYOUTS_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
549        "/layout.v1.LayoutService/ListOwnerPublishedLayouts",
550        ::connectrpc::StreamType::Unary,
551    )
552    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
553/// Static [`Spec`](::connectrpc::Spec) for the server-side `PublishLayout` RPC.
554///
555/// The dispatcher surfaces this on
556/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
557pub const LAYOUT_SERVICE_PUBLISH_LAYOUT_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
558        "/layout.v1.LayoutService/PublishLayout",
559        ::connectrpc::StreamType::Unary,
560    )
561    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
562/// Static [`Spec`](::connectrpc::Spec) for the server-side `UnpublishLayout` RPC.
563///
564/// The dispatcher surfaces this on
565/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
566pub const LAYOUT_SERVICE_UNPUBLISH_LAYOUT_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
567        "/layout.v1.LayoutService/UnpublishLayout",
568        ::connectrpc::StreamType::Unary,
569    )
570    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
571/// Static [`Spec`](::connectrpc::Spec) for the server-side `ListLayoutTemplateVersions` RPC.
572///
573/// The dispatcher surfaces this on
574/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
575pub const LAYOUT_SERVICE_LIST_LAYOUT_TEMPLATE_VERSIONS_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
576        "/layout.v1.LayoutService/ListLayoutTemplateVersions",
577        ::connectrpc::StreamType::Unary,
578    )
579    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
580/// Static [`Spec`](::connectrpc::Spec) for the server-side `GetLayoutTemplateVersion` RPC.
581///
582/// The dispatcher surfaces this on
583/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
584pub const LAYOUT_SERVICE_GET_LAYOUT_TEMPLATE_VERSION_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
585        "/layout.v1.LayoutService/GetLayoutTemplateVersion",
586        ::connectrpc::StreamType::Unary,
587    )
588    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
589/// Static [`Spec`](::connectrpc::Spec) for the server-side `SetLayoutTemplateSubscription` RPC.
590///
591/// The dispatcher surfaces this on
592/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
593pub const LAYOUT_SERVICE_SET_LAYOUT_TEMPLATE_SUBSCRIPTION_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
594        "/layout.v1.LayoutService/SetLayoutTemplateSubscription",
595        ::connectrpc::StreamType::Unary,
596    )
597    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
598/// Static [`Spec`](::connectrpc::Spec) for the server-side `DeleteLayoutTemplateSubscription` RPC.
599///
600/// The dispatcher surfaces this on
601/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
602pub const LAYOUT_SERVICE_DELETE_LAYOUT_TEMPLATE_SUBSCRIPTION_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
603        "/layout.v1.LayoutService/DeleteLayoutTemplateSubscription",
604        ::connectrpc::StreamType::Unary,
605    )
606    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
607/// Static [`Spec`](::connectrpc::Spec) for the server-side `ListMyLayoutTemplateSubscriptions` RPC.
608///
609/// The dispatcher surfaces this on
610/// [`RequestContext::spec`](::connectrpc::RequestContext::spec).
611pub const LAYOUT_SERVICE_LIST_MY_LAYOUT_TEMPLATE_SUBSCRIPTIONS_SPEC: ::connectrpc::Spec = ::connectrpc::Spec::server(
612        "/layout.v1.LayoutService/ListMyLayoutTemplateSubscriptions",
613        ::connectrpc::StreamType::Unary,
614    )
615    .with_idempotency_level(::connectrpc::IdempotencyLevel::Unknown);
616/// LayoutService persists saved layouts and manages public layout sharing.
617///
618/// # Implementing handlers
619///
620/// Implement methods with plain `async fn`; the returned future satisfies
621/// the `Send` bound automatically.
622///
623/// **Unary and server-streaming requests** arrive as
624/// [`ServiceRequest<'_, Req>`](::connectrpc::ServiceRequest): a zero-copy
625/// view of the request plus its body, valid for the duration of the call.
626/// Fields are read directly (`request.name` is a `&str` into the decoded
627/// buffer) and the borrow may be held across `.await` points. Anything
628/// that must outlive the call — `tokio::spawn`, channels, server state,
629/// or data captured by a returned response stream — takes owned data:
630/// call `request.to_owned_message()` (or copy the specific fields)
631/// first.
632///
633/// **Client-streaming and bidi requests** arrive as
634/// [`InboundStream<Req>`](::connectrpc::InboundStream) — a
635/// `ServiceStream` of [`StreamMessage`](::connectrpc::StreamMessage)s.
636/// Each item owns its decoded buffer and is `Send + 'static`, so items
637/// can be buffered or moved into spawned tasks; read fields zero-copy
638/// through the generated accessor methods (`item.name()`) or `.view()`,
639/// convert with `.to_owned_message()`, or yield an item back unchanged —
640/// `StreamMessage<M>` implements `Encodable<M>`.
641///
642/// Request types resolved through `extern_path` (e.g. well-known types
643/// from another crate) use the same wrappers; the crate that owns the
644/// type must be generated with buffa ≥ 0.8.0 and views enabled so the
645/// backing `HasMessageView` impl exists.
646///
647/// The `impl Encodable<Out>` return bound accepts the owned `Out`, the
648/// generated `OutView<'_>` / `OwnedOutView`,
649/// [`MaybeBorrowed`](::connectrpc::MaybeBorrowed), or
650/// [`PreEncoded`](::connectrpc::PreEncoded) for handlers that encode a
651/// non-`'static` view internally and pass the bytes across the handler
652/// boundary. View bodies are not emitted for output types mapped via
653/// `extern_path` (the impl would be an orphan); return owned for
654/// WKT/extern outputs.
655///
656/// Server-streaming and bidi-streaming methods return
657/// `ServiceStream<impl Encodable<Out> + Send + use<Self>>`. The
658/// `use<Self>` precise-capturing clause excludes `&self`'s lifetime and
659/// the request's lifetime (unary methods use `use<'a, Self>` and may
660/// borrow from `&self`), so stream items must be `'static` and cannot
661/// borrow from the request. To stream view-encoded data, encode each
662/// item inside the stream body and yield
663/// [`PreEncoded`](::connectrpc::PreEncoded) — see its `# Streaming
664/// example` doc.
665#[allow(clippy::type_complexity)]
666pub trait LayoutService: Send + Sync + 'static {
667    /// GetLayouts returns the caller's saved layouts.
668    ///
669    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
670    ///
671    /// `request` is borrowed from the request body and is valid for the
672    /// duration of the call; message fields are read directly on it
673    /// (zero-copy). The response cannot borrow from `request` — use
674    /// `.to_owned_message()` (or copy the specific fields) for anything
675    /// returned, stored, or moved into `tokio::spawn`.
676    fn get_layouts<'a>(
677        &'a self,
678        ctx: ::connectrpc::RequestContext,
679        request: ::connectrpc::ServiceRequest<
680            '_,
681            crate::proto::layout::v1::GetLayoutsRequest,
682        >,
683    ) -> impl ::std::future::Future<
684        Output = ::connectrpc::ServiceResult<
685            impl ::connectrpc::Encodable<
686                crate::proto::layout::v1::GetLayoutsResponse,
687            > + Send + use<'a, Self>,
688        >,
689    > + Send;
690    /// GetLayout returns a single layout by id.
691    ///
692    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
693    ///
694    /// `request` is borrowed from the request body and is valid for the
695    /// duration of the call; message fields are read directly on it
696    /// (zero-copy). The response cannot borrow from `request` — use
697    /// `.to_owned_message()` (or copy the specific fields) for anything
698    /// returned, stored, or moved into `tokio::spawn`.
699    fn get_layout<'a>(
700        &'a self,
701        ctx: ::connectrpc::RequestContext,
702        request: ::connectrpc::ServiceRequest<
703            '_,
704            crate::proto::layout::v1::GetLayoutRequest,
705        >,
706    ) -> impl ::std::future::Future<
707        Output = ::connectrpc::ServiceResult<
708            impl ::connectrpc::Encodable<
709                crate::proto::layout::v1::GetLayoutResponse,
710            > + Send + use<'a, Self>,
711        >,
712    > + Send;
713    /// UpsertLayout creates or updates a layout (owner-only).
714    ///
715    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
716    ///
717    /// `request` is borrowed from the request body and is valid for the
718    /// duration of the call; message fields are read directly on it
719    /// (zero-copy). The response cannot borrow from `request` — use
720    /// `.to_owned_message()` (or copy the specific fields) for anything
721    /// returned, stored, or moved into `tokio::spawn`.
722    fn upsert_layout<'a>(
723        &'a self,
724        ctx: ::connectrpc::RequestContext,
725        request: ::connectrpc::ServiceRequest<
726            '_,
727            crate::proto::layout::v1::UpsertLayoutRequest,
728        >,
729    ) -> impl ::std::future::Future<
730        Output = ::connectrpc::ServiceResult<
731            impl ::connectrpc::Encodable<
732                crate::proto::layout::v1::UpsertLayoutResponse,
733            > + Send + use<'a, Self>,
734        >,
735    > + Send;
736    /// DeleteLayout deletes a layout by id (owner-only).
737    ///
738    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
739    ///
740    /// `request` is borrowed from the request body and is valid for the
741    /// duration of the call; message fields are read directly on it
742    /// (zero-copy). The response cannot borrow from `request` — use
743    /// `.to_owned_message()` (or copy the specific fields) for anything
744    /// returned, stored, or moved into `tokio::spawn`.
745    fn delete_layout<'a>(
746        &'a self,
747        ctx: ::connectrpc::RequestContext,
748        request: ::connectrpc::ServiceRequest<
749            '_,
750            crate::proto::layout::v1::DeleteLayoutRequest,
751        >,
752    ) -> impl ::std::future::Future<
753        Output = ::connectrpc::ServiceResult<
754            impl ::connectrpc::Encodable<
755                crate::proto::layout::v1::DeleteLayoutResponse,
756            > + Send + use<'a, Self>,
757        >,
758    > + Send;
759    /// ResolveLayoutShareToken resolves an unauthenticated share token to a layout snapshot (template).
760    ///
761    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
762    ///
763    /// `request` is borrowed from the request body and is valid for the
764    /// duration of the call; message fields are read directly on it
765    /// (zero-copy). The response cannot borrow from `request` — use
766    /// `.to_owned_message()` (or copy the specific fields) for anything
767    /// returned, stored, or moved into `tokio::spawn`.
768    fn resolve_layout_share_token<'a>(
769        &'a self,
770        ctx: ::connectrpc::RequestContext,
771        request: ::connectrpc::ServiceRequest<
772            '_,
773            crate::proto::layout::v1::ResolveLayoutShareTokenRequest,
774        >,
775    ) -> impl ::std::future::Future<
776        Output = ::connectrpc::ServiceResult<
777            impl ::connectrpc::Encodable<
778                crate::proto::layout::v1::ResolveLayoutShareTokenResponse,
779            > + Send + use<'a, Self>,
780        >,
781    > + Send;
782    /// CreateLayoutShareLink mints a share token for a layout (owner-only).
783    ///
784    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
785    ///
786    /// `request` is borrowed from the request body and is valid for the
787    /// duration of the call; message fields are read directly on it
788    /// (zero-copy). The response cannot borrow from `request` — use
789    /// `.to_owned_message()` (or copy the specific fields) for anything
790    /// returned, stored, or moved into `tokio::spawn`.
791    fn create_layout_share_link<'a>(
792        &'a self,
793        ctx: ::connectrpc::RequestContext,
794        request: ::connectrpc::ServiceRequest<
795            '_,
796            crate::proto::layout::v1::CreateLayoutShareLinkRequest,
797        >,
798    ) -> impl ::std::future::Future<
799        Output = ::connectrpc::ServiceResult<
800            impl ::connectrpc::Encodable<
801                crate::proto::layout::v1::CreateLayoutShareLinkResponse,
802            > + Send + use<'a, Self>,
803        >,
804    > + Send;
805    /// RevokeLayoutShareLink revokes a previously minted share token (owner-only).
806    ///
807    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
808    ///
809    /// `request` is borrowed from the request body and is valid for the
810    /// duration of the call; message fields are read directly on it
811    /// (zero-copy). The response cannot borrow from `request` — use
812    /// `.to_owned_message()` (or copy the specific fields) for anything
813    /// returned, stored, or moved into `tokio::spawn`.
814    fn revoke_layout_share_link<'a>(
815        &'a self,
816        ctx: ::connectrpc::RequestContext,
817        request: ::connectrpc::ServiceRequest<
818            '_,
819            crate::proto::layout::v1::RevokeLayoutShareLinkRequest,
820        >,
821    ) -> impl ::std::future::Future<
822        Output = ::connectrpc::ServiceResult<
823            impl ::connectrpc::Encodable<
824                crate::proto::layout::v1::RevokeLayoutShareLinkResponse,
825            > + Send + use<'a, Self>,
826        >,
827    > + Send;
828    /// ListOwnerPublishedLayouts lists listed/published layouts for an owner (profile/gallery surfaces).
829    ///
830    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
831    ///
832    /// `request` is borrowed from the request body and is valid for the
833    /// duration of the call; message fields are read directly on it
834    /// (zero-copy). The response cannot borrow from `request` — use
835    /// `.to_owned_message()` (or copy the specific fields) for anything
836    /// returned, stored, or moved into `tokio::spawn`.
837    fn list_owner_published_layouts<'a>(
838        &'a self,
839        ctx: ::connectrpc::RequestContext,
840        request: ::connectrpc::ServiceRequest<
841            '_,
842            crate::proto::layout::v1::ListOwnerPublishedLayoutsRequest,
843        >,
844    ) -> impl ::std::future::Future<
845        Output = ::connectrpc::ServiceResult<
846            impl ::connectrpc::Encodable<
847                crate::proto::layout::v1::ListOwnerPublishedLayoutsResponse,
848            > + Send + use<'a, Self>,
849        >,
850    > + Send;
851    /// PublishLayout publishes a layout for discovery (owner-only).
852    ///
853    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
854    ///
855    /// `request` is borrowed from the request body and is valid for the
856    /// duration of the call; message fields are read directly on it
857    /// (zero-copy). The response cannot borrow from `request` — use
858    /// `.to_owned_message()` (or copy the specific fields) for anything
859    /// returned, stored, or moved into `tokio::spawn`.
860    fn publish_layout<'a>(
861        &'a self,
862        ctx: ::connectrpc::RequestContext,
863        request: ::connectrpc::ServiceRequest<
864            '_,
865            crate::proto::layout::v1::PublishLayoutRequest,
866        >,
867    ) -> impl ::std::future::Future<
868        Output = ::connectrpc::ServiceResult<
869            impl ::connectrpc::Encodable<
870                crate::proto::layout::v1::PublishLayoutResponse,
871            > + Send + use<'a, Self>,
872        >,
873    > + Send;
874    /// UnpublishLayout removes a layout from discovery (owner-only).
875    ///
876    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
877    ///
878    /// `request` is borrowed from the request body and is valid for the
879    /// duration of the call; message fields are read directly on it
880    /// (zero-copy). The response cannot borrow from `request` — use
881    /// `.to_owned_message()` (or copy the specific fields) for anything
882    /// returned, stored, or moved into `tokio::spawn`.
883    fn unpublish_layout<'a>(
884        &'a self,
885        ctx: ::connectrpc::RequestContext,
886        request: ::connectrpc::ServiceRequest<
887            '_,
888            crate::proto::layout::v1::UnpublishLayoutRequest,
889        >,
890    ) -> impl ::std::future::Future<
891        Output = ::connectrpc::ServiceResult<
892            impl ::connectrpc::Encodable<
893                crate::proto::layout::v1::UnpublishLayoutResponse,
894            > + Send + use<'a, Self>,
895        >,
896    > + Send;
897    /// List available versions for a template (metadata only).
898    ///
899    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
900    ///
901    /// `request` is borrowed from the request body and is valid for the
902    /// duration of the call; message fields are read directly on it
903    /// (zero-copy). The response cannot borrow from `request` — use
904    /// `.to_owned_message()` (or copy the specific fields) for anything
905    /// returned, stored, or moved into `tokio::spawn`.
906    fn list_layout_template_versions<'a>(
907        &'a self,
908        ctx: ::connectrpc::RequestContext,
909        request: ::connectrpc::ServiceRequest<
910            '_,
911            crate::proto::layout::v1::ListLayoutTemplateVersionsRequest,
912        >,
913    ) -> impl ::std::future::Future<
914        Output = ::connectrpc::ServiceResult<
915            impl ::connectrpc::Encodable<
916                crate::proto::layout::v1::ListLayoutTemplateVersionsResponse,
917            > + Send + use<'a, Self>,
918        >,
919    > + Send;
920    /// Get a specific version snapshot for a template.
921    ///
922    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
923    ///
924    /// `request` is borrowed from the request body and is valid for the
925    /// duration of the call; message fields are read directly on it
926    /// (zero-copy). The response cannot borrow from `request` — use
927    /// `.to_owned_message()` (or copy the specific fields) for anything
928    /// returned, stored, or moved into `tokio::spawn`.
929    fn get_layout_template_version<'a>(
930        &'a self,
931        ctx: ::connectrpc::RequestContext,
932        request: ::connectrpc::ServiceRequest<
933            '_,
934            crate::proto::layout::v1::GetLayoutTemplateVersionRequest,
935        >,
936    ) -> impl ::std::future::Future<
937        Output = ::connectrpc::ServiceResult<
938            impl ::connectrpc::Encodable<
939                crate::proto::layout::v1::GetLayoutTemplateVersionResponse,
940            > + Send + use<'a, Self>,
941        >,
942    > + Send;
943    /// Subscribe (follow) a template (pin version or track latest).
944    ///
945    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
946    ///
947    /// `request` is borrowed from the request body and is valid for the
948    /// duration of the call; message fields are read directly on it
949    /// (zero-copy). The response cannot borrow from `request` — use
950    /// `.to_owned_message()` (or copy the specific fields) for anything
951    /// returned, stored, or moved into `tokio::spawn`.
952    fn set_layout_template_subscription<'a>(
953        &'a self,
954        ctx: ::connectrpc::RequestContext,
955        request: ::connectrpc::ServiceRequest<
956            '_,
957            crate::proto::layout::v1::SetLayoutTemplateSubscriptionRequest,
958        >,
959    ) -> impl ::std::future::Future<
960        Output = ::connectrpc::ServiceResult<
961            impl ::connectrpc::Encodable<
962                crate::proto::layout::v1::SetLayoutTemplateSubscriptionResponse,
963            > + Send + use<'a, Self>,
964        >,
965    > + Send;
966    /// DeleteLayoutTemplateSubscription unfollows a layout template for the caller.
967    ///
968    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
969    ///
970    /// `request` is borrowed from the request body and is valid for the
971    /// duration of the call; message fields are read directly on it
972    /// (zero-copy). The response cannot borrow from `request` — use
973    /// `.to_owned_message()` (or copy the specific fields) for anything
974    /// returned, stored, or moved into `tokio::spawn`.
975    fn delete_layout_template_subscription<'a>(
976        &'a self,
977        ctx: ::connectrpc::RequestContext,
978        request: ::connectrpc::ServiceRequest<
979            '_,
980            crate::proto::layout::v1::DeleteLayoutTemplateSubscriptionRequest,
981        >,
982    ) -> impl ::std::future::Future<
983        Output = ::connectrpc::ServiceResult<
984            impl ::connectrpc::Encodable<
985                crate::proto::layout::v1::DeleteLayoutTemplateSubscriptionResponse,
986            > + Send + use<'a, Self>,
987        >,
988    > + Send;
989    /// ListMyLayoutTemplateSubscriptions lists layout templates followed by the caller.
990    ///
991    /// `'a` lets the response body borrow from `&self` (e.g. server-resident state).
992    ///
993    /// `request` is borrowed from the request body and is valid for the
994    /// duration of the call; message fields are read directly on it
995    /// (zero-copy). The response cannot borrow from `request` — use
996    /// `.to_owned_message()` (or copy the specific fields) for anything
997    /// returned, stored, or moved into `tokio::spawn`.
998    fn list_my_layout_template_subscriptions<'a>(
999        &'a self,
1000        ctx: ::connectrpc::RequestContext,
1001        request: ::connectrpc::ServiceRequest<
1002            '_,
1003            crate::proto::layout::v1::ListMyLayoutTemplateSubscriptionsRequest,
1004        >,
1005    ) -> impl ::std::future::Future<
1006        Output = ::connectrpc::ServiceResult<
1007            impl ::connectrpc::Encodable<
1008                crate::proto::layout::v1::ListMyLayoutTemplateSubscriptionsResponse,
1009            > + Send + use<'a, Self>,
1010        >,
1011    > + Send;
1012}
1013/// Extension trait for registering a service implementation with a Router.
1014///
1015/// This trait is automatically implemented for all types that implement the service trait.
1016/// Prefer [`Router::add_service`](::connectrpc::Router::add_service) for
1017/// top-down registration; `register` remains available for compatibility
1018/// and cases where the service-first call shape is more convenient.
1019///
1020/// # Example
1021///
1022/// ```rust,ignore
1023/// use std::sync::Arc;
1024///
1025/// let service = Arc::new(MyServiceImpl);
1026/// let router = service.register(Router::new());
1027/// ```
1028pub trait LayoutServiceExt: LayoutService {
1029    /// Register this service implementation with a Router.
1030    ///
1031    /// Takes ownership of the `Arc<Self>` and returns a new Router with
1032    /// this service's methods registered.
1033    fn register(
1034        self: ::std::sync::Arc<Self>,
1035        router: ::connectrpc::Router,
1036    ) -> ::connectrpc::Router;
1037}
1038impl<S: LayoutService> LayoutServiceExt for S {
1039    fn register(
1040        self: ::std::sync::Arc<Self>,
1041        router: ::connectrpc::Router,
1042    ) -> ::connectrpc::Router {
1043        router
1044            .route_view(
1045                LAYOUT_SERVICE_SERVICE_NAME,
1046                "GetLayouts",
1047                {
1048                    let svc = ::std::sync::Arc::clone(&self);
1049                    ::connectrpc::view_handler_fn(move |
1050                        ctx,
1051                        req: ::buffa::view::OwnedView<
1052                            crate::proto::layout::v1::__buffa::view::GetLayoutsRequestView<
1053                                'static,
1054                            >,
1055                        >,
1056                        format|
1057                    {
1058                        let svc = ::std::sync::Arc::clone(&svc);
1059                        async move {
1060                            let sreq = ::connectrpc::ServiceRequest::<
1061                                crate::proto::layout::v1::GetLayoutsRequest,
1062                            >::from_parts(req.reborrow(), req.bytes());
1063                            svc.get_layouts(ctx, sreq)
1064                                .await?
1065                                .encode::<
1066                                    crate::proto::layout::v1::GetLayoutsResponse,
1067                                >(format)
1068                        }
1069                    })
1070                },
1071            )
1072            .with_spec(LAYOUT_SERVICE_GET_LAYOUTS_SPEC)
1073            .route_view(
1074                LAYOUT_SERVICE_SERVICE_NAME,
1075                "GetLayout",
1076                {
1077                    let svc = ::std::sync::Arc::clone(&self);
1078                    ::connectrpc::view_handler_fn(move |
1079                        ctx,
1080                        req: ::buffa::view::OwnedView<
1081                            crate::proto::layout::v1::__buffa::view::GetLayoutRequestView<
1082                                'static,
1083                            >,
1084                        >,
1085                        format|
1086                    {
1087                        let svc = ::std::sync::Arc::clone(&svc);
1088                        async move {
1089                            let sreq = ::connectrpc::ServiceRequest::<
1090                                crate::proto::layout::v1::GetLayoutRequest,
1091                            >::from_parts(req.reborrow(), req.bytes());
1092                            svc.get_layout(ctx, sreq)
1093                                .await?
1094                                .encode::<
1095                                    crate::proto::layout::v1::GetLayoutResponse,
1096                                >(format)
1097                        }
1098                    })
1099                },
1100            )
1101            .with_spec(LAYOUT_SERVICE_GET_LAYOUT_SPEC)
1102            .route_view(
1103                LAYOUT_SERVICE_SERVICE_NAME,
1104                "UpsertLayout",
1105                {
1106                    let svc = ::std::sync::Arc::clone(&self);
1107                    ::connectrpc::view_handler_fn(move |
1108                        ctx,
1109                        req: ::buffa::view::OwnedView<
1110                            crate::proto::layout::v1::__buffa::view::UpsertLayoutRequestView<
1111                                'static,
1112                            >,
1113                        >,
1114                        format|
1115                    {
1116                        let svc = ::std::sync::Arc::clone(&svc);
1117                        async move {
1118                            let sreq = ::connectrpc::ServiceRequest::<
1119                                crate::proto::layout::v1::UpsertLayoutRequest,
1120                            >::from_parts(req.reborrow(), req.bytes());
1121                            svc.upsert_layout(ctx, sreq)
1122                                .await?
1123                                .encode::<
1124                                    crate::proto::layout::v1::UpsertLayoutResponse,
1125                                >(format)
1126                        }
1127                    })
1128                },
1129            )
1130            .with_spec(LAYOUT_SERVICE_UPSERT_LAYOUT_SPEC)
1131            .route_view(
1132                LAYOUT_SERVICE_SERVICE_NAME,
1133                "DeleteLayout",
1134                {
1135                    let svc = ::std::sync::Arc::clone(&self);
1136                    ::connectrpc::view_handler_fn(move |
1137                        ctx,
1138                        req: ::buffa::view::OwnedView<
1139                            crate::proto::layout::v1::__buffa::view::DeleteLayoutRequestView<
1140                                'static,
1141                            >,
1142                        >,
1143                        format|
1144                    {
1145                        let svc = ::std::sync::Arc::clone(&svc);
1146                        async move {
1147                            let sreq = ::connectrpc::ServiceRequest::<
1148                                crate::proto::layout::v1::DeleteLayoutRequest,
1149                            >::from_parts(req.reborrow(), req.bytes());
1150                            svc.delete_layout(ctx, sreq)
1151                                .await?
1152                                .encode::<
1153                                    crate::proto::layout::v1::DeleteLayoutResponse,
1154                                >(format)
1155                        }
1156                    })
1157                },
1158            )
1159            .with_spec(LAYOUT_SERVICE_DELETE_LAYOUT_SPEC)
1160            .route_view(
1161                LAYOUT_SERVICE_SERVICE_NAME,
1162                "ResolveLayoutShareToken",
1163                {
1164                    let svc = ::std::sync::Arc::clone(&self);
1165                    ::connectrpc::view_handler_fn(move |
1166                        ctx,
1167                        req: ::buffa::view::OwnedView<
1168                            crate::proto::layout::v1::__buffa::view::ResolveLayoutShareTokenRequestView<
1169                                'static,
1170                            >,
1171                        >,
1172                        format|
1173                    {
1174                        let svc = ::std::sync::Arc::clone(&svc);
1175                        async move {
1176                            let sreq = ::connectrpc::ServiceRequest::<
1177                                crate::proto::layout::v1::ResolveLayoutShareTokenRequest,
1178                            >::from_parts(req.reborrow(), req.bytes());
1179                            svc.resolve_layout_share_token(ctx, sreq)
1180                                .await?
1181                                .encode::<
1182                                    crate::proto::layout::v1::ResolveLayoutShareTokenResponse,
1183                                >(format)
1184                        }
1185                    })
1186                },
1187            )
1188            .with_spec(LAYOUT_SERVICE_RESOLVE_LAYOUT_SHARE_TOKEN_SPEC)
1189            .route_view(
1190                LAYOUT_SERVICE_SERVICE_NAME,
1191                "CreateLayoutShareLink",
1192                {
1193                    let svc = ::std::sync::Arc::clone(&self);
1194                    ::connectrpc::view_handler_fn(move |
1195                        ctx,
1196                        req: ::buffa::view::OwnedView<
1197                            crate::proto::layout::v1::__buffa::view::CreateLayoutShareLinkRequestView<
1198                                'static,
1199                            >,
1200                        >,
1201                        format|
1202                    {
1203                        let svc = ::std::sync::Arc::clone(&svc);
1204                        async move {
1205                            let sreq = ::connectrpc::ServiceRequest::<
1206                                crate::proto::layout::v1::CreateLayoutShareLinkRequest,
1207                            >::from_parts(req.reborrow(), req.bytes());
1208                            svc.create_layout_share_link(ctx, sreq)
1209                                .await?
1210                                .encode::<
1211                                    crate::proto::layout::v1::CreateLayoutShareLinkResponse,
1212                                >(format)
1213                        }
1214                    })
1215                },
1216            )
1217            .with_spec(LAYOUT_SERVICE_CREATE_LAYOUT_SHARE_LINK_SPEC)
1218            .route_view(
1219                LAYOUT_SERVICE_SERVICE_NAME,
1220                "RevokeLayoutShareLink",
1221                {
1222                    let svc = ::std::sync::Arc::clone(&self);
1223                    ::connectrpc::view_handler_fn(move |
1224                        ctx,
1225                        req: ::buffa::view::OwnedView<
1226                            crate::proto::layout::v1::__buffa::view::RevokeLayoutShareLinkRequestView<
1227                                'static,
1228                            >,
1229                        >,
1230                        format|
1231                    {
1232                        let svc = ::std::sync::Arc::clone(&svc);
1233                        async move {
1234                            let sreq = ::connectrpc::ServiceRequest::<
1235                                crate::proto::layout::v1::RevokeLayoutShareLinkRequest,
1236                            >::from_parts(req.reborrow(), req.bytes());
1237                            svc.revoke_layout_share_link(ctx, sreq)
1238                                .await?
1239                                .encode::<
1240                                    crate::proto::layout::v1::RevokeLayoutShareLinkResponse,
1241                                >(format)
1242                        }
1243                    })
1244                },
1245            )
1246            .with_spec(LAYOUT_SERVICE_REVOKE_LAYOUT_SHARE_LINK_SPEC)
1247            .route_view(
1248                LAYOUT_SERVICE_SERVICE_NAME,
1249                "ListOwnerPublishedLayouts",
1250                {
1251                    let svc = ::std::sync::Arc::clone(&self);
1252                    ::connectrpc::view_handler_fn(move |
1253                        ctx,
1254                        req: ::buffa::view::OwnedView<
1255                            crate::proto::layout::v1::__buffa::view::ListOwnerPublishedLayoutsRequestView<
1256                                'static,
1257                            >,
1258                        >,
1259                        format|
1260                    {
1261                        let svc = ::std::sync::Arc::clone(&svc);
1262                        async move {
1263                            let sreq = ::connectrpc::ServiceRequest::<
1264                                crate::proto::layout::v1::ListOwnerPublishedLayoutsRequest,
1265                            >::from_parts(req.reborrow(), req.bytes());
1266                            svc.list_owner_published_layouts(ctx, sreq)
1267                                .await?
1268                                .encode::<
1269                                    crate::proto::layout::v1::ListOwnerPublishedLayoutsResponse,
1270                                >(format)
1271                        }
1272                    })
1273                },
1274            )
1275            .with_spec(LAYOUT_SERVICE_LIST_OWNER_PUBLISHED_LAYOUTS_SPEC)
1276            .route_view(
1277                LAYOUT_SERVICE_SERVICE_NAME,
1278                "PublishLayout",
1279                {
1280                    let svc = ::std::sync::Arc::clone(&self);
1281                    ::connectrpc::view_handler_fn(move |
1282                        ctx,
1283                        req: ::buffa::view::OwnedView<
1284                            crate::proto::layout::v1::__buffa::view::PublishLayoutRequestView<
1285                                'static,
1286                            >,
1287                        >,
1288                        format|
1289                    {
1290                        let svc = ::std::sync::Arc::clone(&svc);
1291                        async move {
1292                            let sreq = ::connectrpc::ServiceRequest::<
1293                                crate::proto::layout::v1::PublishLayoutRequest,
1294                            >::from_parts(req.reborrow(), req.bytes());
1295                            svc.publish_layout(ctx, sreq)
1296                                .await?
1297                                .encode::<
1298                                    crate::proto::layout::v1::PublishLayoutResponse,
1299                                >(format)
1300                        }
1301                    })
1302                },
1303            )
1304            .with_spec(LAYOUT_SERVICE_PUBLISH_LAYOUT_SPEC)
1305            .route_view(
1306                LAYOUT_SERVICE_SERVICE_NAME,
1307                "UnpublishLayout",
1308                {
1309                    let svc = ::std::sync::Arc::clone(&self);
1310                    ::connectrpc::view_handler_fn(move |
1311                        ctx,
1312                        req: ::buffa::view::OwnedView<
1313                            crate::proto::layout::v1::__buffa::view::UnpublishLayoutRequestView<
1314                                'static,
1315                            >,
1316                        >,
1317                        format|
1318                    {
1319                        let svc = ::std::sync::Arc::clone(&svc);
1320                        async move {
1321                            let sreq = ::connectrpc::ServiceRequest::<
1322                                crate::proto::layout::v1::UnpublishLayoutRequest,
1323                            >::from_parts(req.reborrow(), req.bytes());
1324                            svc.unpublish_layout(ctx, sreq)
1325                                .await?
1326                                .encode::<
1327                                    crate::proto::layout::v1::UnpublishLayoutResponse,
1328                                >(format)
1329                        }
1330                    })
1331                },
1332            )
1333            .with_spec(LAYOUT_SERVICE_UNPUBLISH_LAYOUT_SPEC)
1334            .route_view(
1335                LAYOUT_SERVICE_SERVICE_NAME,
1336                "ListLayoutTemplateVersions",
1337                {
1338                    let svc = ::std::sync::Arc::clone(&self);
1339                    ::connectrpc::view_handler_fn(move |
1340                        ctx,
1341                        req: ::buffa::view::OwnedView<
1342                            crate::proto::layout::v1::__buffa::view::ListLayoutTemplateVersionsRequestView<
1343                                'static,
1344                            >,
1345                        >,
1346                        format|
1347                    {
1348                        let svc = ::std::sync::Arc::clone(&svc);
1349                        async move {
1350                            let sreq = ::connectrpc::ServiceRequest::<
1351                                crate::proto::layout::v1::ListLayoutTemplateVersionsRequest,
1352                            >::from_parts(req.reborrow(), req.bytes());
1353                            svc.list_layout_template_versions(ctx, sreq)
1354                                .await?
1355                                .encode::<
1356                                    crate::proto::layout::v1::ListLayoutTemplateVersionsResponse,
1357                                >(format)
1358                        }
1359                    })
1360                },
1361            )
1362            .with_spec(LAYOUT_SERVICE_LIST_LAYOUT_TEMPLATE_VERSIONS_SPEC)
1363            .route_view(
1364                LAYOUT_SERVICE_SERVICE_NAME,
1365                "GetLayoutTemplateVersion",
1366                {
1367                    let svc = ::std::sync::Arc::clone(&self);
1368                    ::connectrpc::view_handler_fn(move |
1369                        ctx,
1370                        req: ::buffa::view::OwnedView<
1371                            crate::proto::layout::v1::__buffa::view::GetLayoutTemplateVersionRequestView<
1372                                'static,
1373                            >,
1374                        >,
1375                        format|
1376                    {
1377                        let svc = ::std::sync::Arc::clone(&svc);
1378                        async move {
1379                            let sreq = ::connectrpc::ServiceRequest::<
1380                                crate::proto::layout::v1::GetLayoutTemplateVersionRequest,
1381                            >::from_parts(req.reborrow(), req.bytes());
1382                            svc.get_layout_template_version(ctx, sreq)
1383                                .await?
1384                                .encode::<
1385                                    crate::proto::layout::v1::GetLayoutTemplateVersionResponse,
1386                                >(format)
1387                        }
1388                    })
1389                },
1390            )
1391            .with_spec(LAYOUT_SERVICE_GET_LAYOUT_TEMPLATE_VERSION_SPEC)
1392            .route_view(
1393                LAYOUT_SERVICE_SERVICE_NAME,
1394                "SetLayoutTemplateSubscription",
1395                {
1396                    let svc = ::std::sync::Arc::clone(&self);
1397                    ::connectrpc::view_handler_fn(move |
1398                        ctx,
1399                        req: ::buffa::view::OwnedView<
1400                            crate::proto::layout::v1::__buffa::view::SetLayoutTemplateSubscriptionRequestView<
1401                                'static,
1402                            >,
1403                        >,
1404                        format|
1405                    {
1406                        let svc = ::std::sync::Arc::clone(&svc);
1407                        async move {
1408                            let sreq = ::connectrpc::ServiceRequest::<
1409                                crate::proto::layout::v1::SetLayoutTemplateSubscriptionRequest,
1410                            >::from_parts(req.reborrow(), req.bytes());
1411                            svc.set_layout_template_subscription(ctx, sreq)
1412                                .await?
1413                                .encode::<
1414                                    crate::proto::layout::v1::SetLayoutTemplateSubscriptionResponse,
1415                                >(format)
1416                        }
1417                    })
1418                },
1419            )
1420            .with_spec(LAYOUT_SERVICE_SET_LAYOUT_TEMPLATE_SUBSCRIPTION_SPEC)
1421            .route_view(
1422                LAYOUT_SERVICE_SERVICE_NAME,
1423                "DeleteLayoutTemplateSubscription",
1424                {
1425                    let svc = ::std::sync::Arc::clone(&self);
1426                    ::connectrpc::view_handler_fn(move |
1427                        ctx,
1428                        req: ::buffa::view::OwnedView<
1429                            crate::proto::layout::v1::__buffa::view::DeleteLayoutTemplateSubscriptionRequestView<
1430                                'static,
1431                            >,
1432                        >,
1433                        format|
1434                    {
1435                        let svc = ::std::sync::Arc::clone(&svc);
1436                        async move {
1437                            let sreq = ::connectrpc::ServiceRequest::<
1438                                crate::proto::layout::v1::DeleteLayoutTemplateSubscriptionRequest,
1439                            >::from_parts(req.reborrow(), req.bytes());
1440                            svc.delete_layout_template_subscription(ctx, sreq)
1441                                .await?
1442                                .encode::<
1443                                    crate::proto::layout::v1::DeleteLayoutTemplateSubscriptionResponse,
1444                                >(format)
1445                        }
1446                    })
1447                },
1448            )
1449            .with_spec(LAYOUT_SERVICE_DELETE_LAYOUT_TEMPLATE_SUBSCRIPTION_SPEC)
1450            .route_view(
1451                LAYOUT_SERVICE_SERVICE_NAME,
1452                "ListMyLayoutTemplateSubscriptions",
1453                {
1454                    let svc = ::std::sync::Arc::clone(&self);
1455                    ::connectrpc::view_handler_fn(move |
1456                        ctx,
1457                        req: ::buffa::view::OwnedView<
1458                            crate::proto::layout::v1::__buffa::view::ListMyLayoutTemplateSubscriptionsRequestView<
1459                                'static,
1460                            >,
1461                        >,
1462                        format|
1463                    {
1464                        let svc = ::std::sync::Arc::clone(&svc);
1465                        async move {
1466                            let sreq = ::connectrpc::ServiceRequest::<
1467                                crate::proto::layout::v1::ListMyLayoutTemplateSubscriptionsRequest,
1468                            >::from_parts(req.reborrow(), req.bytes());
1469                            svc.list_my_layout_template_subscriptions(ctx, sreq)
1470                                .await?
1471                                .encode::<
1472                                    crate::proto::layout::v1::ListMyLayoutTemplateSubscriptionsResponse,
1473                                >(format)
1474                        }
1475                    })
1476                },
1477            )
1478            .with_spec(LAYOUT_SERVICE_LIST_MY_LAYOUT_TEMPLATE_SUBSCRIPTIONS_SPEC)
1479    }
1480}
1481/// Type-inference marker used by [`Router::add_service`](::connectrpc::Router::add_service).
1482#[doc(hidden)]
1483pub struct LayoutServiceRegisterMarker;
1484impl<S: LayoutService> ::connectrpc::ServiceRegister<LayoutServiceRegisterMarker>
1485for ::std::sync::Arc<S> {
1486    fn register_service(self, router: ::connectrpc::Router) -> ::connectrpc::Router {
1487        <S as LayoutServiceExt>::register(self, router)
1488    }
1489}
1490/// Monomorphic dispatcher for `LayoutService`.
1491///
1492/// Unlike `.register(Router)` which type-erases each method into an `Arc<dyn ErasedHandler>` stored in a `HashMap`, this struct dispatches via a compile-time `match` on method name: no vtable, no hash lookup.
1493///
1494/// # Example
1495///
1496/// ```rust,ignore
1497/// use connectrpc::ConnectRpcService;
1498///
1499/// let server = LayoutServiceServer::new(MyImpl);
1500/// let service = ConnectRpcService::new(server);
1501/// // hand `service` to axum/hyper as a fallback_service
1502/// ```
1503pub struct LayoutServiceServer<T> {
1504    inner: ::std::sync::Arc<T>,
1505}
1506impl<T: LayoutService> LayoutServiceServer<T> {
1507    /// Wrap a service implementation in a monomorphic dispatcher.
1508    pub fn new(service: T) -> Self {
1509        Self {
1510            inner: ::std::sync::Arc::new(service),
1511        }
1512    }
1513    /// Wrap an already-`Arc`'d service implementation.
1514    pub fn from_arc(inner: ::std::sync::Arc<T>) -> Self {
1515        Self { inner }
1516    }
1517}
1518impl<T> Clone for LayoutServiceServer<T> {
1519    fn clone(&self) -> Self {
1520        Self {
1521            inner: ::std::sync::Arc::clone(&self.inner),
1522        }
1523    }
1524}
1525impl<T: LayoutService> ::connectrpc::Dispatcher for LayoutServiceServer<T> {
1526    #[inline]
1527    fn lookup(
1528        &self,
1529        path: &str,
1530    ) -> Option<::connectrpc::dispatcher::codegen::MethodDescriptor> {
1531        let method = path.strip_prefix("layout.v1.LayoutService/")?;
1532        match method {
1533            "GetLayouts" => {
1534                Some(
1535                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1536                        .with_spec(LAYOUT_SERVICE_GET_LAYOUTS_SPEC),
1537                )
1538            }
1539            "GetLayout" => {
1540                Some(
1541                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1542                        .with_spec(LAYOUT_SERVICE_GET_LAYOUT_SPEC),
1543                )
1544            }
1545            "UpsertLayout" => {
1546                Some(
1547                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1548                        .with_spec(LAYOUT_SERVICE_UPSERT_LAYOUT_SPEC),
1549                )
1550            }
1551            "DeleteLayout" => {
1552                Some(
1553                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1554                        .with_spec(LAYOUT_SERVICE_DELETE_LAYOUT_SPEC),
1555                )
1556            }
1557            "ResolveLayoutShareToken" => {
1558                Some(
1559                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1560                        .with_spec(LAYOUT_SERVICE_RESOLVE_LAYOUT_SHARE_TOKEN_SPEC),
1561                )
1562            }
1563            "CreateLayoutShareLink" => {
1564                Some(
1565                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1566                        .with_spec(LAYOUT_SERVICE_CREATE_LAYOUT_SHARE_LINK_SPEC),
1567                )
1568            }
1569            "RevokeLayoutShareLink" => {
1570                Some(
1571                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1572                        .with_spec(LAYOUT_SERVICE_REVOKE_LAYOUT_SHARE_LINK_SPEC),
1573                )
1574            }
1575            "ListOwnerPublishedLayouts" => {
1576                Some(
1577                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1578                        .with_spec(LAYOUT_SERVICE_LIST_OWNER_PUBLISHED_LAYOUTS_SPEC),
1579                )
1580            }
1581            "PublishLayout" => {
1582                Some(
1583                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1584                        .with_spec(LAYOUT_SERVICE_PUBLISH_LAYOUT_SPEC),
1585                )
1586            }
1587            "UnpublishLayout" => {
1588                Some(
1589                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1590                        .with_spec(LAYOUT_SERVICE_UNPUBLISH_LAYOUT_SPEC),
1591                )
1592            }
1593            "ListLayoutTemplateVersions" => {
1594                Some(
1595                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1596                        .with_spec(LAYOUT_SERVICE_LIST_LAYOUT_TEMPLATE_VERSIONS_SPEC),
1597                )
1598            }
1599            "GetLayoutTemplateVersion" => {
1600                Some(
1601                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1602                        .with_spec(LAYOUT_SERVICE_GET_LAYOUT_TEMPLATE_VERSION_SPEC),
1603                )
1604            }
1605            "SetLayoutTemplateSubscription" => {
1606                Some(
1607                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1608                        .with_spec(LAYOUT_SERVICE_SET_LAYOUT_TEMPLATE_SUBSCRIPTION_SPEC),
1609                )
1610            }
1611            "DeleteLayoutTemplateSubscription" => {
1612                Some(
1613                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1614                        .with_spec(
1615                            LAYOUT_SERVICE_DELETE_LAYOUT_TEMPLATE_SUBSCRIPTION_SPEC,
1616                        ),
1617                )
1618            }
1619            "ListMyLayoutTemplateSubscriptions" => {
1620                Some(
1621                    ::connectrpc::dispatcher::codegen::MethodDescriptor::unary(false)
1622                        .with_spec(
1623                            LAYOUT_SERVICE_LIST_MY_LAYOUT_TEMPLATE_SUBSCRIPTIONS_SPEC,
1624                        ),
1625                )
1626            }
1627            _ => None,
1628        }
1629    }
1630    fn call_unary(
1631        &self,
1632        path: &str,
1633        ctx: ::connectrpc::RequestContext,
1634        request: ::connectrpc::Payload,
1635        format: ::connectrpc::CodecFormat,
1636    ) -> ::connectrpc::dispatcher::codegen::UnaryResult {
1637        let Some(method) = path.strip_prefix("layout.v1.LayoutService/") else {
1638            return ::connectrpc::dispatcher::codegen::unimplemented_unary(path);
1639        };
1640        let _ = (&ctx, &request, &format);
1641        match method {
1642            "GetLayouts" => {
1643                let svc = ::std::sync::Arc::clone(&self.inner);
1644                Box::pin(async move {
1645                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1646                        crate::proto::layout::v1::GetLayoutsRequest,
1647                    >(request.encoded()?, format)?;
1648                    let req: crate::proto::layout::v1::__buffa::view::GetLayoutsRequestView<
1649                        '_,
1650                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1651                        &body,
1652                    )?;
1653                    let req = ::connectrpc::ServiceRequest::<
1654                        crate::proto::layout::v1::GetLayoutsRequest,
1655                    >::from_parts(&req, &body);
1656                    svc.get_layouts(ctx, req)
1657                        .await?
1658                        .encode::<crate::proto::layout::v1::GetLayoutsResponse>(format)
1659                })
1660            }
1661            "GetLayout" => {
1662                let svc = ::std::sync::Arc::clone(&self.inner);
1663                Box::pin(async move {
1664                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1665                        crate::proto::layout::v1::GetLayoutRequest,
1666                    >(request.encoded()?, format)?;
1667                    let req: crate::proto::layout::v1::__buffa::view::GetLayoutRequestView<
1668                        '_,
1669                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1670                        &body,
1671                    )?;
1672                    let req = ::connectrpc::ServiceRequest::<
1673                        crate::proto::layout::v1::GetLayoutRequest,
1674                    >::from_parts(&req, &body);
1675                    svc.get_layout(ctx, req)
1676                        .await?
1677                        .encode::<crate::proto::layout::v1::GetLayoutResponse>(format)
1678                })
1679            }
1680            "UpsertLayout" => {
1681                let svc = ::std::sync::Arc::clone(&self.inner);
1682                Box::pin(async move {
1683                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1684                        crate::proto::layout::v1::UpsertLayoutRequest,
1685                    >(request.encoded()?, format)?;
1686                    let req: crate::proto::layout::v1::__buffa::view::UpsertLayoutRequestView<
1687                        '_,
1688                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1689                        &body,
1690                    )?;
1691                    let req = ::connectrpc::ServiceRequest::<
1692                        crate::proto::layout::v1::UpsertLayoutRequest,
1693                    >::from_parts(&req, &body);
1694                    svc.upsert_layout(ctx, req)
1695                        .await?
1696                        .encode::<crate::proto::layout::v1::UpsertLayoutResponse>(format)
1697                })
1698            }
1699            "DeleteLayout" => {
1700                let svc = ::std::sync::Arc::clone(&self.inner);
1701                Box::pin(async move {
1702                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1703                        crate::proto::layout::v1::DeleteLayoutRequest,
1704                    >(request.encoded()?, format)?;
1705                    let req: crate::proto::layout::v1::__buffa::view::DeleteLayoutRequestView<
1706                        '_,
1707                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1708                        &body,
1709                    )?;
1710                    let req = ::connectrpc::ServiceRequest::<
1711                        crate::proto::layout::v1::DeleteLayoutRequest,
1712                    >::from_parts(&req, &body);
1713                    svc.delete_layout(ctx, req)
1714                        .await?
1715                        .encode::<crate::proto::layout::v1::DeleteLayoutResponse>(format)
1716                })
1717            }
1718            "ResolveLayoutShareToken" => {
1719                let svc = ::std::sync::Arc::clone(&self.inner);
1720                Box::pin(async move {
1721                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1722                        crate::proto::layout::v1::ResolveLayoutShareTokenRequest,
1723                    >(request.encoded()?, format)?;
1724                    let req: crate::proto::layout::v1::__buffa::view::ResolveLayoutShareTokenRequestView<
1725                        '_,
1726                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1727                        &body,
1728                    )?;
1729                    let req = ::connectrpc::ServiceRequest::<
1730                        crate::proto::layout::v1::ResolveLayoutShareTokenRequest,
1731                    >::from_parts(&req, &body);
1732                    svc.resolve_layout_share_token(ctx, req)
1733                        .await?
1734                        .encode::<
1735                            crate::proto::layout::v1::ResolveLayoutShareTokenResponse,
1736                        >(format)
1737                })
1738            }
1739            "CreateLayoutShareLink" => {
1740                let svc = ::std::sync::Arc::clone(&self.inner);
1741                Box::pin(async move {
1742                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1743                        crate::proto::layout::v1::CreateLayoutShareLinkRequest,
1744                    >(request.encoded()?, format)?;
1745                    let req: crate::proto::layout::v1::__buffa::view::CreateLayoutShareLinkRequestView<
1746                        '_,
1747                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1748                        &body,
1749                    )?;
1750                    let req = ::connectrpc::ServiceRequest::<
1751                        crate::proto::layout::v1::CreateLayoutShareLinkRequest,
1752                    >::from_parts(&req, &body);
1753                    svc.create_layout_share_link(ctx, req)
1754                        .await?
1755                        .encode::<
1756                            crate::proto::layout::v1::CreateLayoutShareLinkResponse,
1757                        >(format)
1758                })
1759            }
1760            "RevokeLayoutShareLink" => {
1761                let svc = ::std::sync::Arc::clone(&self.inner);
1762                Box::pin(async move {
1763                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1764                        crate::proto::layout::v1::RevokeLayoutShareLinkRequest,
1765                    >(request.encoded()?, format)?;
1766                    let req: crate::proto::layout::v1::__buffa::view::RevokeLayoutShareLinkRequestView<
1767                        '_,
1768                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1769                        &body,
1770                    )?;
1771                    let req = ::connectrpc::ServiceRequest::<
1772                        crate::proto::layout::v1::RevokeLayoutShareLinkRequest,
1773                    >::from_parts(&req, &body);
1774                    svc.revoke_layout_share_link(ctx, req)
1775                        .await?
1776                        .encode::<
1777                            crate::proto::layout::v1::RevokeLayoutShareLinkResponse,
1778                        >(format)
1779                })
1780            }
1781            "ListOwnerPublishedLayouts" => {
1782                let svc = ::std::sync::Arc::clone(&self.inner);
1783                Box::pin(async move {
1784                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1785                        crate::proto::layout::v1::ListOwnerPublishedLayoutsRequest,
1786                    >(request.encoded()?, format)?;
1787                    let req: crate::proto::layout::v1::__buffa::view::ListOwnerPublishedLayoutsRequestView<
1788                        '_,
1789                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1790                        &body,
1791                    )?;
1792                    let req = ::connectrpc::ServiceRequest::<
1793                        crate::proto::layout::v1::ListOwnerPublishedLayoutsRequest,
1794                    >::from_parts(&req, &body);
1795                    svc.list_owner_published_layouts(ctx, req)
1796                        .await?
1797                        .encode::<
1798                            crate::proto::layout::v1::ListOwnerPublishedLayoutsResponse,
1799                        >(format)
1800                })
1801            }
1802            "PublishLayout" => {
1803                let svc = ::std::sync::Arc::clone(&self.inner);
1804                Box::pin(async move {
1805                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1806                        crate::proto::layout::v1::PublishLayoutRequest,
1807                    >(request.encoded()?, format)?;
1808                    let req: crate::proto::layout::v1::__buffa::view::PublishLayoutRequestView<
1809                        '_,
1810                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1811                        &body,
1812                    )?;
1813                    let req = ::connectrpc::ServiceRequest::<
1814                        crate::proto::layout::v1::PublishLayoutRequest,
1815                    >::from_parts(&req, &body);
1816                    svc.publish_layout(ctx, req)
1817                        .await?
1818                        .encode::<
1819                            crate::proto::layout::v1::PublishLayoutResponse,
1820                        >(format)
1821                })
1822            }
1823            "UnpublishLayout" => {
1824                let svc = ::std::sync::Arc::clone(&self.inner);
1825                Box::pin(async move {
1826                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1827                        crate::proto::layout::v1::UnpublishLayoutRequest,
1828                    >(request.encoded()?, format)?;
1829                    let req: crate::proto::layout::v1::__buffa::view::UnpublishLayoutRequestView<
1830                        '_,
1831                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1832                        &body,
1833                    )?;
1834                    let req = ::connectrpc::ServiceRequest::<
1835                        crate::proto::layout::v1::UnpublishLayoutRequest,
1836                    >::from_parts(&req, &body);
1837                    svc.unpublish_layout(ctx, req)
1838                        .await?
1839                        .encode::<
1840                            crate::proto::layout::v1::UnpublishLayoutResponse,
1841                        >(format)
1842                })
1843            }
1844            "ListLayoutTemplateVersions" => {
1845                let svc = ::std::sync::Arc::clone(&self.inner);
1846                Box::pin(async move {
1847                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1848                        crate::proto::layout::v1::ListLayoutTemplateVersionsRequest,
1849                    >(request.encoded()?, format)?;
1850                    let req: crate::proto::layout::v1::__buffa::view::ListLayoutTemplateVersionsRequestView<
1851                        '_,
1852                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1853                        &body,
1854                    )?;
1855                    let req = ::connectrpc::ServiceRequest::<
1856                        crate::proto::layout::v1::ListLayoutTemplateVersionsRequest,
1857                    >::from_parts(&req, &body);
1858                    svc.list_layout_template_versions(ctx, req)
1859                        .await?
1860                        .encode::<
1861                            crate::proto::layout::v1::ListLayoutTemplateVersionsResponse,
1862                        >(format)
1863                })
1864            }
1865            "GetLayoutTemplateVersion" => {
1866                let svc = ::std::sync::Arc::clone(&self.inner);
1867                Box::pin(async move {
1868                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1869                        crate::proto::layout::v1::GetLayoutTemplateVersionRequest,
1870                    >(request.encoded()?, format)?;
1871                    let req: crate::proto::layout::v1::__buffa::view::GetLayoutTemplateVersionRequestView<
1872                        '_,
1873                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1874                        &body,
1875                    )?;
1876                    let req = ::connectrpc::ServiceRequest::<
1877                        crate::proto::layout::v1::GetLayoutTemplateVersionRequest,
1878                    >::from_parts(&req, &body);
1879                    svc.get_layout_template_version(ctx, req)
1880                        .await?
1881                        .encode::<
1882                            crate::proto::layout::v1::GetLayoutTemplateVersionResponse,
1883                        >(format)
1884                })
1885            }
1886            "SetLayoutTemplateSubscription" => {
1887                let svc = ::std::sync::Arc::clone(&self.inner);
1888                Box::pin(async move {
1889                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1890                        crate::proto::layout::v1::SetLayoutTemplateSubscriptionRequest,
1891                    >(request.encoded()?, format)?;
1892                    let req: crate::proto::layout::v1::__buffa::view::SetLayoutTemplateSubscriptionRequestView<
1893                        '_,
1894                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1895                        &body,
1896                    )?;
1897                    let req = ::connectrpc::ServiceRequest::<
1898                        crate::proto::layout::v1::SetLayoutTemplateSubscriptionRequest,
1899                    >::from_parts(&req, &body);
1900                    svc.set_layout_template_subscription(ctx, req)
1901                        .await?
1902                        .encode::<
1903                            crate::proto::layout::v1::SetLayoutTemplateSubscriptionResponse,
1904                        >(format)
1905                })
1906            }
1907            "DeleteLayoutTemplateSubscription" => {
1908                let svc = ::std::sync::Arc::clone(&self.inner);
1909                Box::pin(async move {
1910                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1911                        crate::proto::layout::v1::DeleteLayoutTemplateSubscriptionRequest,
1912                    >(request.encoded()?, format)?;
1913                    let req: crate::proto::layout::v1::__buffa::view::DeleteLayoutTemplateSubscriptionRequestView<
1914                        '_,
1915                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1916                        &body,
1917                    )?;
1918                    let req = ::connectrpc::ServiceRequest::<
1919                        crate::proto::layout::v1::DeleteLayoutTemplateSubscriptionRequest,
1920                    >::from_parts(&req, &body);
1921                    svc.delete_layout_template_subscription(ctx, req)
1922                        .await?
1923                        .encode::<
1924                            crate::proto::layout::v1::DeleteLayoutTemplateSubscriptionResponse,
1925                        >(format)
1926                })
1927            }
1928            "ListMyLayoutTemplateSubscriptions" => {
1929                let svc = ::std::sync::Arc::clone(&self.inner);
1930                Box::pin(async move {
1931                    let body = ::connectrpc::dispatcher::codegen::request_proto_bytes::<
1932                        crate::proto::layout::v1::ListMyLayoutTemplateSubscriptionsRequest,
1933                    >(request.encoded()?, format)?;
1934                    let req: crate::proto::layout::v1::__buffa::view::ListMyLayoutTemplateSubscriptionsRequestView<
1935                        '_,
1936                    > = ::connectrpc::dispatcher::codegen::decode_borrowed_request_view(
1937                        &body,
1938                    )?;
1939                    let req = ::connectrpc::ServiceRequest::<
1940                        crate::proto::layout::v1::ListMyLayoutTemplateSubscriptionsRequest,
1941                    >::from_parts(&req, &body);
1942                    svc.list_my_layout_template_subscriptions(ctx, req)
1943                        .await?
1944                        .encode::<
1945                            crate::proto::layout::v1::ListMyLayoutTemplateSubscriptionsResponse,
1946                        >(format)
1947                })
1948            }
1949            _ => ::connectrpc::dispatcher::codegen::unimplemented_unary(path),
1950        }
1951    }
1952    fn call_server_streaming(
1953        &self,
1954        path: &str,
1955        ctx: ::connectrpc::RequestContext,
1956        request: ::buffa::bytes::Bytes,
1957        format: ::connectrpc::CodecFormat,
1958    ) -> ::connectrpc::dispatcher::codegen::StreamingResult {
1959        let Some(method) = path.strip_prefix("layout.v1.LayoutService/") else {
1960            return ::connectrpc::dispatcher::codegen::unimplemented_streaming(path);
1961        };
1962        let _ = (&ctx, &request, &format);
1963        match method {
1964            _ => ::connectrpc::dispatcher::codegen::unimplemented_streaming(path),
1965        }
1966    }
1967    fn call_client_streaming(
1968        &self,
1969        path: &str,
1970        ctx: ::connectrpc::RequestContext,
1971        requests: ::connectrpc::dispatcher::codegen::RequestStream,
1972        format: ::connectrpc::CodecFormat,
1973    ) -> ::connectrpc::dispatcher::codegen::UnaryResult {
1974        let Some(method) = path.strip_prefix("layout.v1.LayoutService/") else {
1975            return ::connectrpc::dispatcher::codegen::unimplemented_unary(path);
1976        };
1977        let _ = (&ctx, &requests, &format);
1978        match method {
1979            _ => ::connectrpc::dispatcher::codegen::unimplemented_unary(path),
1980        }
1981    }
1982    fn call_bidi_streaming(
1983        &self,
1984        path: &str,
1985        ctx: ::connectrpc::RequestContext,
1986        requests: ::connectrpc::dispatcher::codegen::RequestStream,
1987        format: ::connectrpc::CodecFormat,
1988    ) -> ::connectrpc::dispatcher::codegen::StreamingResult {
1989        let Some(method) = path.strip_prefix("layout.v1.LayoutService/") else {
1990            return ::connectrpc::dispatcher::codegen::unimplemented_streaming(path);
1991        };
1992        let _ = (&ctx, &requests, &format);
1993        match method {
1994            _ => ::connectrpc::dispatcher::codegen::unimplemented_streaming(path),
1995        }
1996    }
1997}
1998/// Client for this service.
1999///
2000/// Generic over `T: ClientTransport`. For **gRPC** (HTTP/2), use
2001/// `Http2Connection` — it has honest `poll_ready` and composes with
2002/// `tower::balance` for multi-connection load balancing. For **Connect
2003/// over HTTP/1.1** (or unknown protocol), use `HttpClient`.
2004///
2005/// # Working with the response
2006///
2007/// Unary calls return [`UnaryResponse<OwnedView<FooView>>`](::connectrpc::client::UnaryResponse).
2008/// [`view()`](::connectrpc::client::UnaryResponse::view) borrows the response
2009/// message, so field access is zero-copy:
2010///
2011/// ```rust,ignore
2012/// let resp = client.get_layouts(request).await?;
2013/// let name: &str = resp.view().name;  // borrow into the response buffer
2014/// ```
2015///
2016/// If you need the owned struct (e.g. to store or pass by value), use
2017/// [`into_owned()`](::connectrpc::client::UnaryResponse::into_owned):
2018///
2019/// ```rust,ignore
2020/// let owned = client.get_layouts(request).await?.into_owned();
2021/// ```
2022///
2023/// [`into_view()`](::connectrpc::client::UnaryResponse::into_view) keeps the
2024/// zero-copy decoded body (an `OwnedView`) without copying; field access on it
2025/// goes through `.reborrow()`. Streaming responses yield one
2026/// [`StreamMessage`](::connectrpc::StreamMessage) per received message from
2027/// `.message().await` — read fields zero-copy through the generated accessor
2028/// methods (`msg.name()`) or `.view()`, or convert with `.to_owned_message()`.
2029#[derive(Clone)]
2030pub struct LayoutServiceClient<T> {
2031    transport: T,
2032    config: ::connectrpc::client::ClientConfig,
2033}
2034impl<T> LayoutServiceClient<T>
2035where
2036    T: ::connectrpc::client::ClientTransport,
2037    <T::ResponseBody as ::connectrpc::http_body::Body>::Error: ::std::fmt::Display,
2038{
2039    /// Create a new client with the given transport and configuration.
2040    pub fn new(transport: T, config: ::connectrpc::client::ClientConfig) -> Self {
2041        Self { transport, config }
2042    }
2043    /// Get the client configuration.
2044    pub fn config(&self) -> &::connectrpc::client::ClientConfig {
2045        &self.config
2046    }
2047    /// Get a mutable reference to the client configuration.
2048    pub fn config_mut(&mut self) -> &mut ::connectrpc::client::ClientConfig {
2049        &mut self.config
2050    }
2051    /// Call the GetLayouts RPC. Sends a request to /layout.v1.LayoutService/GetLayouts.
2052    pub async fn get_layouts(
2053        &self,
2054        request: crate::proto::layout::v1::GetLayoutsRequest,
2055    ) -> Result<
2056        ::connectrpc::client::UnaryResponse<
2057            ::buffa::view::OwnedView<
2058                crate::proto::layout::v1::__buffa::view::GetLayoutsResponseView<'static>,
2059            >,
2060        >,
2061        ::connectrpc::ConnectError,
2062    > {
2063        self.get_layouts_with_options(
2064                request,
2065                ::connectrpc::client::CallOptions::default(),
2066            )
2067            .await
2068    }
2069    /// Call the GetLayouts RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2070    pub async fn get_layouts_with_options(
2071        &self,
2072        request: crate::proto::layout::v1::GetLayoutsRequest,
2073        options: ::connectrpc::client::CallOptions,
2074    ) -> Result<
2075        ::connectrpc::client::UnaryResponse<
2076            ::buffa::view::OwnedView<
2077                crate::proto::layout::v1::__buffa::view::GetLayoutsResponseView<'static>,
2078            >,
2079        >,
2080        ::connectrpc::ConnectError,
2081    > {
2082        ::connectrpc::client::call_unary(
2083                &self.transport,
2084                &self.config,
2085                LAYOUT_SERVICE_SERVICE_NAME,
2086                "GetLayouts",
2087                request,
2088                options,
2089            )
2090            .await
2091    }
2092    /// Call the GetLayout RPC. Sends a request to /layout.v1.LayoutService/GetLayout.
2093    pub async fn get_layout(
2094        &self,
2095        request: crate::proto::layout::v1::GetLayoutRequest,
2096    ) -> Result<
2097        ::connectrpc::client::UnaryResponse<
2098            ::buffa::view::OwnedView<
2099                crate::proto::layout::v1::__buffa::view::GetLayoutResponseView<'static>,
2100            >,
2101        >,
2102        ::connectrpc::ConnectError,
2103    > {
2104        self.get_layout_with_options(
2105                request,
2106                ::connectrpc::client::CallOptions::default(),
2107            )
2108            .await
2109    }
2110    /// Call the GetLayout RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2111    pub async fn get_layout_with_options(
2112        &self,
2113        request: crate::proto::layout::v1::GetLayoutRequest,
2114        options: ::connectrpc::client::CallOptions,
2115    ) -> Result<
2116        ::connectrpc::client::UnaryResponse<
2117            ::buffa::view::OwnedView<
2118                crate::proto::layout::v1::__buffa::view::GetLayoutResponseView<'static>,
2119            >,
2120        >,
2121        ::connectrpc::ConnectError,
2122    > {
2123        ::connectrpc::client::call_unary(
2124                &self.transport,
2125                &self.config,
2126                LAYOUT_SERVICE_SERVICE_NAME,
2127                "GetLayout",
2128                request,
2129                options,
2130            )
2131            .await
2132    }
2133    /// Call the UpsertLayout RPC. Sends a request to /layout.v1.LayoutService/UpsertLayout.
2134    pub async fn upsert_layout(
2135        &self,
2136        request: crate::proto::layout::v1::UpsertLayoutRequest,
2137    ) -> Result<
2138        ::connectrpc::client::UnaryResponse<
2139            ::buffa::view::OwnedView<
2140                crate::proto::layout::v1::__buffa::view::UpsertLayoutResponseView<
2141                    'static,
2142                >,
2143            >,
2144        >,
2145        ::connectrpc::ConnectError,
2146    > {
2147        self.upsert_layout_with_options(
2148                request,
2149                ::connectrpc::client::CallOptions::default(),
2150            )
2151            .await
2152    }
2153    /// Call the UpsertLayout RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2154    pub async fn upsert_layout_with_options(
2155        &self,
2156        request: crate::proto::layout::v1::UpsertLayoutRequest,
2157        options: ::connectrpc::client::CallOptions,
2158    ) -> Result<
2159        ::connectrpc::client::UnaryResponse<
2160            ::buffa::view::OwnedView<
2161                crate::proto::layout::v1::__buffa::view::UpsertLayoutResponseView<
2162                    'static,
2163                >,
2164            >,
2165        >,
2166        ::connectrpc::ConnectError,
2167    > {
2168        ::connectrpc::client::call_unary(
2169                &self.transport,
2170                &self.config,
2171                LAYOUT_SERVICE_SERVICE_NAME,
2172                "UpsertLayout",
2173                request,
2174                options,
2175            )
2176            .await
2177    }
2178    /// Call the DeleteLayout RPC. Sends a request to /layout.v1.LayoutService/DeleteLayout.
2179    pub async fn delete_layout(
2180        &self,
2181        request: crate::proto::layout::v1::DeleteLayoutRequest,
2182    ) -> Result<
2183        ::connectrpc::client::UnaryResponse<
2184            ::buffa::view::OwnedView<
2185                crate::proto::layout::v1::__buffa::view::DeleteLayoutResponseView<
2186                    'static,
2187                >,
2188            >,
2189        >,
2190        ::connectrpc::ConnectError,
2191    > {
2192        self.delete_layout_with_options(
2193                request,
2194                ::connectrpc::client::CallOptions::default(),
2195            )
2196            .await
2197    }
2198    /// Call the DeleteLayout RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2199    pub async fn delete_layout_with_options(
2200        &self,
2201        request: crate::proto::layout::v1::DeleteLayoutRequest,
2202        options: ::connectrpc::client::CallOptions,
2203    ) -> Result<
2204        ::connectrpc::client::UnaryResponse<
2205            ::buffa::view::OwnedView<
2206                crate::proto::layout::v1::__buffa::view::DeleteLayoutResponseView<
2207                    'static,
2208                >,
2209            >,
2210        >,
2211        ::connectrpc::ConnectError,
2212    > {
2213        ::connectrpc::client::call_unary(
2214                &self.transport,
2215                &self.config,
2216                LAYOUT_SERVICE_SERVICE_NAME,
2217                "DeleteLayout",
2218                request,
2219                options,
2220            )
2221            .await
2222    }
2223    /// Call the ResolveLayoutShareToken RPC. Sends a request to /layout.v1.LayoutService/ResolveLayoutShareToken.
2224    pub async fn resolve_layout_share_token(
2225        &self,
2226        request: crate::proto::layout::v1::ResolveLayoutShareTokenRequest,
2227    ) -> Result<
2228        ::connectrpc::client::UnaryResponse<
2229            ::buffa::view::OwnedView<
2230                crate::proto::layout::v1::__buffa::view::ResolveLayoutShareTokenResponseView<
2231                    'static,
2232                >,
2233            >,
2234        >,
2235        ::connectrpc::ConnectError,
2236    > {
2237        self.resolve_layout_share_token_with_options(
2238                request,
2239                ::connectrpc::client::CallOptions::default(),
2240            )
2241            .await
2242    }
2243    /// Call the ResolveLayoutShareToken RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2244    pub async fn resolve_layout_share_token_with_options(
2245        &self,
2246        request: crate::proto::layout::v1::ResolveLayoutShareTokenRequest,
2247        options: ::connectrpc::client::CallOptions,
2248    ) -> Result<
2249        ::connectrpc::client::UnaryResponse<
2250            ::buffa::view::OwnedView<
2251                crate::proto::layout::v1::__buffa::view::ResolveLayoutShareTokenResponseView<
2252                    'static,
2253                >,
2254            >,
2255        >,
2256        ::connectrpc::ConnectError,
2257    > {
2258        ::connectrpc::client::call_unary(
2259                &self.transport,
2260                &self.config,
2261                LAYOUT_SERVICE_SERVICE_NAME,
2262                "ResolveLayoutShareToken",
2263                request,
2264                options,
2265            )
2266            .await
2267    }
2268    /// Call the CreateLayoutShareLink RPC. Sends a request to /layout.v1.LayoutService/CreateLayoutShareLink.
2269    pub async fn create_layout_share_link(
2270        &self,
2271        request: crate::proto::layout::v1::CreateLayoutShareLinkRequest,
2272    ) -> Result<
2273        ::connectrpc::client::UnaryResponse<
2274            ::buffa::view::OwnedView<
2275                crate::proto::layout::v1::__buffa::view::CreateLayoutShareLinkResponseView<
2276                    'static,
2277                >,
2278            >,
2279        >,
2280        ::connectrpc::ConnectError,
2281    > {
2282        self.create_layout_share_link_with_options(
2283                request,
2284                ::connectrpc::client::CallOptions::default(),
2285            )
2286            .await
2287    }
2288    /// Call the CreateLayoutShareLink RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2289    pub async fn create_layout_share_link_with_options(
2290        &self,
2291        request: crate::proto::layout::v1::CreateLayoutShareLinkRequest,
2292        options: ::connectrpc::client::CallOptions,
2293    ) -> Result<
2294        ::connectrpc::client::UnaryResponse<
2295            ::buffa::view::OwnedView<
2296                crate::proto::layout::v1::__buffa::view::CreateLayoutShareLinkResponseView<
2297                    'static,
2298                >,
2299            >,
2300        >,
2301        ::connectrpc::ConnectError,
2302    > {
2303        ::connectrpc::client::call_unary(
2304                &self.transport,
2305                &self.config,
2306                LAYOUT_SERVICE_SERVICE_NAME,
2307                "CreateLayoutShareLink",
2308                request,
2309                options,
2310            )
2311            .await
2312    }
2313    /// Call the RevokeLayoutShareLink RPC. Sends a request to /layout.v1.LayoutService/RevokeLayoutShareLink.
2314    pub async fn revoke_layout_share_link(
2315        &self,
2316        request: crate::proto::layout::v1::RevokeLayoutShareLinkRequest,
2317    ) -> Result<
2318        ::connectrpc::client::UnaryResponse<
2319            ::buffa::view::OwnedView<
2320                crate::proto::layout::v1::__buffa::view::RevokeLayoutShareLinkResponseView<
2321                    'static,
2322                >,
2323            >,
2324        >,
2325        ::connectrpc::ConnectError,
2326    > {
2327        self.revoke_layout_share_link_with_options(
2328                request,
2329                ::connectrpc::client::CallOptions::default(),
2330            )
2331            .await
2332    }
2333    /// Call the RevokeLayoutShareLink RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2334    pub async fn revoke_layout_share_link_with_options(
2335        &self,
2336        request: crate::proto::layout::v1::RevokeLayoutShareLinkRequest,
2337        options: ::connectrpc::client::CallOptions,
2338    ) -> Result<
2339        ::connectrpc::client::UnaryResponse<
2340            ::buffa::view::OwnedView<
2341                crate::proto::layout::v1::__buffa::view::RevokeLayoutShareLinkResponseView<
2342                    'static,
2343                >,
2344            >,
2345        >,
2346        ::connectrpc::ConnectError,
2347    > {
2348        ::connectrpc::client::call_unary(
2349                &self.transport,
2350                &self.config,
2351                LAYOUT_SERVICE_SERVICE_NAME,
2352                "RevokeLayoutShareLink",
2353                request,
2354                options,
2355            )
2356            .await
2357    }
2358    /// Call the ListOwnerPublishedLayouts RPC. Sends a request to /layout.v1.LayoutService/ListOwnerPublishedLayouts.
2359    pub async fn list_owner_published_layouts(
2360        &self,
2361        request: crate::proto::layout::v1::ListOwnerPublishedLayoutsRequest,
2362    ) -> Result<
2363        ::connectrpc::client::UnaryResponse<
2364            ::buffa::view::OwnedView<
2365                crate::proto::layout::v1::__buffa::view::ListOwnerPublishedLayoutsResponseView<
2366                    'static,
2367                >,
2368            >,
2369        >,
2370        ::connectrpc::ConnectError,
2371    > {
2372        self.list_owner_published_layouts_with_options(
2373                request,
2374                ::connectrpc::client::CallOptions::default(),
2375            )
2376            .await
2377    }
2378    /// Call the ListOwnerPublishedLayouts RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2379    pub async fn list_owner_published_layouts_with_options(
2380        &self,
2381        request: crate::proto::layout::v1::ListOwnerPublishedLayoutsRequest,
2382        options: ::connectrpc::client::CallOptions,
2383    ) -> Result<
2384        ::connectrpc::client::UnaryResponse<
2385            ::buffa::view::OwnedView<
2386                crate::proto::layout::v1::__buffa::view::ListOwnerPublishedLayoutsResponseView<
2387                    'static,
2388                >,
2389            >,
2390        >,
2391        ::connectrpc::ConnectError,
2392    > {
2393        ::connectrpc::client::call_unary(
2394                &self.transport,
2395                &self.config,
2396                LAYOUT_SERVICE_SERVICE_NAME,
2397                "ListOwnerPublishedLayouts",
2398                request,
2399                options,
2400            )
2401            .await
2402    }
2403    /// Call the PublishLayout RPC. Sends a request to /layout.v1.LayoutService/PublishLayout.
2404    pub async fn publish_layout(
2405        &self,
2406        request: crate::proto::layout::v1::PublishLayoutRequest,
2407    ) -> Result<
2408        ::connectrpc::client::UnaryResponse<
2409            ::buffa::view::OwnedView<
2410                crate::proto::layout::v1::__buffa::view::PublishLayoutResponseView<
2411                    'static,
2412                >,
2413            >,
2414        >,
2415        ::connectrpc::ConnectError,
2416    > {
2417        self.publish_layout_with_options(
2418                request,
2419                ::connectrpc::client::CallOptions::default(),
2420            )
2421            .await
2422    }
2423    /// Call the PublishLayout RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2424    pub async fn publish_layout_with_options(
2425        &self,
2426        request: crate::proto::layout::v1::PublishLayoutRequest,
2427        options: ::connectrpc::client::CallOptions,
2428    ) -> Result<
2429        ::connectrpc::client::UnaryResponse<
2430            ::buffa::view::OwnedView<
2431                crate::proto::layout::v1::__buffa::view::PublishLayoutResponseView<
2432                    'static,
2433                >,
2434            >,
2435        >,
2436        ::connectrpc::ConnectError,
2437    > {
2438        ::connectrpc::client::call_unary(
2439                &self.transport,
2440                &self.config,
2441                LAYOUT_SERVICE_SERVICE_NAME,
2442                "PublishLayout",
2443                request,
2444                options,
2445            )
2446            .await
2447    }
2448    /// Call the UnpublishLayout RPC. Sends a request to /layout.v1.LayoutService/UnpublishLayout.
2449    pub async fn unpublish_layout(
2450        &self,
2451        request: crate::proto::layout::v1::UnpublishLayoutRequest,
2452    ) -> Result<
2453        ::connectrpc::client::UnaryResponse<
2454            ::buffa::view::OwnedView<
2455                crate::proto::layout::v1::__buffa::view::UnpublishLayoutResponseView<
2456                    'static,
2457                >,
2458            >,
2459        >,
2460        ::connectrpc::ConnectError,
2461    > {
2462        self.unpublish_layout_with_options(
2463                request,
2464                ::connectrpc::client::CallOptions::default(),
2465            )
2466            .await
2467    }
2468    /// Call the UnpublishLayout RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2469    pub async fn unpublish_layout_with_options(
2470        &self,
2471        request: crate::proto::layout::v1::UnpublishLayoutRequest,
2472        options: ::connectrpc::client::CallOptions,
2473    ) -> Result<
2474        ::connectrpc::client::UnaryResponse<
2475            ::buffa::view::OwnedView<
2476                crate::proto::layout::v1::__buffa::view::UnpublishLayoutResponseView<
2477                    'static,
2478                >,
2479            >,
2480        >,
2481        ::connectrpc::ConnectError,
2482    > {
2483        ::connectrpc::client::call_unary(
2484                &self.transport,
2485                &self.config,
2486                LAYOUT_SERVICE_SERVICE_NAME,
2487                "UnpublishLayout",
2488                request,
2489                options,
2490            )
2491            .await
2492    }
2493    /// Call the ListLayoutTemplateVersions RPC. Sends a request to /layout.v1.LayoutService/ListLayoutTemplateVersions.
2494    pub async fn list_layout_template_versions(
2495        &self,
2496        request: crate::proto::layout::v1::ListLayoutTemplateVersionsRequest,
2497    ) -> Result<
2498        ::connectrpc::client::UnaryResponse<
2499            ::buffa::view::OwnedView<
2500                crate::proto::layout::v1::__buffa::view::ListLayoutTemplateVersionsResponseView<
2501                    'static,
2502                >,
2503            >,
2504        >,
2505        ::connectrpc::ConnectError,
2506    > {
2507        self.list_layout_template_versions_with_options(
2508                request,
2509                ::connectrpc::client::CallOptions::default(),
2510            )
2511            .await
2512    }
2513    /// Call the ListLayoutTemplateVersions RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2514    pub async fn list_layout_template_versions_with_options(
2515        &self,
2516        request: crate::proto::layout::v1::ListLayoutTemplateVersionsRequest,
2517        options: ::connectrpc::client::CallOptions,
2518    ) -> Result<
2519        ::connectrpc::client::UnaryResponse<
2520            ::buffa::view::OwnedView<
2521                crate::proto::layout::v1::__buffa::view::ListLayoutTemplateVersionsResponseView<
2522                    'static,
2523                >,
2524            >,
2525        >,
2526        ::connectrpc::ConnectError,
2527    > {
2528        ::connectrpc::client::call_unary(
2529                &self.transport,
2530                &self.config,
2531                LAYOUT_SERVICE_SERVICE_NAME,
2532                "ListLayoutTemplateVersions",
2533                request,
2534                options,
2535            )
2536            .await
2537    }
2538    /// Call the GetLayoutTemplateVersion RPC. Sends a request to /layout.v1.LayoutService/GetLayoutTemplateVersion.
2539    pub async fn get_layout_template_version(
2540        &self,
2541        request: crate::proto::layout::v1::GetLayoutTemplateVersionRequest,
2542    ) -> Result<
2543        ::connectrpc::client::UnaryResponse<
2544            ::buffa::view::OwnedView<
2545                crate::proto::layout::v1::__buffa::view::GetLayoutTemplateVersionResponseView<
2546                    'static,
2547                >,
2548            >,
2549        >,
2550        ::connectrpc::ConnectError,
2551    > {
2552        self.get_layout_template_version_with_options(
2553                request,
2554                ::connectrpc::client::CallOptions::default(),
2555            )
2556            .await
2557    }
2558    /// Call the GetLayoutTemplateVersion RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2559    pub async fn get_layout_template_version_with_options(
2560        &self,
2561        request: crate::proto::layout::v1::GetLayoutTemplateVersionRequest,
2562        options: ::connectrpc::client::CallOptions,
2563    ) -> Result<
2564        ::connectrpc::client::UnaryResponse<
2565            ::buffa::view::OwnedView<
2566                crate::proto::layout::v1::__buffa::view::GetLayoutTemplateVersionResponseView<
2567                    'static,
2568                >,
2569            >,
2570        >,
2571        ::connectrpc::ConnectError,
2572    > {
2573        ::connectrpc::client::call_unary(
2574                &self.transport,
2575                &self.config,
2576                LAYOUT_SERVICE_SERVICE_NAME,
2577                "GetLayoutTemplateVersion",
2578                request,
2579                options,
2580            )
2581            .await
2582    }
2583    /// Call the SetLayoutTemplateSubscription RPC. Sends a request to /layout.v1.LayoutService/SetLayoutTemplateSubscription.
2584    pub async fn set_layout_template_subscription(
2585        &self,
2586        request: crate::proto::layout::v1::SetLayoutTemplateSubscriptionRequest,
2587    ) -> Result<
2588        ::connectrpc::client::UnaryResponse<
2589            ::buffa::view::OwnedView<
2590                crate::proto::layout::v1::__buffa::view::SetLayoutTemplateSubscriptionResponseView<
2591                    'static,
2592                >,
2593            >,
2594        >,
2595        ::connectrpc::ConnectError,
2596    > {
2597        self.set_layout_template_subscription_with_options(
2598                request,
2599                ::connectrpc::client::CallOptions::default(),
2600            )
2601            .await
2602    }
2603    /// Call the SetLayoutTemplateSubscription RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2604    pub async fn set_layout_template_subscription_with_options(
2605        &self,
2606        request: crate::proto::layout::v1::SetLayoutTemplateSubscriptionRequest,
2607        options: ::connectrpc::client::CallOptions,
2608    ) -> Result<
2609        ::connectrpc::client::UnaryResponse<
2610            ::buffa::view::OwnedView<
2611                crate::proto::layout::v1::__buffa::view::SetLayoutTemplateSubscriptionResponseView<
2612                    'static,
2613                >,
2614            >,
2615        >,
2616        ::connectrpc::ConnectError,
2617    > {
2618        ::connectrpc::client::call_unary(
2619                &self.transport,
2620                &self.config,
2621                LAYOUT_SERVICE_SERVICE_NAME,
2622                "SetLayoutTemplateSubscription",
2623                request,
2624                options,
2625            )
2626            .await
2627    }
2628    /// Call the DeleteLayoutTemplateSubscription RPC. Sends a request to /layout.v1.LayoutService/DeleteLayoutTemplateSubscription.
2629    pub async fn delete_layout_template_subscription(
2630        &self,
2631        request: crate::proto::layout::v1::DeleteLayoutTemplateSubscriptionRequest,
2632    ) -> Result<
2633        ::connectrpc::client::UnaryResponse<
2634            ::buffa::view::OwnedView<
2635                crate::proto::layout::v1::__buffa::view::DeleteLayoutTemplateSubscriptionResponseView<
2636                    'static,
2637                >,
2638            >,
2639        >,
2640        ::connectrpc::ConnectError,
2641    > {
2642        self.delete_layout_template_subscription_with_options(
2643                request,
2644                ::connectrpc::client::CallOptions::default(),
2645            )
2646            .await
2647    }
2648    /// Call the DeleteLayoutTemplateSubscription RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2649    pub async fn delete_layout_template_subscription_with_options(
2650        &self,
2651        request: crate::proto::layout::v1::DeleteLayoutTemplateSubscriptionRequest,
2652        options: ::connectrpc::client::CallOptions,
2653    ) -> Result<
2654        ::connectrpc::client::UnaryResponse<
2655            ::buffa::view::OwnedView<
2656                crate::proto::layout::v1::__buffa::view::DeleteLayoutTemplateSubscriptionResponseView<
2657                    'static,
2658                >,
2659            >,
2660        >,
2661        ::connectrpc::ConnectError,
2662    > {
2663        ::connectrpc::client::call_unary(
2664                &self.transport,
2665                &self.config,
2666                LAYOUT_SERVICE_SERVICE_NAME,
2667                "DeleteLayoutTemplateSubscription",
2668                request,
2669                options,
2670            )
2671            .await
2672    }
2673    /// Call the ListMyLayoutTemplateSubscriptions RPC. Sends a request to /layout.v1.LayoutService/ListMyLayoutTemplateSubscriptions.
2674    pub async fn list_my_layout_template_subscriptions(
2675        &self,
2676        request: crate::proto::layout::v1::ListMyLayoutTemplateSubscriptionsRequest,
2677    ) -> Result<
2678        ::connectrpc::client::UnaryResponse<
2679            ::buffa::view::OwnedView<
2680                crate::proto::layout::v1::__buffa::view::ListMyLayoutTemplateSubscriptionsResponseView<
2681                    'static,
2682                >,
2683            >,
2684        >,
2685        ::connectrpc::ConnectError,
2686    > {
2687        self.list_my_layout_template_subscriptions_with_options(
2688                request,
2689                ::connectrpc::client::CallOptions::default(),
2690            )
2691            .await
2692    }
2693    /// Call the ListMyLayoutTemplateSubscriptions RPC with explicit per-call options. Options override [`ClientConfig`](::connectrpc::client::ClientConfig) defaults.
2694    pub async fn list_my_layout_template_subscriptions_with_options(
2695        &self,
2696        request: crate::proto::layout::v1::ListMyLayoutTemplateSubscriptionsRequest,
2697        options: ::connectrpc::client::CallOptions,
2698    ) -> Result<
2699        ::connectrpc::client::UnaryResponse<
2700            ::buffa::view::OwnedView<
2701                crate::proto::layout::v1::__buffa::view::ListMyLayoutTemplateSubscriptionsResponseView<
2702                    'static,
2703                >,
2704            >,
2705        >,
2706        ::connectrpc::ConnectError,
2707    > {
2708        ::connectrpc::client::call_unary(
2709                &self.transport,
2710                &self.config,
2711                LAYOUT_SERVICE_SERVICE_NAME,
2712                "ListMyLayoutTemplateSubscriptions",
2713                request,
2714                options,
2715            )
2716            .await
2717    }
2718}