Skip to main content

sqlc_gen_sqlx/
plugin.codegen.rs

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