Skip to main content

connectrpc_reflection/generated/buffa/
grpc.reflection.v1alpha.reflection.rs

1// @generated by buffa-codegen. DO NOT EDIT.
2// source: grpc/reflection/v1alpha/reflection.proto
3
4/// The message sent by the client when calling ServerReflectionInfo method.
5#[derive(Clone, PartialEq, Default)]
6#[derive(::serde::Serialize)]
7#[serde(default)]
8pub struct ServerReflectionRequest {
9    /// Field 1: `host`
10    #[serde(
11        rename = "host",
12        with = "::buffa::json_helpers::proto_string",
13        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
14    )]
15    pub host: ::buffa::alloc::string::String,
16    #[serde(flatten)]
17    pub message_request: ::core::option::Option<
18        __buffa::oneof::server_reflection_request::MessageRequest,
19    >,
20    #[serde(skip)]
21    #[doc(hidden)]
22    pub __buffa_unknown_fields: ::buffa::UnknownFields,
23}
24impl ::core::fmt::Debug for ServerReflectionRequest {
25    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
26        f.debug_struct("ServerReflectionRequest")
27            .field("host", &self.host)
28            .field("message_request", &self.message_request)
29            .finish()
30    }
31}
32impl ServerReflectionRequest {
33    /// Protobuf type URL for this message, for use with `Any::pack` and
34    /// `Any::unpack_if`.
35    ///
36    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
37    pub const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.ServerReflectionRequest";
38}
39::buffa::impl_default_instance!(ServerReflectionRequest);
40impl ::buffa::MessageName for ServerReflectionRequest {
41    const PACKAGE: &'static str = "grpc.reflection.v1alpha";
42    const NAME: &'static str = "ServerReflectionRequest";
43    const FULL_NAME: &'static str = "grpc.reflection.v1alpha.ServerReflectionRequest";
44    const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.ServerReflectionRequest";
45}
46impl ::buffa::Message for ServerReflectionRequest {
47    /// Returns the total encoded size in bytes.
48    ///
49    /// Accumulates in `u64` (which cannot overflow for in-memory
50    /// data) and saturates to `u32` at return, so a message whose
51    /// encoded size exceeds the 2 GiB protobuf limit yields a value
52    /// above [`::buffa::MAX_MESSAGE_BYTES`] that the encode entry
53    /// points reject, never a silently wrapped size.
54    #[allow(clippy::let_and_return)]
55    fn compute_size(&self, __cache: &mut ::buffa::SizeCache) -> u32 {
56        #[allow(unused_imports)]
57        use ::buffa::Enumeration as _;
58        let mut size = 0u64;
59        if !self.host.is_empty() {
60            size += 1u64 + ::buffa::types::string_encoded_len(&self.host) as u64;
61        }
62        if let ::core::option::Option::Some(ref v) = self.message_request {
63            match v {
64                __buffa::oneof::server_reflection_request::MessageRequest::FileByFilename(
65                    x,
66                ) => {
67                    size += 1u64 + ::buffa::types::string_encoded_len(x) as u64;
68                }
69                __buffa::oneof::server_reflection_request::MessageRequest::FileContainingSymbol(
70                    x,
71                ) => {
72                    size += 1u64 + ::buffa::types::string_encoded_len(x) as u64;
73                }
74                __buffa::oneof::server_reflection_request::MessageRequest::FileContainingExtension(
75                    x,
76                ) => {
77                    let __slot = __cache.reserve();
78                    let inner = x.compute_size(__cache);
79                    __cache.set(__slot, inner);
80                    size
81                        += 1u64 + ::buffa::encoding::varint_len(inner as u64) as u64
82                            + inner as u64;
83                }
84                __buffa::oneof::server_reflection_request::MessageRequest::AllExtensionNumbersOfType(
85                    x,
86                ) => {
87                    size += 1u64 + ::buffa::types::string_encoded_len(x) as u64;
88                }
89                __buffa::oneof::server_reflection_request::MessageRequest::ListServices(
90                    x,
91                ) => {
92                    size += 1u64 + ::buffa::types::string_encoded_len(x) as u64;
93                }
94            }
95        }
96        size += self.__buffa_unknown_fields.encoded_len() as u64;
97        ::buffa::saturate_size(size)
98    }
99    fn write_to(
100        &self,
101        __cache: &mut ::buffa::SizeCache,
102        buf: &mut impl ::buffa::EncodeSink,
103    ) {
104        #[allow(unused_imports)]
105        use ::buffa::Enumeration as _;
106        if !self.host.is_empty() {
107            ::buffa::types::put_string_field(1u32, &self.host, buf);
108        }
109        if let ::core::option::Option::Some(ref v) = self.message_request {
110            match v {
111                __buffa::oneof::server_reflection_request::MessageRequest::FileByFilename(
112                    x,
113                ) => {
114                    ::buffa::types::put_string_field(3u32, x, buf);
115                }
116                __buffa::oneof::server_reflection_request::MessageRequest::FileContainingSymbol(
117                    x,
118                ) => {
119                    ::buffa::types::put_string_field(4u32, x, buf);
120                }
121                __buffa::oneof::server_reflection_request::MessageRequest::FileContainingExtension(
122                    x,
123                ) => {
124                    ::buffa::types::put_len_delimited_header(
125                        5u32,
126                        u64::from(__cache.consume_next()),
127                        buf,
128                    );
129                    x.write_to(__cache, buf);
130                }
131                __buffa::oneof::server_reflection_request::MessageRequest::AllExtensionNumbersOfType(
132                    x,
133                ) => {
134                    ::buffa::types::put_string_field(6u32, x, buf);
135                }
136                __buffa::oneof::server_reflection_request::MessageRequest::ListServices(
137                    x,
138                ) => {
139                    ::buffa::types::put_string_field(7u32, x, buf);
140                }
141            }
142        }
143        self.__buffa_unknown_fields.write_to(buf);
144    }
145    fn merge_field(
146        &mut self,
147        tag: ::buffa::encoding::Tag,
148        buf: &mut impl ::buffa::bytes::Buf,
149        ctx: ::buffa::DecodeContext<'_>,
150    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
151        #[allow(unused_imports)]
152        use ::buffa::bytes::Buf as _;
153        #[allow(unused_imports)]
154        use ::buffa::Enumeration as _;
155        match tag.field_number() {
156            1u32 => {
157                ::buffa::encoding::check_wire_type(
158                    tag,
159                    ::buffa::encoding::WireType::LengthDelimited,
160                )?;
161                ::buffa::types::merge_string(&mut self.host, buf)?;
162            }
163            3u32 => {
164                ::buffa::encoding::check_wire_type(
165                    tag,
166                    ::buffa::encoding::WireType::LengthDelimited,
167                )?;
168                self.message_request = ::core::option::Option::Some(
169                    __buffa::oneof::server_reflection_request::MessageRequest::FileByFilename(
170                        ::buffa::types::decode_string(buf)?,
171                    ),
172                );
173            }
174            4u32 => {
175                ::buffa::encoding::check_wire_type(
176                    tag,
177                    ::buffa::encoding::WireType::LengthDelimited,
178                )?;
179                self.message_request = ::core::option::Option::Some(
180                    __buffa::oneof::server_reflection_request::MessageRequest::FileContainingSymbol(
181                        ::buffa::types::decode_string(buf)?,
182                    ),
183                );
184            }
185            5u32 => {
186                ::buffa::encoding::check_wire_type(
187                    tag,
188                    ::buffa::encoding::WireType::LengthDelimited,
189                )?;
190                if let ::core::option::Option::Some(
191                    __buffa::oneof::server_reflection_request::MessageRequest::FileContainingExtension(
192                        ref mut existing,
193                    ),
194                ) = self.message_request
195                {
196                    ::buffa::Message::merge_length_delimited(&mut **existing, buf, ctx)?;
197                } else {
198                    let mut val = ::core::default::Default::default();
199                    ::buffa::Message::merge_length_delimited(&mut val, buf, ctx)?;
200                    self.message_request = ::core::option::Option::Some(
201                        __buffa::oneof::server_reflection_request::MessageRequest::FileContainingExtension(
202                            ::buffa::alloc::boxed::Box::new(val),
203                        ),
204                    );
205                }
206            }
207            6u32 => {
208                ::buffa::encoding::check_wire_type(
209                    tag,
210                    ::buffa::encoding::WireType::LengthDelimited,
211                )?;
212                self.message_request = ::core::option::Option::Some(
213                    __buffa::oneof::server_reflection_request::MessageRequest::AllExtensionNumbersOfType(
214                        ::buffa::types::decode_string(buf)?,
215                    ),
216                );
217            }
218            7u32 => {
219                ::buffa::encoding::check_wire_type(
220                    tag,
221                    ::buffa::encoding::WireType::LengthDelimited,
222                )?;
223                self.message_request = ::core::option::Option::Some(
224                    __buffa::oneof::server_reflection_request::MessageRequest::ListServices(
225                        ::buffa::types::decode_string(buf)?,
226                    ),
227                );
228            }
229            _ => {
230                self.__buffa_unknown_fields
231                    .push(::buffa::encoding::decode_unknown_field(tag, buf, ctx)?);
232            }
233        }
234        ::core::result::Result::Ok(())
235    }
236    fn clear(&mut self) {
237        self.host.clear();
238        self.message_request = ::core::option::Option::None;
239        self.__buffa_unknown_fields.clear();
240    }
241}
242impl ::buffa::ExtensionSet for ServerReflectionRequest {
243    const PROTO_FQN: &'static str = "grpc.reflection.v1alpha.ServerReflectionRequest";
244    fn unknown_fields(&self) -> &::buffa::UnknownFields {
245        &self.__buffa_unknown_fields
246    }
247    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
248        &mut self.__buffa_unknown_fields
249    }
250}
251impl<'de> serde::Deserialize<'de> for ServerReflectionRequest {
252    fn deserialize<D: serde::Deserializer<'de>>(
253        d: D,
254    ) -> ::core::result::Result<Self, D::Error> {
255        struct _V;
256        impl<'de> serde::de::Visitor<'de> for _V {
257            type Value = ServerReflectionRequest;
258            fn expecting(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
259                f.write_str("struct ServerReflectionRequest")
260            }
261            #[allow(clippy::field_reassign_with_default)]
262            fn visit_map<A: serde::de::MapAccess<'de>>(
263                self,
264                mut map: A,
265            ) -> ::core::result::Result<ServerReflectionRequest, A::Error> {
266                let mut __f_host: ::core::option::Option<
267                    ::buffa::alloc::string::String,
268                > = None;
269                let mut __oneof_message_request: ::core::option::Option<
270                    __buffa::oneof::server_reflection_request::MessageRequest,
271                > = None;
272                while let Some(key) = map.next_key::<::buffa::alloc::string::String>()? {
273                    match key.as_str() {
274                        "host" => {
275                            __f_host = Some({
276                                struct _S;
277                                impl<'de> serde::de::DeserializeSeed<'de> for _S {
278                                    type Value = ::buffa::alloc::string::String;
279                                    fn deserialize<D: serde::Deserializer<'de>>(
280                                        self,
281                                        d: D,
282                                    ) -> ::core::result::Result<
283                                        ::buffa::alloc::string::String,
284                                        D::Error,
285                                    > {
286                                        ::buffa::json_helpers::proto_string::deserialize(d)
287                                    }
288                                }
289                                map.next_value_seed(_S)?
290                            });
291                        }
292                        "fileByFilename" | "file_by_filename" => {
293                            let v: ::core::option::Option<
294                                ::buffa::alloc::string::String,
295                            > = map
296                                .next_value_seed(
297                                    ::buffa::json_helpers::NullableDeserializeSeed(
298                                        ::buffa::json_helpers::DefaultDeserializeSeed::<
299                                            ::buffa::alloc::string::String,
300                                        >::new(),
301                                    ),
302                                )?;
303                            if let Some(v) = v {
304                                if __oneof_message_request.is_some() {
305                                    return Err(
306                                        serde::de::Error::custom(
307                                            "multiple oneof fields set for 'message_request'",
308                                        ),
309                                    );
310                                }
311                                __oneof_message_request = Some(
312                                    __buffa::oneof::server_reflection_request::MessageRequest::FileByFilename(
313                                        v,
314                                    ),
315                                );
316                            }
317                        }
318                        "fileContainingSymbol" | "file_containing_symbol" => {
319                            let v: ::core::option::Option<
320                                ::buffa::alloc::string::String,
321                            > = map
322                                .next_value_seed(
323                                    ::buffa::json_helpers::NullableDeserializeSeed(
324                                        ::buffa::json_helpers::DefaultDeserializeSeed::<
325                                            ::buffa::alloc::string::String,
326                                        >::new(),
327                                    ),
328                                )?;
329                            if let Some(v) = v {
330                                if __oneof_message_request.is_some() {
331                                    return Err(
332                                        serde::de::Error::custom(
333                                            "multiple oneof fields set for 'message_request'",
334                                        ),
335                                    );
336                                }
337                                __oneof_message_request = Some(
338                                    __buffa::oneof::server_reflection_request::MessageRequest::FileContainingSymbol(
339                                        v,
340                                    ),
341                                );
342                            }
343                        }
344                        "fileContainingExtension" | "file_containing_extension" => {
345                            let v: ::core::option::Option<ExtensionRequest> = map
346                                .next_value_seed(
347                                    ::buffa::json_helpers::NullableDeserializeSeed(
348                                        ::buffa::json_helpers::DefaultDeserializeSeed::<
349                                            ExtensionRequest,
350                                        >::new(),
351                                    ),
352                                )?;
353                            if let Some(v) = v {
354                                if __oneof_message_request.is_some() {
355                                    return Err(
356                                        serde::de::Error::custom(
357                                            "multiple oneof fields set for 'message_request'",
358                                        ),
359                                    );
360                                }
361                                __oneof_message_request = Some(
362                                    __buffa::oneof::server_reflection_request::MessageRequest::FileContainingExtension(
363                                        ::buffa::alloc::boxed::Box::new(v),
364                                    ),
365                                );
366                            }
367                        }
368                        "allExtensionNumbersOfType"
369                        | "all_extension_numbers_of_type" => {
370                            let v: ::core::option::Option<
371                                ::buffa::alloc::string::String,
372                            > = map
373                                .next_value_seed(
374                                    ::buffa::json_helpers::NullableDeserializeSeed(
375                                        ::buffa::json_helpers::DefaultDeserializeSeed::<
376                                            ::buffa::alloc::string::String,
377                                        >::new(),
378                                    ),
379                                )?;
380                            if let Some(v) = v {
381                                if __oneof_message_request.is_some() {
382                                    return Err(
383                                        serde::de::Error::custom(
384                                            "multiple oneof fields set for 'message_request'",
385                                        ),
386                                    );
387                                }
388                                __oneof_message_request = Some(
389                                    __buffa::oneof::server_reflection_request::MessageRequest::AllExtensionNumbersOfType(
390                                        v,
391                                    ),
392                                );
393                            }
394                        }
395                        "listServices" | "list_services" => {
396                            let v: ::core::option::Option<
397                                ::buffa::alloc::string::String,
398                            > = map
399                                .next_value_seed(
400                                    ::buffa::json_helpers::NullableDeserializeSeed(
401                                        ::buffa::json_helpers::DefaultDeserializeSeed::<
402                                            ::buffa::alloc::string::String,
403                                        >::new(),
404                                    ),
405                                )?;
406                            if let Some(v) = v {
407                                if __oneof_message_request.is_some() {
408                                    return Err(
409                                        serde::de::Error::custom(
410                                            "multiple oneof fields set for 'message_request'",
411                                        ),
412                                    );
413                                }
414                                __oneof_message_request = Some(
415                                    __buffa::oneof::server_reflection_request::MessageRequest::ListServices(
416                                        v,
417                                    ),
418                                );
419                            }
420                        }
421                        _ => {
422                            map.next_value::<serde::de::IgnoredAny>()?;
423                        }
424                    }
425                }
426                let mut __r = <ServerReflectionRequest as ::core::default::Default>::default();
427                if let ::core::option::Option::Some(v) = __f_host {
428                    __r.host = v;
429                }
430                __r.message_request = __oneof_message_request;
431                Ok(__r)
432            }
433        }
434        d.deserialize_map(_V)
435    }
436}
437impl ::buffa::json_helpers::ProtoElemJson for ServerReflectionRequest {
438    fn serialize_proto_json<S: ::serde::Serializer>(
439        v: &Self,
440        s: S,
441    ) -> ::core::result::Result<S::Ok, S::Error> {
442        ::serde::Serialize::serialize(v, s)
443    }
444    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
445        d: D,
446    ) -> ::core::result::Result<Self, D::Error> {
447        <Self as ::serde::Deserialize>::deserialize(d)
448    }
449}
450#[doc(hidden)]
451pub const __SERVER_REFLECTION_REQUEST_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
452    type_url: "type.googleapis.com/grpc.reflection.v1alpha.ServerReflectionRequest",
453    to_json: ::buffa::type_registry::any_to_json::<ServerReflectionRequest>,
454    from_json: ::buffa::type_registry::any_from_json::<ServerReflectionRequest>,
455    is_wkt: false,
456};
457pub mod server_reflection_request {
458    #[allow(unused_imports)]
459    use super::*;
460    #[doc(inline)]
461    pub use super::__buffa::oneof::server_reflection_request::MessageRequest;
462    #[doc(inline)]
463    pub use super::__buffa::view::oneof::server_reflection_request::MessageRequest as MessageRequestView;
464}
465/// The type name and extension number sent by the client when requesting
466/// file_containing_extension.
467#[derive(Clone, PartialEq, Default)]
468#[derive(::serde::Serialize, ::serde::Deserialize)]
469#[serde(default)]
470pub struct ExtensionRequest {
471    /// Fully-qualified type name. The format should be \<package\>.\<type\>
472    ///
473    /// Field 1: `containing_type`
474    #[serde(
475        rename = "containingType",
476        alias = "containing_type",
477        with = "::buffa::json_helpers::proto_string",
478        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
479    )]
480    pub containing_type: ::buffa::alloc::string::String,
481    /// Field 2: `extension_number`
482    #[serde(
483        rename = "extensionNumber",
484        alias = "extension_number",
485        with = "::buffa::json_helpers::int32",
486        skip_serializing_if = "::buffa::json_helpers::skip_if::is_zero_i32"
487    )]
488    pub extension_number: i32,
489    #[serde(skip)]
490    #[doc(hidden)]
491    pub __buffa_unknown_fields: ::buffa::UnknownFields,
492}
493impl ::core::fmt::Debug for ExtensionRequest {
494    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
495        f.debug_struct("ExtensionRequest")
496            .field("containing_type", &self.containing_type)
497            .field("extension_number", &self.extension_number)
498            .finish()
499    }
500}
501impl ExtensionRequest {
502    /// Protobuf type URL for this message, for use with `Any::pack` and
503    /// `Any::unpack_if`.
504    ///
505    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
506    pub const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.ExtensionRequest";
507}
508::buffa::impl_default_instance!(ExtensionRequest);
509impl ::buffa::MessageName for ExtensionRequest {
510    const PACKAGE: &'static str = "grpc.reflection.v1alpha";
511    const NAME: &'static str = "ExtensionRequest";
512    const FULL_NAME: &'static str = "grpc.reflection.v1alpha.ExtensionRequest";
513    const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.ExtensionRequest";
514}
515impl ::buffa::Message for ExtensionRequest {
516    /// Returns the total encoded size in bytes.
517    ///
518    /// Accumulates in `u64` (which cannot overflow for in-memory
519    /// data) and saturates to `u32` at return, so a message whose
520    /// encoded size exceeds the 2 GiB protobuf limit yields a value
521    /// above [`::buffa::MAX_MESSAGE_BYTES`] that the encode entry
522    /// points reject, never a silently wrapped size.
523    #[allow(clippy::let_and_return)]
524    fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
525        #[allow(unused_imports)]
526        use ::buffa::Enumeration as _;
527        let mut size = 0u64;
528        if !self.containing_type.is_empty() {
529            size
530                += 1u64
531                    + ::buffa::types::string_encoded_len(&self.containing_type) as u64;
532        }
533        if self.extension_number != 0i32 {
534            size
535                += 1u64
536                    + ::buffa::types::int32_encoded_len(self.extension_number) as u64;
537        }
538        size += self.__buffa_unknown_fields.encoded_len() as u64;
539        ::buffa::saturate_size(size)
540    }
541    fn write_to(
542        &self,
543        _cache: &mut ::buffa::SizeCache,
544        buf: &mut impl ::buffa::EncodeSink,
545    ) {
546        #[allow(unused_imports)]
547        use ::buffa::Enumeration as _;
548        if !self.containing_type.is_empty() {
549            ::buffa::types::put_string_field(1u32, &self.containing_type, buf);
550        }
551        if self.extension_number != 0i32 {
552            ::buffa::types::put_int32_field(2u32, self.extension_number, buf);
553        }
554        self.__buffa_unknown_fields.write_to(buf);
555    }
556    fn merge_field(
557        &mut self,
558        tag: ::buffa::encoding::Tag,
559        buf: &mut impl ::buffa::bytes::Buf,
560        ctx: ::buffa::DecodeContext<'_>,
561    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
562        #[allow(unused_imports)]
563        use ::buffa::bytes::Buf as _;
564        #[allow(unused_imports)]
565        use ::buffa::Enumeration as _;
566        match tag.field_number() {
567            1u32 => {
568                ::buffa::encoding::check_wire_type(
569                    tag,
570                    ::buffa::encoding::WireType::LengthDelimited,
571                )?;
572                ::buffa::types::merge_string(&mut self.containing_type, buf)?;
573            }
574            2u32 => {
575                ::buffa::encoding::check_wire_type(
576                    tag,
577                    ::buffa::encoding::WireType::Varint,
578                )?;
579                self.extension_number = ::buffa::types::decode_int32(buf)?;
580            }
581            _ => {
582                self.__buffa_unknown_fields
583                    .push(::buffa::encoding::decode_unknown_field(tag, buf, ctx)?);
584            }
585        }
586        ::core::result::Result::Ok(())
587    }
588    fn clear(&mut self) {
589        self.containing_type.clear();
590        self.extension_number = 0i32;
591        self.__buffa_unknown_fields.clear();
592    }
593}
594impl ::buffa::ExtensionSet for ExtensionRequest {
595    const PROTO_FQN: &'static str = "grpc.reflection.v1alpha.ExtensionRequest";
596    fn unknown_fields(&self) -> &::buffa::UnknownFields {
597        &self.__buffa_unknown_fields
598    }
599    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
600        &mut self.__buffa_unknown_fields
601    }
602}
603impl ::buffa::json_helpers::ProtoElemJson for ExtensionRequest {
604    fn serialize_proto_json<S: ::serde::Serializer>(
605        v: &Self,
606        s: S,
607    ) -> ::core::result::Result<S::Ok, S::Error> {
608        ::serde::Serialize::serialize(v, s)
609    }
610    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
611        d: D,
612    ) -> ::core::result::Result<Self, D::Error> {
613        <Self as ::serde::Deserialize>::deserialize(d)
614    }
615}
616#[doc(hidden)]
617pub const __EXTENSION_REQUEST_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
618    type_url: "type.googleapis.com/grpc.reflection.v1alpha.ExtensionRequest",
619    to_json: ::buffa::type_registry::any_to_json::<ExtensionRequest>,
620    from_json: ::buffa::type_registry::any_from_json::<ExtensionRequest>,
621    is_wkt: false,
622};
623/// The message sent by the server to answer ServerReflectionInfo method.
624#[derive(Clone, PartialEq, Default)]
625#[derive(::serde::Serialize)]
626#[serde(default)]
627pub struct ServerReflectionResponse {
628    /// Field 1: `valid_host`
629    #[serde(
630        rename = "validHost",
631        alias = "valid_host",
632        with = "::buffa::json_helpers::proto_string",
633        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
634    )]
635    pub valid_host: ::buffa::alloc::string::String,
636    /// Field 2: `original_request`
637    #[serde(
638        rename = "originalRequest",
639        alias = "original_request",
640        skip_serializing_if = "::buffa::json_helpers::skip_if::is_unset_message_field"
641    )]
642    pub original_request: ::buffa::MessageField<
643        ServerReflectionRequest,
644        ::buffa::Inline<ServerReflectionRequest>,
645    >,
646    #[serde(flatten)]
647    pub message_response: ::core::option::Option<
648        __buffa::oneof::server_reflection_response::MessageResponse,
649    >,
650    #[serde(skip)]
651    #[doc(hidden)]
652    pub __buffa_unknown_fields: ::buffa::UnknownFields,
653}
654impl ::core::fmt::Debug for ServerReflectionResponse {
655    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
656        f.debug_struct("ServerReflectionResponse")
657            .field("valid_host", &self.valid_host)
658            .field("original_request", &self.original_request)
659            .field("message_response", &self.message_response)
660            .finish()
661    }
662}
663impl ServerReflectionResponse {
664    /// Protobuf type URL for this message, for use with `Any::pack` and
665    /// `Any::unpack_if`.
666    ///
667    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
668    pub const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.ServerReflectionResponse";
669}
670::buffa::impl_default_instance!(ServerReflectionResponse);
671impl ::buffa::MessageName for ServerReflectionResponse {
672    const PACKAGE: &'static str = "grpc.reflection.v1alpha";
673    const NAME: &'static str = "ServerReflectionResponse";
674    const FULL_NAME: &'static str = "grpc.reflection.v1alpha.ServerReflectionResponse";
675    const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.ServerReflectionResponse";
676}
677impl ::buffa::Message for ServerReflectionResponse {
678    /// Returns the total encoded size in bytes.
679    ///
680    /// Accumulates in `u64` (which cannot overflow for in-memory
681    /// data) and saturates to `u32` at return, so a message whose
682    /// encoded size exceeds the 2 GiB protobuf limit yields a value
683    /// above [`::buffa::MAX_MESSAGE_BYTES`] that the encode entry
684    /// points reject, never a silently wrapped size.
685    #[allow(clippy::let_and_return)]
686    fn compute_size(&self, __cache: &mut ::buffa::SizeCache) -> u32 {
687        #[allow(unused_imports)]
688        use ::buffa::Enumeration as _;
689        let mut size = 0u64;
690        if !self.valid_host.is_empty() {
691            size += 1u64 + ::buffa::types::string_encoded_len(&self.valid_host) as u64;
692        }
693        if self.original_request.is_set() {
694            let __slot = __cache.reserve();
695            let inner_size = self.original_request.compute_size(__cache);
696            __cache.set(__slot, inner_size);
697            size
698                += 1u64 + ::buffa::encoding::varint_len(inner_size as u64) as u64
699                    + inner_size as u64;
700        }
701        if let ::core::option::Option::Some(ref v) = self.message_response {
702            match v {
703                __buffa::oneof::server_reflection_response::MessageResponse::FileDescriptorResponse(
704                    x,
705                ) => {
706                    let __slot = __cache.reserve();
707                    let inner = x.compute_size(__cache);
708                    __cache.set(__slot, inner);
709                    size
710                        += 1u64 + ::buffa::encoding::varint_len(inner as u64) as u64
711                            + inner as u64;
712                }
713                __buffa::oneof::server_reflection_response::MessageResponse::AllExtensionNumbersResponse(
714                    x,
715                ) => {
716                    let __slot = __cache.reserve();
717                    let inner = x.compute_size(__cache);
718                    __cache.set(__slot, inner);
719                    size
720                        += 1u64 + ::buffa::encoding::varint_len(inner as u64) as u64
721                            + inner as u64;
722                }
723                __buffa::oneof::server_reflection_response::MessageResponse::ListServicesResponse(
724                    x,
725                ) => {
726                    let __slot = __cache.reserve();
727                    let inner = x.compute_size(__cache);
728                    __cache.set(__slot, inner);
729                    size
730                        += 1u64 + ::buffa::encoding::varint_len(inner as u64) as u64
731                            + inner as u64;
732                }
733                __buffa::oneof::server_reflection_response::MessageResponse::ErrorResponse(
734                    x,
735                ) => {
736                    let __slot = __cache.reserve();
737                    let inner = x.compute_size(__cache);
738                    __cache.set(__slot, inner);
739                    size
740                        += 1u64 + ::buffa::encoding::varint_len(inner as u64) as u64
741                            + inner as u64;
742                }
743            }
744        }
745        size += self.__buffa_unknown_fields.encoded_len() as u64;
746        ::buffa::saturate_size(size)
747    }
748    fn write_to(
749        &self,
750        __cache: &mut ::buffa::SizeCache,
751        buf: &mut impl ::buffa::EncodeSink,
752    ) {
753        #[allow(unused_imports)]
754        use ::buffa::Enumeration as _;
755        if !self.valid_host.is_empty() {
756            ::buffa::types::put_string_field(1u32, &self.valid_host, buf);
757        }
758        if self.original_request.is_set() {
759            ::buffa::types::put_len_delimited_header(
760                2u32,
761                u64::from(__cache.consume_next()),
762                buf,
763            );
764            self.original_request.write_to(__cache, buf);
765        }
766        if let ::core::option::Option::Some(ref v) = self.message_response {
767            match v {
768                __buffa::oneof::server_reflection_response::MessageResponse::FileDescriptorResponse(
769                    x,
770                ) => {
771                    ::buffa::types::put_len_delimited_header(
772                        4u32,
773                        u64::from(__cache.consume_next()),
774                        buf,
775                    );
776                    x.write_to(__cache, buf);
777                }
778                __buffa::oneof::server_reflection_response::MessageResponse::AllExtensionNumbersResponse(
779                    x,
780                ) => {
781                    ::buffa::types::put_len_delimited_header(
782                        5u32,
783                        u64::from(__cache.consume_next()),
784                        buf,
785                    );
786                    x.write_to(__cache, buf);
787                }
788                __buffa::oneof::server_reflection_response::MessageResponse::ListServicesResponse(
789                    x,
790                ) => {
791                    ::buffa::types::put_len_delimited_header(
792                        6u32,
793                        u64::from(__cache.consume_next()),
794                        buf,
795                    );
796                    x.write_to(__cache, buf);
797                }
798                __buffa::oneof::server_reflection_response::MessageResponse::ErrorResponse(
799                    x,
800                ) => {
801                    ::buffa::types::put_len_delimited_header(
802                        7u32,
803                        u64::from(__cache.consume_next()),
804                        buf,
805                    );
806                    x.write_to(__cache, buf);
807                }
808            }
809        }
810        self.__buffa_unknown_fields.write_to(buf);
811    }
812    fn merge_field(
813        &mut self,
814        tag: ::buffa::encoding::Tag,
815        buf: &mut impl ::buffa::bytes::Buf,
816        ctx: ::buffa::DecodeContext<'_>,
817    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
818        #[allow(unused_imports)]
819        use ::buffa::bytes::Buf as _;
820        #[allow(unused_imports)]
821        use ::buffa::Enumeration as _;
822        match tag.field_number() {
823            1u32 => {
824                ::buffa::encoding::check_wire_type(
825                    tag,
826                    ::buffa::encoding::WireType::LengthDelimited,
827                )?;
828                ::buffa::types::merge_string(&mut self.valid_host, buf)?;
829            }
830            2u32 => {
831                ::buffa::encoding::check_wire_type(
832                    tag,
833                    ::buffa::encoding::WireType::LengthDelimited,
834                )?;
835                ::buffa::Message::merge_length_delimited(
836                    self.original_request.get_or_insert_default(),
837                    buf,
838                    ctx,
839                )?;
840            }
841            4u32 => {
842                ::buffa::encoding::check_wire_type(
843                    tag,
844                    ::buffa::encoding::WireType::LengthDelimited,
845                )?;
846                if let ::core::option::Option::Some(
847                    __buffa::oneof::server_reflection_response::MessageResponse::FileDescriptorResponse(
848                        ref mut existing,
849                    ),
850                ) = self.message_response
851                {
852                    ::buffa::Message::merge_length_delimited(&mut **existing, buf, ctx)?;
853                } else {
854                    let mut val = ::core::default::Default::default();
855                    ::buffa::Message::merge_length_delimited(&mut val, buf, ctx)?;
856                    self.message_response = ::core::option::Option::Some(
857                        __buffa::oneof::server_reflection_response::MessageResponse::FileDescriptorResponse(
858                            ::buffa::alloc::boxed::Box::new(val),
859                        ),
860                    );
861                }
862            }
863            5u32 => {
864                ::buffa::encoding::check_wire_type(
865                    tag,
866                    ::buffa::encoding::WireType::LengthDelimited,
867                )?;
868                if let ::core::option::Option::Some(
869                    __buffa::oneof::server_reflection_response::MessageResponse::AllExtensionNumbersResponse(
870                        ref mut existing,
871                    ),
872                ) = self.message_response
873                {
874                    ::buffa::Message::merge_length_delimited(&mut **existing, buf, ctx)?;
875                } else {
876                    let mut val = ::core::default::Default::default();
877                    ::buffa::Message::merge_length_delimited(&mut val, buf, ctx)?;
878                    self.message_response = ::core::option::Option::Some(
879                        __buffa::oneof::server_reflection_response::MessageResponse::AllExtensionNumbersResponse(
880                            ::buffa::alloc::boxed::Box::new(val),
881                        ),
882                    );
883                }
884            }
885            6u32 => {
886                ::buffa::encoding::check_wire_type(
887                    tag,
888                    ::buffa::encoding::WireType::LengthDelimited,
889                )?;
890                if let ::core::option::Option::Some(
891                    __buffa::oneof::server_reflection_response::MessageResponse::ListServicesResponse(
892                        ref mut existing,
893                    ),
894                ) = self.message_response
895                {
896                    ::buffa::Message::merge_length_delimited(&mut **existing, buf, ctx)?;
897                } else {
898                    let mut val = ::core::default::Default::default();
899                    ::buffa::Message::merge_length_delimited(&mut val, buf, ctx)?;
900                    self.message_response = ::core::option::Option::Some(
901                        __buffa::oneof::server_reflection_response::MessageResponse::ListServicesResponse(
902                            ::buffa::alloc::boxed::Box::new(val),
903                        ),
904                    );
905                }
906            }
907            7u32 => {
908                ::buffa::encoding::check_wire_type(
909                    tag,
910                    ::buffa::encoding::WireType::LengthDelimited,
911                )?;
912                if let ::core::option::Option::Some(
913                    __buffa::oneof::server_reflection_response::MessageResponse::ErrorResponse(
914                        ref mut existing,
915                    ),
916                ) = self.message_response
917                {
918                    ::buffa::Message::merge_length_delimited(&mut **existing, buf, ctx)?;
919                } else {
920                    let mut val = ::core::default::Default::default();
921                    ::buffa::Message::merge_length_delimited(&mut val, buf, ctx)?;
922                    self.message_response = ::core::option::Option::Some(
923                        __buffa::oneof::server_reflection_response::MessageResponse::ErrorResponse(
924                            ::buffa::alloc::boxed::Box::new(val),
925                        ),
926                    );
927                }
928            }
929            _ => {
930                self.__buffa_unknown_fields
931                    .push(::buffa::encoding::decode_unknown_field(tag, buf, ctx)?);
932            }
933        }
934        ::core::result::Result::Ok(())
935    }
936    fn clear(&mut self) {
937        self.valid_host.clear();
938        self.original_request = ::buffa::MessageField::none();
939        self.message_response = ::core::option::Option::None;
940        self.__buffa_unknown_fields.clear();
941    }
942}
943impl ::buffa::ExtensionSet for ServerReflectionResponse {
944    const PROTO_FQN: &'static str = "grpc.reflection.v1alpha.ServerReflectionResponse";
945    fn unknown_fields(&self) -> &::buffa::UnknownFields {
946        &self.__buffa_unknown_fields
947    }
948    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
949        &mut self.__buffa_unknown_fields
950    }
951}
952impl<'de> serde::Deserialize<'de> for ServerReflectionResponse {
953    fn deserialize<D: serde::Deserializer<'de>>(
954        d: D,
955    ) -> ::core::result::Result<Self, D::Error> {
956        struct _V;
957        impl<'de> serde::de::Visitor<'de> for _V {
958            type Value = ServerReflectionResponse;
959            fn expecting(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
960                f.write_str("struct ServerReflectionResponse")
961            }
962            #[allow(clippy::field_reassign_with_default)]
963            fn visit_map<A: serde::de::MapAccess<'de>>(
964                self,
965                mut map: A,
966            ) -> ::core::result::Result<ServerReflectionResponse, A::Error> {
967                let mut __f_valid_host: ::core::option::Option<
968                    ::buffa::alloc::string::String,
969                > = None;
970                let mut __f_original_request: ::core::option::Option<
971                    ::buffa::MessageField<
972                        ServerReflectionRequest,
973                        ::buffa::Inline<ServerReflectionRequest>,
974                    >,
975                > = None;
976                let mut __oneof_message_response: ::core::option::Option<
977                    __buffa::oneof::server_reflection_response::MessageResponse,
978                > = None;
979                while let Some(key) = map.next_key::<::buffa::alloc::string::String>()? {
980                    match key.as_str() {
981                        "validHost" | "valid_host" => {
982                            __f_valid_host = Some({
983                                struct _S;
984                                impl<'de> serde::de::DeserializeSeed<'de> for _S {
985                                    type Value = ::buffa::alloc::string::String;
986                                    fn deserialize<D: serde::Deserializer<'de>>(
987                                        self,
988                                        d: D,
989                                    ) -> ::core::result::Result<
990                                        ::buffa::alloc::string::String,
991                                        D::Error,
992                                    > {
993                                        ::buffa::json_helpers::proto_string::deserialize(d)
994                                    }
995                                }
996                                map.next_value_seed(_S)?
997                            });
998                        }
999                        "originalRequest" | "original_request" => {
1000                            __f_original_request = Some(
1001                                map
1002                                    .next_value::<
1003                                        ::buffa::MessageField<
1004                                            ServerReflectionRequest,
1005                                            ::buffa::Inline<ServerReflectionRequest>,
1006                                        >,
1007                                    >()?,
1008                            );
1009                        }
1010                        "fileDescriptorResponse" | "file_descriptor_response" => {
1011                            let v: ::core::option::Option<FileDescriptorResponse> = map
1012                                .next_value_seed(
1013                                    ::buffa::json_helpers::NullableDeserializeSeed(
1014                                        ::buffa::json_helpers::DefaultDeserializeSeed::<
1015                                            FileDescriptorResponse,
1016                                        >::new(),
1017                                    ),
1018                                )?;
1019                            if let Some(v) = v {
1020                                if __oneof_message_response.is_some() {
1021                                    return Err(
1022                                        serde::de::Error::custom(
1023                                            "multiple oneof fields set for 'message_response'",
1024                                        ),
1025                                    );
1026                                }
1027                                __oneof_message_response = Some(
1028                                    __buffa::oneof::server_reflection_response::MessageResponse::FileDescriptorResponse(
1029                                        ::buffa::alloc::boxed::Box::new(v),
1030                                    ),
1031                                );
1032                            }
1033                        }
1034                        "allExtensionNumbersResponse"
1035                        | "all_extension_numbers_response" => {
1036                            let v: ::core::option::Option<ExtensionNumberResponse> = map
1037                                .next_value_seed(
1038                                    ::buffa::json_helpers::NullableDeserializeSeed(
1039                                        ::buffa::json_helpers::DefaultDeserializeSeed::<
1040                                            ExtensionNumberResponse,
1041                                        >::new(),
1042                                    ),
1043                                )?;
1044                            if let Some(v) = v {
1045                                if __oneof_message_response.is_some() {
1046                                    return Err(
1047                                        serde::de::Error::custom(
1048                                            "multiple oneof fields set for 'message_response'",
1049                                        ),
1050                                    );
1051                                }
1052                                __oneof_message_response = Some(
1053                                    __buffa::oneof::server_reflection_response::MessageResponse::AllExtensionNumbersResponse(
1054                                        ::buffa::alloc::boxed::Box::new(v),
1055                                    ),
1056                                );
1057                            }
1058                        }
1059                        "listServicesResponse" | "list_services_response" => {
1060                            let v: ::core::option::Option<ListServiceResponse> = map
1061                                .next_value_seed(
1062                                    ::buffa::json_helpers::NullableDeserializeSeed(
1063                                        ::buffa::json_helpers::DefaultDeserializeSeed::<
1064                                            ListServiceResponse,
1065                                        >::new(),
1066                                    ),
1067                                )?;
1068                            if let Some(v) = v {
1069                                if __oneof_message_response.is_some() {
1070                                    return Err(
1071                                        serde::de::Error::custom(
1072                                            "multiple oneof fields set for 'message_response'",
1073                                        ),
1074                                    );
1075                                }
1076                                __oneof_message_response = Some(
1077                                    __buffa::oneof::server_reflection_response::MessageResponse::ListServicesResponse(
1078                                        ::buffa::alloc::boxed::Box::new(v),
1079                                    ),
1080                                );
1081                            }
1082                        }
1083                        "errorResponse" | "error_response" => {
1084                            let v: ::core::option::Option<ErrorResponse> = map
1085                                .next_value_seed(
1086                                    ::buffa::json_helpers::NullableDeserializeSeed(
1087                                        ::buffa::json_helpers::DefaultDeserializeSeed::<
1088                                            ErrorResponse,
1089                                        >::new(),
1090                                    ),
1091                                )?;
1092                            if let Some(v) = v {
1093                                if __oneof_message_response.is_some() {
1094                                    return Err(
1095                                        serde::de::Error::custom(
1096                                            "multiple oneof fields set for 'message_response'",
1097                                        ),
1098                                    );
1099                                }
1100                                __oneof_message_response = Some(
1101                                    __buffa::oneof::server_reflection_response::MessageResponse::ErrorResponse(
1102                                        ::buffa::alloc::boxed::Box::new(v),
1103                                    ),
1104                                );
1105                            }
1106                        }
1107                        _ => {
1108                            map.next_value::<serde::de::IgnoredAny>()?;
1109                        }
1110                    }
1111                }
1112                let mut __r = <ServerReflectionResponse as ::core::default::Default>::default();
1113                if let ::core::option::Option::Some(v) = __f_valid_host {
1114                    __r.valid_host = v;
1115                }
1116                if let ::core::option::Option::Some(v) = __f_original_request {
1117                    __r.original_request = v;
1118                }
1119                __r.message_response = __oneof_message_response;
1120                Ok(__r)
1121            }
1122        }
1123        d.deserialize_map(_V)
1124    }
1125}
1126impl ::buffa::json_helpers::ProtoElemJson for ServerReflectionResponse {
1127    fn serialize_proto_json<S: ::serde::Serializer>(
1128        v: &Self,
1129        s: S,
1130    ) -> ::core::result::Result<S::Ok, S::Error> {
1131        ::serde::Serialize::serialize(v, s)
1132    }
1133    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
1134        d: D,
1135    ) -> ::core::result::Result<Self, D::Error> {
1136        <Self as ::serde::Deserialize>::deserialize(d)
1137    }
1138}
1139#[doc(hidden)]
1140pub const __SERVER_REFLECTION_RESPONSE_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
1141    type_url: "type.googleapis.com/grpc.reflection.v1alpha.ServerReflectionResponse",
1142    to_json: ::buffa::type_registry::any_to_json::<ServerReflectionResponse>,
1143    from_json: ::buffa::type_registry::any_from_json::<ServerReflectionResponse>,
1144    is_wkt: false,
1145};
1146pub mod server_reflection_response {
1147    #[allow(unused_imports)]
1148    use super::*;
1149    #[doc(inline)]
1150    pub use super::__buffa::oneof::server_reflection_response::MessageResponse;
1151    #[doc(inline)]
1152    pub use super::__buffa::view::oneof::server_reflection_response::MessageResponse as MessageResponseView;
1153}
1154/// Serialized FileDescriptorProto messages sent by the server answering
1155/// a file_by_filename, file_containing_symbol, or file_containing_extension
1156/// request.
1157#[derive(Clone, PartialEq, Default)]
1158#[derive(::serde::Serialize, ::serde::Deserialize)]
1159#[serde(default)]
1160pub struct FileDescriptorResponse {
1161    /// Serialized FileDescriptorProto messages. We avoid taking a dependency on
1162    /// descriptor.proto, which uses proto2 only features, by making them opaque
1163    /// bytes instead.
1164    ///
1165    /// Field 1: `file_descriptor_proto`
1166    #[serde(
1167        rename = "fileDescriptorProto",
1168        alias = "file_descriptor_proto",
1169        with = "::buffa::json_helpers::proto_seq",
1170        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_vec"
1171    )]
1172    pub file_descriptor_proto: ::buffa::alloc::vec::Vec<::buffa::alloc::vec::Vec<u8>>,
1173    #[serde(skip)]
1174    #[doc(hidden)]
1175    pub __buffa_unknown_fields: ::buffa::UnknownFields,
1176}
1177impl ::core::fmt::Debug for FileDescriptorResponse {
1178    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1179        f.debug_struct("FileDescriptorResponse")
1180            .field("file_descriptor_proto", &self.file_descriptor_proto)
1181            .finish()
1182    }
1183}
1184impl FileDescriptorResponse {
1185    /// Protobuf type URL for this message, for use with `Any::pack` and
1186    /// `Any::unpack_if`.
1187    ///
1188    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
1189    pub const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.FileDescriptorResponse";
1190}
1191::buffa::impl_default_instance!(FileDescriptorResponse);
1192impl ::buffa::MessageName for FileDescriptorResponse {
1193    const PACKAGE: &'static str = "grpc.reflection.v1alpha";
1194    const NAME: &'static str = "FileDescriptorResponse";
1195    const FULL_NAME: &'static str = "grpc.reflection.v1alpha.FileDescriptorResponse";
1196    const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.FileDescriptorResponse";
1197}
1198impl ::buffa::Message for FileDescriptorResponse {
1199    /// Returns the total encoded size in bytes.
1200    ///
1201    /// Accumulates in `u64` (which cannot overflow for in-memory
1202    /// data) and saturates to `u32` at return, so a message whose
1203    /// encoded size exceeds the 2 GiB protobuf limit yields a value
1204    /// above [`::buffa::MAX_MESSAGE_BYTES`] that the encode entry
1205    /// points reject, never a silently wrapped size.
1206    #[allow(clippy::let_and_return)]
1207    fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
1208        #[allow(unused_imports)]
1209        use ::buffa::Enumeration as _;
1210        let mut size = 0u64;
1211        for v in &self.file_descriptor_proto {
1212            size += 1u64 + ::buffa::types::bytes_encoded_len(v) as u64;
1213        }
1214        size += self.__buffa_unknown_fields.encoded_len() as u64;
1215        ::buffa::saturate_size(size)
1216    }
1217    fn write_to(
1218        &self,
1219        _cache: &mut ::buffa::SizeCache,
1220        buf: &mut impl ::buffa::EncodeSink,
1221    ) {
1222        #[allow(unused_imports)]
1223        use ::buffa::Enumeration as _;
1224        for v in &self.file_descriptor_proto {
1225            ::buffa::types::put_shared_bytes_field(1u32, v, buf);
1226        }
1227        self.__buffa_unknown_fields.write_to(buf);
1228    }
1229    fn merge_field(
1230        &mut self,
1231        tag: ::buffa::encoding::Tag,
1232        buf: &mut impl ::buffa::bytes::Buf,
1233        ctx: ::buffa::DecodeContext<'_>,
1234    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
1235        #[allow(unused_imports)]
1236        use ::buffa::bytes::Buf as _;
1237        #[allow(unused_imports)]
1238        use ::buffa::Enumeration as _;
1239        match tag.field_number() {
1240            1u32 => {
1241                ::buffa::encoding::check_wire_type(
1242                    tag,
1243                    ::buffa::encoding::WireType::LengthDelimited,
1244                )?;
1245                let __elem = ::buffa::types::decode_bytes(buf)?;
1246                ctx.register_element_memory(
1247                    ::buffa::__private::element_footprint(&__elem),
1248                )?;
1249                self.file_descriptor_proto.push(__elem);
1250            }
1251            _ => {
1252                self.__buffa_unknown_fields
1253                    .push(::buffa::encoding::decode_unknown_field(tag, buf, ctx)?);
1254            }
1255        }
1256        ::core::result::Result::Ok(())
1257    }
1258    fn clear(&mut self) {
1259        self.file_descriptor_proto.clear();
1260        self.__buffa_unknown_fields.clear();
1261    }
1262}
1263impl ::buffa::ExtensionSet for FileDescriptorResponse {
1264    const PROTO_FQN: &'static str = "grpc.reflection.v1alpha.FileDescriptorResponse";
1265    fn unknown_fields(&self) -> &::buffa::UnknownFields {
1266        &self.__buffa_unknown_fields
1267    }
1268    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
1269        &mut self.__buffa_unknown_fields
1270    }
1271}
1272impl ::buffa::json_helpers::ProtoElemJson for FileDescriptorResponse {
1273    fn serialize_proto_json<S: ::serde::Serializer>(
1274        v: &Self,
1275        s: S,
1276    ) -> ::core::result::Result<S::Ok, S::Error> {
1277        ::serde::Serialize::serialize(v, s)
1278    }
1279    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
1280        d: D,
1281    ) -> ::core::result::Result<Self, D::Error> {
1282        <Self as ::serde::Deserialize>::deserialize(d)
1283    }
1284}
1285#[doc(hidden)]
1286pub const __FILE_DESCRIPTOR_RESPONSE_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
1287    type_url: "type.googleapis.com/grpc.reflection.v1alpha.FileDescriptorResponse",
1288    to_json: ::buffa::type_registry::any_to_json::<FileDescriptorResponse>,
1289    from_json: ::buffa::type_registry::any_from_json::<FileDescriptorResponse>,
1290    is_wkt: false,
1291};
1292/// A list of extension numbers sent by the server answering
1293/// all_extension_numbers_of_type request.
1294#[derive(Clone, PartialEq, Default)]
1295#[derive(::serde::Serialize, ::serde::Deserialize)]
1296#[serde(default)]
1297pub struct ExtensionNumberResponse {
1298    /// Full name of the base type, including the package name. The format
1299    /// is \<package\>.\<type\>
1300    ///
1301    /// Field 1: `base_type_name`
1302    #[serde(
1303        rename = "baseTypeName",
1304        alias = "base_type_name",
1305        with = "::buffa::json_helpers::proto_string",
1306        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
1307    )]
1308    pub base_type_name: ::buffa::alloc::string::String,
1309    /// Field 2: `extension_number`
1310    #[serde(
1311        rename = "extensionNumber",
1312        alias = "extension_number",
1313        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_vec",
1314        deserialize_with = "::buffa::json_helpers::null_as_default"
1315    )]
1316    pub extension_number: ::buffa::alloc::vec::Vec<i32>,
1317    #[serde(skip)]
1318    #[doc(hidden)]
1319    pub __buffa_unknown_fields: ::buffa::UnknownFields,
1320}
1321impl ::core::fmt::Debug for ExtensionNumberResponse {
1322    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1323        f.debug_struct("ExtensionNumberResponse")
1324            .field("base_type_name", &self.base_type_name)
1325            .field("extension_number", &self.extension_number)
1326            .finish()
1327    }
1328}
1329impl ExtensionNumberResponse {
1330    /// Protobuf type URL for this message, for use with `Any::pack` and
1331    /// `Any::unpack_if`.
1332    ///
1333    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
1334    pub const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.ExtensionNumberResponse";
1335}
1336::buffa::impl_default_instance!(ExtensionNumberResponse);
1337impl ::buffa::MessageName for ExtensionNumberResponse {
1338    const PACKAGE: &'static str = "grpc.reflection.v1alpha";
1339    const NAME: &'static str = "ExtensionNumberResponse";
1340    const FULL_NAME: &'static str = "grpc.reflection.v1alpha.ExtensionNumberResponse";
1341    const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.ExtensionNumberResponse";
1342}
1343impl ::buffa::Message for ExtensionNumberResponse {
1344    /// Returns the total encoded size in bytes.
1345    ///
1346    /// Accumulates in `u64` (which cannot overflow for in-memory
1347    /// data) and saturates to `u32` at return, so a message whose
1348    /// encoded size exceeds the 2 GiB protobuf limit yields a value
1349    /// above [`::buffa::MAX_MESSAGE_BYTES`] that the encode entry
1350    /// points reject, never a silently wrapped size.
1351    #[allow(clippy::let_and_return)]
1352    fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
1353        #[allow(unused_imports)]
1354        use ::buffa::Enumeration as _;
1355        let mut size = 0u64;
1356        if !self.base_type_name.is_empty() {
1357            size
1358                += 1u64
1359                    + ::buffa::types::string_encoded_len(&self.base_type_name) as u64;
1360        }
1361        if !self.extension_number.is_empty() {
1362            let payload: u64 = self
1363                .extension_number
1364                .iter()
1365                .map(|&v| ::buffa::types::int32_encoded_len(v) as u64)
1366                .sum::<u64>();
1367            size += 1u64 + ::buffa::encoding::varint_len(payload) as u64 + payload;
1368        }
1369        size += self.__buffa_unknown_fields.encoded_len() as u64;
1370        ::buffa::saturate_size(size)
1371    }
1372    fn write_to(
1373        &self,
1374        _cache: &mut ::buffa::SizeCache,
1375        buf: &mut impl ::buffa::EncodeSink,
1376    ) {
1377        #[allow(unused_imports)]
1378        use ::buffa::Enumeration as _;
1379        if !self.base_type_name.is_empty() {
1380            ::buffa::types::put_string_field(1u32, &self.base_type_name, buf);
1381        }
1382        if !self.extension_number.is_empty() {
1383            let payload: u64 = self
1384                .extension_number
1385                .iter()
1386                .map(|&v| ::buffa::types::int32_encoded_len(v) as u64)
1387                .sum::<u64>();
1388            ::buffa::types::put_len_delimited_header(2u32, payload, buf);
1389            for &v in &self.extension_number {
1390                ::buffa::types::encode_int32(v, buf);
1391            }
1392        }
1393        self.__buffa_unknown_fields.write_to(buf);
1394    }
1395    fn merge_field(
1396        &mut self,
1397        tag: ::buffa::encoding::Tag,
1398        buf: &mut impl ::buffa::bytes::Buf,
1399        ctx: ::buffa::DecodeContext<'_>,
1400    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
1401        #[allow(unused_imports)]
1402        use ::buffa::bytes::Buf as _;
1403        #[allow(unused_imports)]
1404        use ::buffa::Enumeration as _;
1405        match tag.field_number() {
1406            1u32 => {
1407                ::buffa::encoding::check_wire_type(
1408                    tag,
1409                    ::buffa::encoding::WireType::LengthDelimited,
1410                )?;
1411                ::buffa::types::merge_string(&mut self.base_type_name, buf)?;
1412            }
1413            2u32 => {
1414                if tag.wire_type() == ::buffa::encoding::WireType::LengthDelimited {
1415                    let len = ::buffa::encoding::decode_varint(buf)?;
1416                    let len = usize::try_from(len)
1417                        .map_err(|_| ::buffa::DecodeError::MessageTooLarge)?;
1418                    if buf.remaining() < len {
1419                        return ::core::result::Result::Err(
1420                            ::buffa::DecodeError::UnexpectedEof,
1421                        );
1422                    }
1423                    if buf.chunk().len() >= len {
1424                        ::buffa::types::extend_packed_int32(
1425                            &buf.chunk()[..len],
1426                            &mut self.extension_number,
1427                            len,
1428                        )?;
1429                        buf.advance(len);
1430                    } else {
1431                        self.extension_number.reserve(len);
1432                        let mut limited = buf.take(len);
1433                        while limited.has_remaining() {
1434                            self.extension_number
1435                                .push(::buffa::types::decode_int32_packed(&mut limited)?);
1436                        }
1437                        let leftover = limited.remaining();
1438                        if leftover > 0 {
1439                            limited.advance(leftover);
1440                        }
1441                    }
1442                } else if tag.wire_type() == ::buffa::encoding::WireType::Varint {
1443                    self.extension_number.push(::buffa::types::decode_int32(buf)?);
1444                } else {
1445                    return ::core::result::Result::Err(
1446                        ::buffa::encoding::wire_type_mismatch(
1447                            tag,
1448                            ::buffa::encoding::WireType::LengthDelimited,
1449                        ),
1450                    );
1451                }
1452            }
1453            _ => {
1454                self.__buffa_unknown_fields
1455                    .push(::buffa::encoding::decode_unknown_field(tag, buf, ctx)?);
1456            }
1457        }
1458        ::core::result::Result::Ok(())
1459    }
1460    fn clear(&mut self) {
1461        self.base_type_name.clear();
1462        self.extension_number.clear();
1463        self.__buffa_unknown_fields.clear();
1464    }
1465}
1466impl ::buffa::ExtensionSet for ExtensionNumberResponse {
1467    const PROTO_FQN: &'static str = "grpc.reflection.v1alpha.ExtensionNumberResponse";
1468    fn unknown_fields(&self) -> &::buffa::UnknownFields {
1469        &self.__buffa_unknown_fields
1470    }
1471    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
1472        &mut self.__buffa_unknown_fields
1473    }
1474}
1475impl ::buffa::json_helpers::ProtoElemJson for ExtensionNumberResponse {
1476    fn serialize_proto_json<S: ::serde::Serializer>(
1477        v: &Self,
1478        s: S,
1479    ) -> ::core::result::Result<S::Ok, S::Error> {
1480        ::serde::Serialize::serialize(v, s)
1481    }
1482    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
1483        d: D,
1484    ) -> ::core::result::Result<Self, D::Error> {
1485        <Self as ::serde::Deserialize>::deserialize(d)
1486    }
1487}
1488#[doc(hidden)]
1489pub const __EXTENSION_NUMBER_RESPONSE_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
1490    type_url: "type.googleapis.com/grpc.reflection.v1alpha.ExtensionNumberResponse",
1491    to_json: ::buffa::type_registry::any_to_json::<ExtensionNumberResponse>,
1492    from_json: ::buffa::type_registry::any_from_json::<ExtensionNumberResponse>,
1493    is_wkt: false,
1494};
1495/// A list of ServiceResponse sent by the server answering list_services request.
1496#[derive(Clone, PartialEq, Default)]
1497#[derive(::serde::Serialize, ::serde::Deserialize)]
1498#[serde(default)]
1499pub struct ListServiceResponse {
1500    /// The information of each service may be expanded in the future, so we use
1501    /// ServiceResponse message to encapsulate it.
1502    ///
1503    /// Field 1: `service`
1504    #[serde(
1505        rename = "service",
1506        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_vec",
1507        deserialize_with = "::buffa::json_helpers::null_as_default"
1508    )]
1509    pub service: ::buffa::alloc::vec::Vec<ServiceResponse>,
1510    #[serde(skip)]
1511    #[doc(hidden)]
1512    pub __buffa_unknown_fields: ::buffa::UnknownFields,
1513}
1514impl ::core::fmt::Debug for ListServiceResponse {
1515    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1516        f.debug_struct("ListServiceResponse").field("service", &self.service).finish()
1517    }
1518}
1519impl ListServiceResponse {
1520    /// Protobuf type URL for this message, for use with `Any::pack` and
1521    /// `Any::unpack_if`.
1522    ///
1523    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
1524    pub const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.ListServiceResponse";
1525}
1526::buffa::impl_default_instance!(ListServiceResponse);
1527impl ::buffa::MessageName for ListServiceResponse {
1528    const PACKAGE: &'static str = "grpc.reflection.v1alpha";
1529    const NAME: &'static str = "ListServiceResponse";
1530    const FULL_NAME: &'static str = "grpc.reflection.v1alpha.ListServiceResponse";
1531    const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.ListServiceResponse";
1532}
1533impl ::buffa::Message for ListServiceResponse {
1534    /// Returns the total encoded size in bytes.
1535    ///
1536    /// Accumulates in `u64` (which cannot overflow for in-memory
1537    /// data) and saturates to `u32` at return, so a message whose
1538    /// encoded size exceeds the 2 GiB protobuf limit yields a value
1539    /// above [`::buffa::MAX_MESSAGE_BYTES`] that the encode entry
1540    /// points reject, never a silently wrapped size.
1541    #[allow(clippy::let_and_return)]
1542    fn compute_size(&self, __cache: &mut ::buffa::SizeCache) -> u32 {
1543        #[allow(unused_imports)]
1544        use ::buffa::Enumeration as _;
1545        let mut size = 0u64;
1546        for v in &self.service {
1547            let __slot = __cache.reserve();
1548            let inner_size = v.compute_size(__cache);
1549            __cache.set(__slot, inner_size);
1550            size
1551                += 1u64 + ::buffa::encoding::varint_len(inner_size as u64) as u64
1552                    + inner_size as u64;
1553        }
1554        size += self.__buffa_unknown_fields.encoded_len() as u64;
1555        ::buffa::saturate_size(size)
1556    }
1557    fn write_to(
1558        &self,
1559        __cache: &mut ::buffa::SizeCache,
1560        buf: &mut impl ::buffa::EncodeSink,
1561    ) {
1562        #[allow(unused_imports)]
1563        use ::buffa::Enumeration as _;
1564        for v in &self.service {
1565            ::buffa::types::put_len_delimited_header(
1566                1u32,
1567                u64::from(__cache.consume_next()),
1568                buf,
1569            );
1570            v.write_to(__cache, buf);
1571        }
1572        self.__buffa_unknown_fields.write_to(buf);
1573    }
1574    fn merge_field(
1575        &mut self,
1576        tag: ::buffa::encoding::Tag,
1577        buf: &mut impl ::buffa::bytes::Buf,
1578        ctx: ::buffa::DecodeContext<'_>,
1579    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
1580        #[allow(unused_imports)]
1581        use ::buffa::bytes::Buf as _;
1582        #[allow(unused_imports)]
1583        use ::buffa::Enumeration as _;
1584        match tag.field_number() {
1585            1u32 => {
1586                ::buffa::encoding::check_wire_type(
1587                    tag,
1588                    ::buffa::encoding::WireType::LengthDelimited,
1589                )?;
1590                let mut elem = ::core::default::Default::default();
1591                ctx.register_element_memory(
1592                    ::buffa::__private::element_footprint(&elem),
1593                )?;
1594                ::buffa::Message::merge_length_delimited(&mut elem, buf, ctx)?;
1595                self.service.push(elem);
1596            }
1597            _ => {
1598                self.__buffa_unknown_fields
1599                    .push(::buffa::encoding::decode_unknown_field(tag, buf, ctx)?);
1600            }
1601        }
1602        ::core::result::Result::Ok(())
1603    }
1604    fn clear(&mut self) {
1605        self.service.clear();
1606        self.__buffa_unknown_fields.clear();
1607    }
1608}
1609impl ::buffa::ExtensionSet for ListServiceResponse {
1610    const PROTO_FQN: &'static str = "grpc.reflection.v1alpha.ListServiceResponse";
1611    fn unknown_fields(&self) -> &::buffa::UnknownFields {
1612        &self.__buffa_unknown_fields
1613    }
1614    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
1615        &mut self.__buffa_unknown_fields
1616    }
1617}
1618impl ::buffa::json_helpers::ProtoElemJson for ListServiceResponse {
1619    fn serialize_proto_json<S: ::serde::Serializer>(
1620        v: &Self,
1621        s: S,
1622    ) -> ::core::result::Result<S::Ok, S::Error> {
1623        ::serde::Serialize::serialize(v, s)
1624    }
1625    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
1626        d: D,
1627    ) -> ::core::result::Result<Self, D::Error> {
1628        <Self as ::serde::Deserialize>::deserialize(d)
1629    }
1630}
1631#[doc(hidden)]
1632pub const __LIST_SERVICE_RESPONSE_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
1633    type_url: "type.googleapis.com/grpc.reflection.v1alpha.ListServiceResponse",
1634    to_json: ::buffa::type_registry::any_to_json::<ListServiceResponse>,
1635    from_json: ::buffa::type_registry::any_from_json::<ListServiceResponse>,
1636    is_wkt: false,
1637};
1638/// The information of a single service used by ListServiceResponse to answer
1639/// list_services request.
1640#[derive(Clone, PartialEq, Default)]
1641#[derive(::serde::Serialize, ::serde::Deserialize)]
1642#[serde(default)]
1643pub struct ServiceResponse {
1644    /// Full name of a registered service, including its package name. The format
1645    /// is \<package\>.\<service\>
1646    ///
1647    /// Field 1: `name`
1648    #[serde(
1649        rename = "name",
1650        with = "::buffa::json_helpers::proto_string",
1651        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
1652    )]
1653    pub name: ::buffa::alloc::string::String,
1654    #[serde(skip)]
1655    #[doc(hidden)]
1656    pub __buffa_unknown_fields: ::buffa::UnknownFields,
1657}
1658impl ::core::fmt::Debug for ServiceResponse {
1659    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1660        f.debug_struct("ServiceResponse").field("name", &self.name).finish()
1661    }
1662}
1663impl ServiceResponse {
1664    /// Protobuf type URL for this message, for use with `Any::pack` and
1665    /// `Any::unpack_if`.
1666    ///
1667    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
1668    pub const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.ServiceResponse";
1669}
1670::buffa::impl_default_instance!(ServiceResponse);
1671impl ::buffa::MessageName for ServiceResponse {
1672    const PACKAGE: &'static str = "grpc.reflection.v1alpha";
1673    const NAME: &'static str = "ServiceResponse";
1674    const FULL_NAME: &'static str = "grpc.reflection.v1alpha.ServiceResponse";
1675    const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.ServiceResponse";
1676}
1677impl ::buffa::Message for ServiceResponse {
1678    /// Returns the total encoded size in bytes.
1679    ///
1680    /// Accumulates in `u64` (which cannot overflow for in-memory
1681    /// data) and saturates to `u32` at return, so a message whose
1682    /// encoded size exceeds the 2 GiB protobuf limit yields a value
1683    /// above [`::buffa::MAX_MESSAGE_BYTES`] that the encode entry
1684    /// points reject, never a silently wrapped size.
1685    #[allow(clippy::let_and_return)]
1686    fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
1687        #[allow(unused_imports)]
1688        use ::buffa::Enumeration as _;
1689        let mut size = 0u64;
1690        if !self.name.is_empty() {
1691            size += 1u64 + ::buffa::types::string_encoded_len(&self.name) as u64;
1692        }
1693        size += self.__buffa_unknown_fields.encoded_len() as u64;
1694        ::buffa::saturate_size(size)
1695    }
1696    fn write_to(
1697        &self,
1698        _cache: &mut ::buffa::SizeCache,
1699        buf: &mut impl ::buffa::EncodeSink,
1700    ) {
1701        #[allow(unused_imports)]
1702        use ::buffa::Enumeration as _;
1703        if !self.name.is_empty() {
1704            ::buffa::types::put_string_field(1u32, &self.name, buf);
1705        }
1706        self.__buffa_unknown_fields.write_to(buf);
1707    }
1708    fn merge_field(
1709        &mut self,
1710        tag: ::buffa::encoding::Tag,
1711        buf: &mut impl ::buffa::bytes::Buf,
1712        ctx: ::buffa::DecodeContext<'_>,
1713    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
1714        #[allow(unused_imports)]
1715        use ::buffa::bytes::Buf as _;
1716        #[allow(unused_imports)]
1717        use ::buffa::Enumeration as _;
1718        match tag.field_number() {
1719            1u32 => {
1720                ::buffa::encoding::check_wire_type(
1721                    tag,
1722                    ::buffa::encoding::WireType::LengthDelimited,
1723                )?;
1724                ::buffa::types::merge_string(&mut self.name, buf)?;
1725            }
1726            _ => {
1727                self.__buffa_unknown_fields
1728                    .push(::buffa::encoding::decode_unknown_field(tag, buf, ctx)?);
1729            }
1730        }
1731        ::core::result::Result::Ok(())
1732    }
1733    fn clear(&mut self) {
1734        self.name.clear();
1735        self.__buffa_unknown_fields.clear();
1736    }
1737}
1738impl ::buffa::ExtensionSet for ServiceResponse {
1739    const PROTO_FQN: &'static str = "grpc.reflection.v1alpha.ServiceResponse";
1740    fn unknown_fields(&self) -> &::buffa::UnknownFields {
1741        &self.__buffa_unknown_fields
1742    }
1743    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
1744        &mut self.__buffa_unknown_fields
1745    }
1746}
1747impl ::buffa::json_helpers::ProtoElemJson for ServiceResponse {
1748    fn serialize_proto_json<S: ::serde::Serializer>(
1749        v: &Self,
1750        s: S,
1751    ) -> ::core::result::Result<S::Ok, S::Error> {
1752        ::serde::Serialize::serialize(v, s)
1753    }
1754    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
1755        d: D,
1756    ) -> ::core::result::Result<Self, D::Error> {
1757        <Self as ::serde::Deserialize>::deserialize(d)
1758    }
1759}
1760#[doc(hidden)]
1761pub const __SERVICE_RESPONSE_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
1762    type_url: "type.googleapis.com/grpc.reflection.v1alpha.ServiceResponse",
1763    to_json: ::buffa::type_registry::any_to_json::<ServiceResponse>,
1764    from_json: ::buffa::type_registry::any_from_json::<ServiceResponse>,
1765    is_wkt: false,
1766};
1767/// The error code and error message sent by the server when an error occurs.
1768#[derive(Clone, PartialEq, Default)]
1769#[derive(::serde::Serialize, ::serde::Deserialize)]
1770#[serde(default)]
1771pub struct ErrorResponse {
1772    /// This field uses the error codes defined in grpc::StatusCode.
1773    ///
1774    /// Field 1: `error_code`
1775    #[serde(
1776        rename = "errorCode",
1777        alias = "error_code",
1778        with = "::buffa::json_helpers::int32",
1779        skip_serializing_if = "::buffa::json_helpers::skip_if::is_zero_i32"
1780    )]
1781    pub error_code: i32,
1782    /// Field 2: `error_message`
1783    #[serde(
1784        rename = "errorMessage",
1785        alias = "error_message",
1786        with = "::buffa::json_helpers::proto_string",
1787        skip_serializing_if = "::buffa::json_helpers::skip_if::is_empty_str"
1788    )]
1789    pub error_message: ::buffa::alloc::string::String,
1790    #[serde(skip)]
1791    #[doc(hidden)]
1792    pub __buffa_unknown_fields: ::buffa::UnknownFields,
1793}
1794impl ::core::fmt::Debug for ErrorResponse {
1795    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1796        f.debug_struct("ErrorResponse")
1797            .field("error_code", &self.error_code)
1798            .field("error_message", &self.error_message)
1799            .finish()
1800    }
1801}
1802impl ErrorResponse {
1803    /// Protobuf type URL for this message, for use with `Any::pack` and
1804    /// `Any::unpack_if`.
1805    ///
1806    /// Format: `type.googleapis.com/<fully.qualified.TypeName>`
1807    pub const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.ErrorResponse";
1808}
1809::buffa::impl_default_instance!(ErrorResponse);
1810impl ::buffa::MessageName for ErrorResponse {
1811    const PACKAGE: &'static str = "grpc.reflection.v1alpha";
1812    const NAME: &'static str = "ErrorResponse";
1813    const FULL_NAME: &'static str = "grpc.reflection.v1alpha.ErrorResponse";
1814    const TYPE_URL: &'static str = "type.googleapis.com/grpc.reflection.v1alpha.ErrorResponse";
1815}
1816impl ::buffa::Message for ErrorResponse {
1817    /// Returns the total encoded size in bytes.
1818    ///
1819    /// Accumulates in `u64` (which cannot overflow for in-memory
1820    /// data) and saturates to `u32` at return, so a message whose
1821    /// encoded size exceeds the 2 GiB protobuf limit yields a value
1822    /// above [`::buffa::MAX_MESSAGE_BYTES`] that the encode entry
1823    /// points reject, never a silently wrapped size.
1824    #[allow(clippy::let_and_return)]
1825    fn compute_size(&self, _cache: &mut ::buffa::SizeCache) -> u32 {
1826        #[allow(unused_imports)]
1827        use ::buffa::Enumeration as _;
1828        let mut size = 0u64;
1829        if self.error_code != 0i32 {
1830            size += 1u64 + ::buffa::types::int32_encoded_len(self.error_code) as u64;
1831        }
1832        if !self.error_message.is_empty() {
1833            size
1834                += 1u64 + ::buffa::types::string_encoded_len(&self.error_message) as u64;
1835        }
1836        size += self.__buffa_unknown_fields.encoded_len() as u64;
1837        ::buffa::saturate_size(size)
1838    }
1839    fn write_to(
1840        &self,
1841        _cache: &mut ::buffa::SizeCache,
1842        buf: &mut impl ::buffa::EncodeSink,
1843    ) {
1844        #[allow(unused_imports)]
1845        use ::buffa::Enumeration as _;
1846        if self.error_code != 0i32 {
1847            ::buffa::types::put_int32_field(1u32, self.error_code, buf);
1848        }
1849        if !self.error_message.is_empty() {
1850            ::buffa::types::put_string_field(2u32, &self.error_message, buf);
1851        }
1852        self.__buffa_unknown_fields.write_to(buf);
1853    }
1854    fn merge_field(
1855        &mut self,
1856        tag: ::buffa::encoding::Tag,
1857        buf: &mut impl ::buffa::bytes::Buf,
1858        ctx: ::buffa::DecodeContext<'_>,
1859    ) -> ::core::result::Result<(), ::buffa::DecodeError> {
1860        #[allow(unused_imports)]
1861        use ::buffa::bytes::Buf as _;
1862        #[allow(unused_imports)]
1863        use ::buffa::Enumeration as _;
1864        match tag.field_number() {
1865            1u32 => {
1866                ::buffa::encoding::check_wire_type(
1867                    tag,
1868                    ::buffa::encoding::WireType::Varint,
1869                )?;
1870                self.error_code = ::buffa::types::decode_int32(buf)?;
1871            }
1872            2u32 => {
1873                ::buffa::encoding::check_wire_type(
1874                    tag,
1875                    ::buffa::encoding::WireType::LengthDelimited,
1876                )?;
1877                ::buffa::types::merge_string(&mut self.error_message, buf)?;
1878            }
1879            _ => {
1880                self.__buffa_unknown_fields
1881                    .push(::buffa::encoding::decode_unknown_field(tag, buf, ctx)?);
1882            }
1883        }
1884        ::core::result::Result::Ok(())
1885    }
1886    fn clear(&mut self) {
1887        self.error_code = 0i32;
1888        self.error_message.clear();
1889        self.__buffa_unknown_fields.clear();
1890    }
1891}
1892impl ::buffa::ExtensionSet for ErrorResponse {
1893    const PROTO_FQN: &'static str = "grpc.reflection.v1alpha.ErrorResponse";
1894    fn unknown_fields(&self) -> &::buffa::UnknownFields {
1895        &self.__buffa_unknown_fields
1896    }
1897    fn unknown_fields_mut(&mut self) -> &mut ::buffa::UnknownFields {
1898        &mut self.__buffa_unknown_fields
1899    }
1900}
1901impl ::buffa::json_helpers::ProtoElemJson for ErrorResponse {
1902    fn serialize_proto_json<S: ::serde::Serializer>(
1903        v: &Self,
1904        s: S,
1905    ) -> ::core::result::Result<S::Ok, S::Error> {
1906        ::serde::Serialize::serialize(v, s)
1907    }
1908    fn deserialize_proto_json<'de, D: ::serde::Deserializer<'de>>(
1909        d: D,
1910    ) -> ::core::result::Result<Self, D::Error> {
1911        <Self as ::serde::Deserialize>::deserialize(d)
1912    }
1913}
1914#[doc(hidden)]
1915pub const __ERROR_RESPONSE_JSON_ANY: ::buffa::type_registry::JsonAnyEntry = ::buffa::type_registry::JsonAnyEntry {
1916    type_url: "type.googleapis.com/grpc.reflection.v1alpha.ErrorResponse",
1917    to_json: ::buffa::type_registry::any_to_json::<ErrorResponse>,
1918    from_json: ::buffa::type_registry::any_from_json::<ErrorResponse>,
1919    is_wkt: false,
1920};