tensorflow_serving_client/
attr_value.rs

1// This file is generated by rust-protobuf 2.14.0. Do not edit
2// @generated
3
4// https://github.com/rust-lang/rust-clippy/issues/702
5#![allow(unknown_lints)]
6#![allow(clippy::all)]
7
8#![cfg_attr(rustfmt, rustfmt_skip)]
9
10#![allow(box_pointers)]
11#![allow(dead_code)]
12#![allow(missing_docs)]
13#![allow(non_camel_case_types)]
14#![allow(non_snake_case)]
15#![allow(non_upper_case_globals)]
16#![allow(trivial_casts)]
17#![allow(unsafe_code)]
18#![allow(unused_imports)]
19#![allow(unused_results)]
20//! Generated file from `tensorflow/core/framework/attr_value.proto`
21
22use protobuf::Message as Message_imported_for_functions;
23use protobuf::ProtobufEnum as ProtobufEnum_imported_for_functions;
24
25/// Generated files are compatible only with the same version
26/// of protobuf runtime.
27// const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_14_0;
28
29#[derive(PartialEq,Clone,Default)]
30pub struct AttrValue {
31    // message oneof groups
32    pub value: ::std::option::Option<AttrValue_oneof_value>,
33    // special fields
34    pub unknown_fields: ::protobuf::UnknownFields,
35    pub cached_size: ::protobuf::CachedSize,
36}
37
38impl<'a> ::std::default::Default for &'a AttrValue {
39    fn default() -> &'a AttrValue {
40        <AttrValue as ::protobuf::Message>::default_instance()
41    }
42}
43
44#[derive(Clone,PartialEq,Debug)]
45pub enum AttrValue_oneof_value {
46    s(::std::vec::Vec<u8>),
47    i(i64),
48    f(f32),
49    b(bool),
50    field_type(super::types::DataType),
51    shape(super::tensor_shape::TensorShapeProto),
52    tensor(super::tensor::TensorProto),
53    list(AttrValue_ListValue),
54    func(NameAttrList),
55    placeholder(::std::string::String),
56}
57
58impl AttrValue {
59    pub fn new() -> AttrValue {
60        ::std::default::Default::default()
61    }
62
63    // bytes s = 2;
64
65
66    pub fn get_s(&self) -> &[u8] {
67        match self.value {
68            ::std::option::Option::Some(AttrValue_oneof_value::s(ref v)) => v,
69            _ => &[],
70        }
71    }
72    pub fn clear_s(&mut self) {
73        self.value = ::std::option::Option::None;
74    }
75
76    pub fn has_s(&self) -> bool {
77        match self.value {
78            ::std::option::Option::Some(AttrValue_oneof_value::s(..)) => true,
79            _ => false,
80        }
81    }
82
83    // Param is passed by value, moved
84    pub fn set_s(&mut self, v: ::std::vec::Vec<u8>) {
85        self.value = ::std::option::Option::Some(AttrValue_oneof_value::s(v))
86    }
87
88    // Mutable pointer to the field.
89    pub fn mut_s(&mut self) -> &mut ::std::vec::Vec<u8> {
90        if let ::std::option::Option::Some(AttrValue_oneof_value::s(_)) = self.value {
91        } else {
92            self.value = ::std::option::Option::Some(AttrValue_oneof_value::s(::std::vec::Vec::new()));
93        }
94        match self.value {
95            ::std::option::Option::Some(AttrValue_oneof_value::s(ref mut v)) => v,
96            _ => panic!(),
97        }
98    }
99
100    // Take field
101    pub fn take_s(&mut self) -> ::std::vec::Vec<u8> {
102        if self.has_s() {
103            match self.value.take() {
104                ::std::option::Option::Some(AttrValue_oneof_value::s(v)) => v,
105                _ => panic!(),
106            }
107        } else {
108            ::std::vec::Vec::new()
109        }
110    }
111
112    // int64 i = 3;
113
114
115    pub fn get_i(&self) -> i64 {
116        match self.value {
117            ::std::option::Option::Some(AttrValue_oneof_value::i(v)) => v,
118            _ => 0,
119        }
120    }
121    pub fn clear_i(&mut self) {
122        self.value = ::std::option::Option::None;
123    }
124
125    pub fn has_i(&self) -> bool {
126        match self.value {
127            ::std::option::Option::Some(AttrValue_oneof_value::i(..)) => true,
128            _ => false,
129        }
130    }
131
132    // Param is passed by value, moved
133    pub fn set_i(&mut self, v: i64) {
134        self.value = ::std::option::Option::Some(AttrValue_oneof_value::i(v))
135    }
136
137    // float f = 4;
138
139
140    pub fn get_f(&self) -> f32 {
141        match self.value {
142            ::std::option::Option::Some(AttrValue_oneof_value::f(v)) => v,
143            _ => 0.,
144        }
145    }
146    pub fn clear_f(&mut self) {
147        self.value = ::std::option::Option::None;
148    }
149
150    pub fn has_f(&self) -> bool {
151        match self.value {
152            ::std::option::Option::Some(AttrValue_oneof_value::f(..)) => true,
153            _ => false,
154        }
155    }
156
157    // Param is passed by value, moved
158    pub fn set_f(&mut self, v: f32) {
159        self.value = ::std::option::Option::Some(AttrValue_oneof_value::f(v))
160    }
161
162    // bool b = 5;
163
164
165    pub fn get_b(&self) -> bool {
166        match self.value {
167            ::std::option::Option::Some(AttrValue_oneof_value::b(v)) => v,
168            _ => false,
169        }
170    }
171    pub fn clear_b(&mut self) {
172        self.value = ::std::option::Option::None;
173    }
174
175    pub fn has_b(&self) -> bool {
176        match self.value {
177            ::std::option::Option::Some(AttrValue_oneof_value::b(..)) => true,
178            _ => false,
179        }
180    }
181
182    // Param is passed by value, moved
183    pub fn set_b(&mut self, v: bool) {
184        self.value = ::std::option::Option::Some(AttrValue_oneof_value::b(v))
185    }
186
187    // .tensorflow.DataType type = 6;
188
189
190    pub fn get_field_type(&self) -> super::types::DataType {
191        match self.value {
192            ::std::option::Option::Some(AttrValue_oneof_value::field_type(v)) => v,
193            _ => super::types::DataType::DT_INVALID,
194        }
195    }
196    pub fn clear_field_type(&mut self) {
197        self.value = ::std::option::Option::None;
198    }
199
200    pub fn has_field_type(&self) -> bool {
201        match self.value {
202            ::std::option::Option::Some(AttrValue_oneof_value::field_type(..)) => true,
203            _ => false,
204        }
205    }
206
207    // Param is passed by value, moved
208    pub fn set_field_type(&mut self, v: super::types::DataType) {
209        self.value = ::std::option::Option::Some(AttrValue_oneof_value::field_type(v))
210    }
211
212    // .tensorflow.TensorShapeProto shape = 7;
213
214
215    pub fn get_shape(&self) -> &super::tensor_shape::TensorShapeProto {
216        match self.value {
217            ::std::option::Option::Some(AttrValue_oneof_value::shape(ref v)) => v,
218            _ => super::tensor_shape::TensorShapeProto::default_instance(),
219        }
220    }
221    pub fn clear_shape(&mut self) {
222        self.value = ::std::option::Option::None;
223    }
224
225    pub fn has_shape(&self) -> bool {
226        match self.value {
227            ::std::option::Option::Some(AttrValue_oneof_value::shape(..)) => true,
228            _ => false,
229        }
230    }
231
232    // Param is passed by value, moved
233    pub fn set_shape(&mut self, v: super::tensor_shape::TensorShapeProto) {
234        self.value = ::std::option::Option::Some(AttrValue_oneof_value::shape(v))
235    }
236
237    // Mutable pointer to the field.
238    pub fn mut_shape(&mut self) -> &mut super::tensor_shape::TensorShapeProto {
239        if let ::std::option::Option::Some(AttrValue_oneof_value::shape(_)) = self.value {
240        } else {
241            self.value = ::std::option::Option::Some(AttrValue_oneof_value::shape(super::tensor_shape::TensorShapeProto::new()));
242        }
243        match self.value {
244            ::std::option::Option::Some(AttrValue_oneof_value::shape(ref mut v)) => v,
245            _ => panic!(),
246        }
247    }
248
249    // Take field
250    pub fn take_shape(&mut self) -> super::tensor_shape::TensorShapeProto {
251        if self.has_shape() {
252            match self.value.take() {
253                ::std::option::Option::Some(AttrValue_oneof_value::shape(v)) => v,
254                _ => panic!(),
255            }
256        } else {
257            super::tensor_shape::TensorShapeProto::new()
258        }
259    }
260
261    // .tensorflow.TensorProto tensor = 8;
262
263
264    pub fn get_tensor(&self) -> &super::tensor::TensorProto {
265        match self.value {
266            ::std::option::Option::Some(AttrValue_oneof_value::tensor(ref v)) => v,
267            _ => super::tensor::TensorProto::default_instance(),
268        }
269    }
270    pub fn clear_tensor(&mut self) {
271        self.value = ::std::option::Option::None;
272    }
273
274    pub fn has_tensor(&self) -> bool {
275        match self.value {
276            ::std::option::Option::Some(AttrValue_oneof_value::tensor(..)) => true,
277            _ => false,
278        }
279    }
280
281    // Param is passed by value, moved
282    pub fn set_tensor(&mut self, v: super::tensor::TensorProto) {
283        self.value = ::std::option::Option::Some(AttrValue_oneof_value::tensor(v))
284    }
285
286    // Mutable pointer to the field.
287    pub fn mut_tensor(&mut self) -> &mut super::tensor::TensorProto {
288        if let ::std::option::Option::Some(AttrValue_oneof_value::tensor(_)) = self.value {
289        } else {
290            self.value = ::std::option::Option::Some(AttrValue_oneof_value::tensor(super::tensor::TensorProto::new()));
291        }
292        match self.value {
293            ::std::option::Option::Some(AttrValue_oneof_value::tensor(ref mut v)) => v,
294            _ => panic!(),
295        }
296    }
297
298    // Take field
299    pub fn take_tensor(&mut self) -> super::tensor::TensorProto {
300        if self.has_tensor() {
301            match self.value.take() {
302                ::std::option::Option::Some(AttrValue_oneof_value::tensor(v)) => v,
303                _ => panic!(),
304            }
305        } else {
306            super::tensor::TensorProto::new()
307        }
308    }
309
310    // .tensorflow.AttrValue.ListValue list = 1;
311
312
313    pub fn get_list(&self) -> &AttrValue_ListValue {
314        match self.value {
315            ::std::option::Option::Some(AttrValue_oneof_value::list(ref v)) => v,
316            _ => AttrValue_ListValue::default_instance(),
317        }
318    }
319    pub fn clear_list(&mut self) {
320        self.value = ::std::option::Option::None;
321    }
322
323    pub fn has_list(&self) -> bool {
324        match self.value {
325            ::std::option::Option::Some(AttrValue_oneof_value::list(..)) => true,
326            _ => false,
327        }
328    }
329
330    // Param is passed by value, moved
331    pub fn set_list(&mut self, v: AttrValue_ListValue) {
332        self.value = ::std::option::Option::Some(AttrValue_oneof_value::list(v))
333    }
334
335    // Mutable pointer to the field.
336    pub fn mut_list(&mut self) -> &mut AttrValue_ListValue {
337        if let ::std::option::Option::Some(AttrValue_oneof_value::list(_)) = self.value {
338        } else {
339            self.value = ::std::option::Option::Some(AttrValue_oneof_value::list(AttrValue_ListValue::new()));
340        }
341        match self.value {
342            ::std::option::Option::Some(AttrValue_oneof_value::list(ref mut v)) => v,
343            _ => panic!(),
344        }
345    }
346
347    // Take field
348    pub fn take_list(&mut self) -> AttrValue_ListValue {
349        if self.has_list() {
350            match self.value.take() {
351                ::std::option::Option::Some(AttrValue_oneof_value::list(v)) => v,
352                _ => panic!(),
353            }
354        } else {
355            AttrValue_ListValue::new()
356        }
357    }
358
359    // .tensorflow.NameAttrList func = 10;
360
361
362    pub fn get_func(&self) -> &NameAttrList {
363        match self.value {
364            ::std::option::Option::Some(AttrValue_oneof_value::func(ref v)) => v,
365            _ => NameAttrList::default_instance(),
366        }
367    }
368    pub fn clear_func(&mut self) {
369        self.value = ::std::option::Option::None;
370    }
371
372    pub fn has_func(&self) -> bool {
373        match self.value {
374            ::std::option::Option::Some(AttrValue_oneof_value::func(..)) => true,
375            _ => false,
376        }
377    }
378
379    // Param is passed by value, moved
380    pub fn set_func(&mut self, v: NameAttrList) {
381        self.value = ::std::option::Option::Some(AttrValue_oneof_value::func(v))
382    }
383
384    // Mutable pointer to the field.
385    pub fn mut_func(&mut self) -> &mut NameAttrList {
386        if let ::std::option::Option::Some(AttrValue_oneof_value::func(_)) = self.value {
387        } else {
388            self.value = ::std::option::Option::Some(AttrValue_oneof_value::func(NameAttrList::new()));
389        }
390        match self.value {
391            ::std::option::Option::Some(AttrValue_oneof_value::func(ref mut v)) => v,
392            _ => panic!(),
393        }
394    }
395
396    // Take field
397    pub fn take_func(&mut self) -> NameAttrList {
398        if self.has_func() {
399            match self.value.take() {
400                ::std::option::Option::Some(AttrValue_oneof_value::func(v)) => v,
401                _ => panic!(),
402            }
403        } else {
404            NameAttrList::new()
405        }
406    }
407
408    // string placeholder = 9;
409
410
411    pub fn get_placeholder(&self) -> &str {
412        match self.value {
413            ::std::option::Option::Some(AttrValue_oneof_value::placeholder(ref v)) => v,
414            _ => "",
415        }
416    }
417    pub fn clear_placeholder(&mut self) {
418        self.value = ::std::option::Option::None;
419    }
420
421    pub fn has_placeholder(&self) -> bool {
422        match self.value {
423            ::std::option::Option::Some(AttrValue_oneof_value::placeholder(..)) => true,
424            _ => false,
425        }
426    }
427
428    // Param is passed by value, moved
429    pub fn set_placeholder(&mut self, v: ::std::string::String) {
430        self.value = ::std::option::Option::Some(AttrValue_oneof_value::placeholder(v))
431    }
432
433    // Mutable pointer to the field.
434    pub fn mut_placeholder(&mut self) -> &mut ::std::string::String {
435        if let ::std::option::Option::Some(AttrValue_oneof_value::placeholder(_)) = self.value {
436        } else {
437            self.value = ::std::option::Option::Some(AttrValue_oneof_value::placeholder(::std::string::String::new()));
438        }
439        match self.value {
440            ::std::option::Option::Some(AttrValue_oneof_value::placeholder(ref mut v)) => v,
441            _ => panic!(),
442        }
443    }
444
445    // Take field
446    pub fn take_placeholder(&mut self) -> ::std::string::String {
447        if self.has_placeholder() {
448            match self.value.take() {
449                ::std::option::Option::Some(AttrValue_oneof_value::placeholder(v)) => v,
450                _ => panic!(),
451            }
452        } else {
453            ::std::string::String::new()
454        }
455    }
456}
457
458impl ::protobuf::Message for AttrValue {
459    fn is_initialized(&self) -> bool {
460        if let Some(AttrValue_oneof_value::shape(ref v)) = self.value {
461            if !v.is_initialized() {
462                return false;
463            }
464        }
465        if let Some(AttrValue_oneof_value::tensor(ref v)) = self.value {
466            if !v.is_initialized() {
467                return false;
468            }
469        }
470        if let Some(AttrValue_oneof_value::list(ref v)) = self.value {
471            if !v.is_initialized() {
472                return false;
473            }
474        }
475        if let Some(AttrValue_oneof_value::func(ref v)) = self.value {
476            if !v.is_initialized() {
477                return false;
478            }
479        }
480        true
481    }
482
483    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
484        while !is.eof()? {
485            let (field_number, wire_type) = is.read_tag_unpack()?;
486            match field_number {
487                2 => {
488                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
489                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
490                    }
491                    self.value = ::std::option::Option::Some(AttrValue_oneof_value::s(is.read_bytes()?));
492                },
493                3 => {
494                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
495                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
496                    }
497                    self.value = ::std::option::Option::Some(AttrValue_oneof_value::i(is.read_int64()?));
498                },
499                4 => {
500                    if wire_type != ::protobuf::wire_format::WireTypeFixed32 {
501                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
502                    }
503                    self.value = ::std::option::Option::Some(AttrValue_oneof_value::f(is.read_float()?));
504                },
505                5 => {
506                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
507                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
508                    }
509                    self.value = ::std::option::Option::Some(AttrValue_oneof_value::b(is.read_bool()?));
510                },
511                6 => {
512                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
513                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
514                    }
515                    self.value = ::std::option::Option::Some(AttrValue_oneof_value::field_type(is.read_enum()?));
516                },
517                7 => {
518                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
519                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
520                    }
521                    self.value = ::std::option::Option::Some(AttrValue_oneof_value::shape(is.read_message()?));
522                },
523                8 => {
524                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
525                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
526                    }
527                    self.value = ::std::option::Option::Some(AttrValue_oneof_value::tensor(is.read_message()?));
528                },
529                1 => {
530                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
531                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
532                    }
533                    self.value = ::std::option::Option::Some(AttrValue_oneof_value::list(is.read_message()?));
534                },
535                10 => {
536                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
537                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
538                    }
539                    self.value = ::std::option::Option::Some(AttrValue_oneof_value::func(is.read_message()?));
540                },
541                9 => {
542                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
543                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
544                    }
545                    self.value = ::std::option::Option::Some(AttrValue_oneof_value::placeholder(is.read_string()?));
546                },
547                _ => {
548                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
549                },
550            };
551        }
552        ::std::result::Result::Ok(())
553    }
554
555    // Compute sizes of nested messages
556    #[allow(unused_variables)]
557    fn compute_size(&self) -> u32 {
558        let mut my_size = 0;
559        if let ::std::option::Option::Some(ref v) = self.value {
560            match v {
561                &AttrValue_oneof_value::s(ref v) => {
562                    my_size += ::protobuf::rt::bytes_size(2, &v);
563                },
564                &AttrValue_oneof_value::i(v) => {
565                    my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
566                },
567                &AttrValue_oneof_value::f(v) => {
568                    my_size += 5;
569                },
570                &AttrValue_oneof_value::b(v) => {
571                    my_size += 2;
572                },
573                &AttrValue_oneof_value::field_type(v) => {
574                    my_size += ::protobuf::rt::enum_size(6, v);
575                },
576                &AttrValue_oneof_value::shape(ref v) => {
577                    let len = v.compute_size();
578                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
579                },
580                &AttrValue_oneof_value::tensor(ref v) => {
581                    let len = v.compute_size();
582                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
583                },
584                &AttrValue_oneof_value::list(ref v) => {
585                    let len = v.compute_size();
586                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
587                },
588                &AttrValue_oneof_value::func(ref v) => {
589                    let len = v.compute_size();
590                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
591                },
592                &AttrValue_oneof_value::placeholder(ref v) => {
593                    my_size += ::protobuf::rt::string_size(9, &v);
594                },
595            };
596        }
597        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
598        self.cached_size.set(my_size);
599        my_size
600    }
601
602    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
603        if let ::std::option::Option::Some(ref v) = self.value {
604            match v {
605                &AttrValue_oneof_value::s(ref v) => {
606                    os.write_bytes(2, v)?;
607                },
608                &AttrValue_oneof_value::i(v) => {
609                    os.write_int64(3, v)?;
610                },
611                &AttrValue_oneof_value::f(v) => {
612                    os.write_float(4, v)?;
613                },
614                &AttrValue_oneof_value::b(v) => {
615                    os.write_bool(5, v)?;
616                },
617                &AttrValue_oneof_value::field_type(v) => {
618                    os.write_enum(6, v.value())?;
619                },
620                &AttrValue_oneof_value::shape(ref v) => {
621                    os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
622                    os.write_raw_varint32(v.get_cached_size())?;
623                    v.write_to_with_cached_sizes(os)?;
624                },
625                &AttrValue_oneof_value::tensor(ref v) => {
626                    os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
627                    os.write_raw_varint32(v.get_cached_size())?;
628                    v.write_to_with_cached_sizes(os)?;
629                },
630                &AttrValue_oneof_value::list(ref v) => {
631                    os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
632                    os.write_raw_varint32(v.get_cached_size())?;
633                    v.write_to_with_cached_sizes(os)?;
634                },
635                &AttrValue_oneof_value::func(ref v) => {
636                    os.write_tag(10, ::protobuf::wire_format::WireTypeLengthDelimited)?;
637                    os.write_raw_varint32(v.get_cached_size())?;
638                    v.write_to_with_cached_sizes(os)?;
639                },
640                &AttrValue_oneof_value::placeholder(ref v) => {
641                    os.write_string(9, v)?;
642                },
643            };
644        }
645        os.write_unknown_fields(self.get_unknown_fields())?;
646        ::std::result::Result::Ok(())
647    }
648
649    fn get_cached_size(&self) -> u32 {
650        self.cached_size.get()
651    }
652
653    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
654        &self.unknown_fields
655    }
656
657    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
658        &mut self.unknown_fields
659    }
660
661    fn as_any(&self) -> &dyn (::std::any::Any) {
662        self as &dyn (::std::any::Any)
663    }
664    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
665        self as &mut dyn (::std::any::Any)
666    }
667    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
668        self
669    }
670
671    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
672        Self::descriptor_static()
673    }
674
675    fn new() -> AttrValue {
676        AttrValue::new()
677    }
678
679    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
680        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
681        unsafe {
682            descriptor.get(|| {
683                let mut fields = ::std::vec::Vec::new();
684                fields.push(::protobuf::reflect::accessor::make_singular_bytes_accessor::<_>(
685                    "s",
686                    AttrValue::has_s,
687                    AttrValue::get_s,
688                ));
689                fields.push(::protobuf::reflect::accessor::make_singular_i64_accessor::<_>(
690                    "i",
691                    AttrValue::has_i,
692                    AttrValue::get_i,
693                ));
694                fields.push(::protobuf::reflect::accessor::make_singular_f32_accessor::<_>(
695                    "f",
696                    AttrValue::has_f,
697                    AttrValue::get_f,
698                ));
699                fields.push(::protobuf::reflect::accessor::make_singular_bool_accessor::<_>(
700                    "b",
701                    AttrValue::has_b,
702                    AttrValue::get_b,
703                ));
704                fields.push(::protobuf::reflect::accessor::make_singular_enum_accessor::<_, super::types::DataType>(
705                    "type",
706                    AttrValue::has_field_type,
707                    AttrValue::get_field_type,
708                ));
709                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, super::tensor_shape::TensorShapeProto>(
710                    "shape",
711                    AttrValue::has_shape,
712                    AttrValue::get_shape,
713                ));
714                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, super::tensor::TensorProto>(
715                    "tensor",
716                    AttrValue::has_tensor,
717                    AttrValue::get_tensor,
718                ));
719                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, AttrValue_ListValue>(
720                    "list",
721                    AttrValue::has_list,
722                    AttrValue::get_list,
723                ));
724                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, NameAttrList>(
725                    "func",
726                    AttrValue::has_func,
727                    AttrValue::get_func,
728                ));
729                fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
730                    "placeholder",
731                    AttrValue::has_placeholder,
732                    AttrValue::get_placeholder,
733                ));
734                ::protobuf::reflect::MessageDescriptor::new_pb_name::<AttrValue>(
735                    "AttrValue",
736                    fields,
737                    file_descriptor_proto()
738                )
739            })
740        }
741    }
742
743    fn default_instance() -> &'static AttrValue {
744        static mut instance: ::protobuf::lazy::Lazy<AttrValue> = ::protobuf::lazy::Lazy::INIT;
745        unsafe {
746            instance.get(AttrValue::new)
747        }
748    }
749}
750
751impl ::protobuf::Clear for AttrValue {
752    fn clear(&mut self) {
753        self.value = ::std::option::Option::None;
754        self.value = ::std::option::Option::None;
755        self.value = ::std::option::Option::None;
756        self.value = ::std::option::Option::None;
757        self.value = ::std::option::Option::None;
758        self.value = ::std::option::Option::None;
759        self.value = ::std::option::Option::None;
760        self.value = ::std::option::Option::None;
761        self.value = ::std::option::Option::None;
762        self.value = ::std::option::Option::None;
763        self.unknown_fields.clear();
764    }
765}
766
767impl ::std::fmt::Debug for AttrValue {
768    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
769        ::protobuf::text_format::fmt(self, f)
770    }
771}
772
773impl ::protobuf::reflect::ProtobufValue for AttrValue {
774    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
775        ::protobuf::reflect::ReflectValueRef::Message(self)
776    }
777}
778
779#[derive(PartialEq,Clone,Default)]
780pub struct AttrValue_ListValue {
781    // message fields
782    pub s: ::protobuf::RepeatedField<::std::vec::Vec<u8>>,
783    pub i: ::std::vec::Vec<i64>,
784    pub f: ::std::vec::Vec<f32>,
785    pub b: ::std::vec::Vec<bool>,
786    pub field_type: ::std::vec::Vec<super::types::DataType>,
787    pub shape: ::protobuf::RepeatedField<super::tensor_shape::TensorShapeProto>,
788    pub tensor: ::protobuf::RepeatedField<super::tensor::TensorProto>,
789    pub func: ::protobuf::RepeatedField<NameAttrList>,
790    // special fields
791    pub unknown_fields: ::protobuf::UnknownFields,
792    pub cached_size: ::protobuf::CachedSize,
793}
794
795impl<'a> ::std::default::Default for &'a AttrValue_ListValue {
796    fn default() -> &'a AttrValue_ListValue {
797        <AttrValue_ListValue as ::protobuf::Message>::default_instance()
798    }
799}
800
801impl AttrValue_ListValue {
802    pub fn new() -> AttrValue_ListValue {
803        ::std::default::Default::default()
804    }
805
806    // repeated bytes s = 2;
807
808
809    pub fn get_s(&self) -> &[::std::vec::Vec<u8>] {
810        &self.s
811    }
812    pub fn clear_s(&mut self) {
813        self.s.clear();
814    }
815
816    // Param is passed by value, moved
817    pub fn set_s(&mut self, v: ::protobuf::RepeatedField<::std::vec::Vec<u8>>) {
818        self.s = v;
819    }
820
821    // Mutable pointer to the field.
822    pub fn mut_s(&mut self) -> &mut ::protobuf::RepeatedField<::std::vec::Vec<u8>> {
823        &mut self.s
824    }
825
826    // Take field
827    pub fn take_s(&mut self) -> ::protobuf::RepeatedField<::std::vec::Vec<u8>> {
828        ::std::mem::replace(&mut self.s, ::protobuf::RepeatedField::new())
829    }
830
831    // repeated int64 i = 3;
832
833
834    pub fn get_i(&self) -> &[i64] {
835        &self.i
836    }
837    pub fn clear_i(&mut self) {
838        self.i.clear();
839    }
840
841    // Param is passed by value, moved
842    pub fn set_i(&mut self, v: ::std::vec::Vec<i64>) {
843        self.i = v;
844    }
845
846    // Mutable pointer to the field.
847    pub fn mut_i(&mut self) -> &mut ::std::vec::Vec<i64> {
848        &mut self.i
849    }
850
851    // Take field
852    pub fn take_i(&mut self) -> ::std::vec::Vec<i64> {
853        ::std::mem::replace(&mut self.i, ::std::vec::Vec::new())
854    }
855
856    // repeated float f = 4;
857
858
859    pub fn get_f(&self) -> &[f32] {
860        &self.f
861    }
862    pub fn clear_f(&mut self) {
863        self.f.clear();
864    }
865
866    // Param is passed by value, moved
867    pub fn set_f(&mut self, v: ::std::vec::Vec<f32>) {
868        self.f = v;
869    }
870
871    // Mutable pointer to the field.
872    pub fn mut_f(&mut self) -> &mut ::std::vec::Vec<f32> {
873        &mut self.f
874    }
875
876    // Take field
877    pub fn take_f(&mut self) -> ::std::vec::Vec<f32> {
878        ::std::mem::replace(&mut self.f, ::std::vec::Vec::new())
879    }
880
881    // repeated bool b = 5;
882
883
884    pub fn get_b(&self) -> &[bool] {
885        &self.b
886    }
887    pub fn clear_b(&mut self) {
888        self.b.clear();
889    }
890
891    // Param is passed by value, moved
892    pub fn set_b(&mut self, v: ::std::vec::Vec<bool>) {
893        self.b = v;
894    }
895
896    // Mutable pointer to the field.
897    pub fn mut_b(&mut self) -> &mut ::std::vec::Vec<bool> {
898        &mut self.b
899    }
900
901    // Take field
902    pub fn take_b(&mut self) -> ::std::vec::Vec<bool> {
903        ::std::mem::replace(&mut self.b, ::std::vec::Vec::new())
904    }
905
906    // repeated .tensorflow.DataType type = 6;
907
908
909    pub fn get_field_type(&self) -> &[super::types::DataType] {
910        &self.field_type
911    }
912    pub fn clear_field_type(&mut self) {
913        self.field_type.clear();
914    }
915
916    // Param is passed by value, moved
917    pub fn set_field_type(&mut self, v: ::std::vec::Vec<super::types::DataType>) {
918        self.field_type = v;
919    }
920
921    // Mutable pointer to the field.
922    pub fn mut_field_type(&mut self) -> &mut ::std::vec::Vec<super::types::DataType> {
923        &mut self.field_type
924    }
925
926    // Take field
927    pub fn take_field_type(&mut self) -> ::std::vec::Vec<super::types::DataType> {
928        ::std::mem::replace(&mut self.field_type, ::std::vec::Vec::new())
929    }
930
931    // repeated .tensorflow.TensorShapeProto shape = 7;
932
933
934    pub fn get_shape(&self) -> &[super::tensor_shape::TensorShapeProto] {
935        &self.shape
936    }
937    pub fn clear_shape(&mut self) {
938        self.shape.clear();
939    }
940
941    // Param is passed by value, moved
942    pub fn set_shape(&mut self, v: ::protobuf::RepeatedField<super::tensor_shape::TensorShapeProto>) {
943        self.shape = v;
944    }
945
946    // Mutable pointer to the field.
947    pub fn mut_shape(&mut self) -> &mut ::protobuf::RepeatedField<super::tensor_shape::TensorShapeProto> {
948        &mut self.shape
949    }
950
951    // Take field
952    pub fn take_shape(&mut self) -> ::protobuf::RepeatedField<super::tensor_shape::TensorShapeProto> {
953        ::std::mem::replace(&mut self.shape, ::protobuf::RepeatedField::new())
954    }
955
956    // repeated .tensorflow.TensorProto tensor = 8;
957
958
959    pub fn get_tensor(&self) -> &[super::tensor::TensorProto] {
960        &self.tensor
961    }
962    pub fn clear_tensor(&mut self) {
963        self.tensor.clear();
964    }
965
966    // Param is passed by value, moved
967    pub fn set_tensor(&mut self, v: ::protobuf::RepeatedField<super::tensor::TensorProto>) {
968        self.tensor = v;
969    }
970
971    // Mutable pointer to the field.
972    pub fn mut_tensor(&mut self) -> &mut ::protobuf::RepeatedField<super::tensor::TensorProto> {
973        &mut self.tensor
974    }
975
976    // Take field
977    pub fn take_tensor(&mut self) -> ::protobuf::RepeatedField<super::tensor::TensorProto> {
978        ::std::mem::replace(&mut self.tensor, ::protobuf::RepeatedField::new())
979    }
980
981    // repeated .tensorflow.NameAttrList func = 9;
982
983
984    pub fn get_func(&self) -> &[NameAttrList] {
985        &self.func
986    }
987    pub fn clear_func(&mut self) {
988        self.func.clear();
989    }
990
991    // Param is passed by value, moved
992    pub fn set_func(&mut self, v: ::protobuf::RepeatedField<NameAttrList>) {
993        self.func = v;
994    }
995
996    // Mutable pointer to the field.
997    pub fn mut_func(&mut self) -> &mut ::protobuf::RepeatedField<NameAttrList> {
998        &mut self.func
999    }
1000
1001    // Take field
1002    pub fn take_func(&mut self) -> ::protobuf::RepeatedField<NameAttrList> {
1003        ::std::mem::replace(&mut self.func, ::protobuf::RepeatedField::new())
1004    }
1005}
1006
1007impl ::protobuf::Message for AttrValue_ListValue {
1008    fn is_initialized(&self) -> bool {
1009        for v in &self.shape {
1010            if !v.is_initialized() {
1011                return false;
1012            }
1013        };
1014        for v in &self.tensor {
1015            if !v.is_initialized() {
1016                return false;
1017            }
1018        };
1019        for v in &self.func {
1020            if !v.is_initialized() {
1021                return false;
1022            }
1023        };
1024        true
1025    }
1026
1027    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1028        while !is.eof()? {
1029            let (field_number, wire_type) = is.read_tag_unpack()?;
1030            match field_number {
1031                2 => {
1032                    ::protobuf::rt::read_repeated_bytes_into(wire_type, is, &mut self.s)?;
1033                },
1034                3 => {
1035                    ::protobuf::rt::read_repeated_int64_into(wire_type, is, &mut self.i)?;
1036                },
1037                4 => {
1038                    ::protobuf::rt::read_repeated_float_into(wire_type, is, &mut self.f)?;
1039                },
1040                5 => {
1041                    ::protobuf::rt::read_repeated_bool_into(wire_type, is, &mut self.b)?;
1042                },
1043                6 => {
1044                    ::protobuf::rt::read_repeated_enum_with_unknown_fields_into(wire_type, is, &mut self.field_type, 6, &mut self.unknown_fields)?
1045                },
1046                7 => {
1047                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.shape)?;
1048                },
1049                8 => {
1050                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.tensor)?;
1051                },
1052                9 => {
1053                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.func)?;
1054                },
1055                _ => {
1056                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1057                },
1058            };
1059        }
1060        ::std::result::Result::Ok(())
1061    }
1062
1063    // Compute sizes of nested messages
1064    #[allow(unused_variables)]
1065    fn compute_size(&self) -> u32 {
1066        let mut my_size = 0;
1067        for value in &self.s {
1068            my_size += ::protobuf::rt::bytes_size(2, &value);
1069        };
1070        if !self.i.is_empty() {
1071            my_size += ::protobuf::rt::vec_packed_varint_size(3, &self.i);
1072        }
1073        if !self.f.is_empty() {
1074            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size((self.f.len() * 4) as u32) + (self.f.len() * 4) as u32;
1075        }
1076        if !self.b.is_empty() {
1077            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size((self.b.len() * 1) as u32) + (self.b.len() * 1) as u32;
1078        }
1079        if !self.field_type.is_empty() {
1080            my_size += ::protobuf::rt::vec_packed_enum_size(6, &self.field_type);
1081        }
1082        for value in &self.shape {
1083            let len = value.compute_size();
1084            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1085        };
1086        for value in &self.tensor {
1087            let len = value.compute_size();
1088            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1089        };
1090        for value in &self.func {
1091            let len = value.compute_size();
1092            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1093        };
1094        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1095        self.cached_size.set(my_size);
1096        my_size
1097    }
1098
1099    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1100        for v in &self.s {
1101            os.write_bytes(2, &v)?;
1102        };
1103        if !self.i.is_empty() {
1104            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1105            // TODO: Data size is computed again, it should be cached
1106            os.write_raw_varint32(::protobuf::rt::vec_packed_varint_data_size(&self.i))?;
1107            for v in &self.i {
1108                os.write_int64_no_tag(*v)?;
1109            };
1110        }
1111        if !self.f.is_empty() {
1112            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1113            // TODO: Data size is computed again, it should be cached
1114            os.write_raw_varint32((self.f.len() * 4) as u32)?;
1115            for v in &self.f {
1116                os.write_float_no_tag(*v)?;
1117            };
1118        }
1119        if !self.b.is_empty() {
1120            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1121            // TODO: Data size is computed again, it should be cached
1122            os.write_raw_varint32((self.b.len() * 1) as u32)?;
1123            for v in &self.b {
1124                os.write_bool_no_tag(*v)?;
1125            };
1126        }
1127        if !self.field_type.is_empty() {
1128            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1129            // TODO: Data size is computed again, it should be cached
1130            os.write_raw_varint32(::protobuf::rt::vec_packed_enum_data_size(&self.field_type))?;
1131            for v in &self.field_type {
1132                os.write_enum_no_tag(v.value())?;
1133            };
1134        }
1135        for v in &self.shape {
1136            os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1137            os.write_raw_varint32(v.get_cached_size())?;
1138            v.write_to_with_cached_sizes(os)?;
1139        };
1140        for v in &self.tensor {
1141            os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1142            os.write_raw_varint32(v.get_cached_size())?;
1143            v.write_to_with_cached_sizes(os)?;
1144        };
1145        for v in &self.func {
1146            os.write_tag(9, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1147            os.write_raw_varint32(v.get_cached_size())?;
1148            v.write_to_with_cached_sizes(os)?;
1149        };
1150        os.write_unknown_fields(self.get_unknown_fields())?;
1151        ::std::result::Result::Ok(())
1152    }
1153
1154    fn get_cached_size(&self) -> u32 {
1155        self.cached_size.get()
1156    }
1157
1158    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1159        &self.unknown_fields
1160    }
1161
1162    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1163        &mut self.unknown_fields
1164    }
1165
1166    fn as_any(&self) -> &dyn (::std::any::Any) {
1167        self as &dyn (::std::any::Any)
1168    }
1169    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1170        self as &mut dyn (::std::any::Any)
1171    }
1172    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1173        self
1174    }
1175
1176    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1177        Self::descriptor_static()
1178    }
1179
1180    fn new() -> AttrValue_ListValue {
1181        AttrValue_ListValue::new()
1182    }
1183
1184    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1185        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1186        unsafe {
1187            descriptor.get(|| {
1188                let mut fields = ::std::vec::Vec::new();
1189                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
1190                    "s",
1191                    |m: &AttrValue_ListValue| { &m.s },
1192                    |m: &mut AttrValue_ListValue| { &mut m.s },
1193                ));
1194                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1195                    "i",
1196                    |m: &AttrValue_ListValue| { &m.i },
1197                    |m: &mut AttrValue_ListValue| { &mut m.i },
1198                ));
1199                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeFloat>(
1200                    "f",
1201                    |m: &AttrValue_ListValue| { &m.f },
1202                    |m: &mut AttrValue_ListValue| { &mut m.f },
1203                ));
1204                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
1205                    "b",
1206                    |m: &AttrValue_ListValue| { &m.b },
1207                    |m: &mut AttrValue_ListValue| { &mut m.b },
1208                ));
1209                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::types::DataType>>(
1210                    "type",
1211                    |m: &AttrValue_ListValue| { &m.field_type },
1212                    |m: &mut AttrValue_ListValue| { &mut m.field_type },
1213                ));
1214                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::tensor_shape::TensorShapeProto>>(
1215                    "shape",
1216                    |m: &AttrValue_ListValue| { &m.shape },
1217                    |m: &mut AttrValue_ListValue| { &mut m.shape },
1218                ));
1219                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::tensor::TensorProto>>(
1220                    "tensor",
1221                    |m: &AttrValue_ListValue| { &m.tensor },
1222                    |m: &mut AttrValue_ListValue| { &mut m.tensor },
1223                ));
1224                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<NameAttrList>>(
1225                    "func",
1226                    |m: &AttrValue_ListValue| { &m.func },
1227                    |m: &mut AttrValue_ListValue| { &mut m.func },
1228                ));
1229                ::protobuf::reflect::MessageDescriptor::new_pb_name::<AttrValue_ListValue>(
1230                    "AttrValue.ListValue",
1231                    fields,
1232                    file_descriptor_proto()
1233                )
1234            })
1235        }
1236    }
1237
1238    fn default_instance() -> &'static AttrValue_ListValue {
1239        static mut instance: ::protobuf::lazy::Lazy<AttrValue_ListValue> = ::protobuf::lazy::Lazy::INIT;
1240        unsafe {
1241            instance.get(AttrValue_ListValue::new)
1242        }
1243    }
1244}
1245
1246impl ::protobuf::Clear for AttrValue_ListValue {
1247    fn clear(&mut self) {
1248        self.s.clear();
1249        self.i.clear();
1250        self.f.clear();
1251        self.b.clear();
1252        self.field_type.clear();
1253        self.shape.clear();
1254        self.tensor.clear();
1255        self.func.clear();
1256        self.unknown_fields.clear();
1257    }
1258}
1259
1260impl ::std::fmt::Debug for AttrValue_ListValue {
1261    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1262        ::protobuf::text_format::fmt(self, f)
1263    }
1264}
1265
1266impl ::protobuf::reflect::ProtobufValue for AttrValue_ListValue {
1267    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1268        ::protobuf::reflect::ReflectValueRef::Message(self)
1269    }
1270}
1271
1272#[derive(PartialEq,Clone,Default)]
1273pub struct NameAttrList {
1274    // message fields
1275    pub name: ::std::string::String,
1276    pub attr: ::std::collections::HashMap<::std::string::String, AttrValue>,
1277    // special fields
1278    pub unknown_fields: ::protobuf::UnknownFields,
1279    pub cached_size: ::protobuf::CachedSize,
1280}
1281
1282impl<'a> ::std::default::Default for &'a NameAttrList {
1283    fn default() -> &'a NameAttrList {
1284        <NameAttrList as ::protobuf::Message>::default_instance()
1285    }
1286}
1287
1288impl NameAttrList {
1289    pub fn new() -> NameAttrList {
1290        ::std::default::Default::default()
1291    }
1292
1293    // string name = 1;
1294
1295
1296    pub fn get_name(&self) -> &str {
1297        &self.name
1298    }
1299    pub fn clear_name(&mut self) {
1300        self.name.clear();
1301    }
1302
1303    // Param is passed by value, moved
1304    pub fn set_name(&mut self, v: ::std::string::String) {
1305        self.name = v;
1306    }
1307
1308    // Mutable pointer to the field.
1309    // If field is not initialized, it is initialized with default value first.
1310    pub fn mut_name(&mut self) -> &mut ::std::string::String {
1311        &mut self.name
1312    }
1313
1314    // Take field
1315    pub fn take_name(&mut self) -> ::std::string::String {
1316        ::std::mem::replace(&mut self.name, ::std::string::String::new())
1317    }
1318
1319    // repeated .tensorflow.NameAttrList.AttrEntry attr = 2;
1320
1321
1322    pub fn get_attr(&self) -> &::std::collections::HashMap<::std::string::String, AttrValue> {
1323        &self.attr
1324    }
1325    pub fn clear_attr(&mut self) {
1326        self.attr.clear();
1327    }
1328
1329    // Param is passed by value, moved
1330    pub fn set_attr(&mut self, v: ::std::collections::HashMap<::std::string::String, AttrValue>) {
1331        self.attr = v;
1332    }
1333
1334    // Mutable pointer to the field.
1335    pub fn mut_attr(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, AttrValue> {
1336        &mut self.attr
1337    }
1338
1339    // Take field
1340    pub fn take_attr(&mut self) -> ::std::collections::HashMap<::std::string::String, AttrValue> {
1341        ::std::mem::replace(&mut self.attr, ::std::collections::HashMap::new())
1342    }
1343}
1344
1345impl ::protobuf::Message for NameAttrList {
1346    fn is_initialized(&self) -> bool {
1347        true
1348    }
1349
1350    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1351        while !is.eof()? {
1352            let (field_number, wire_type) = is.read_tag_unpack()?;
1353            match field_number {
1354                1 => {
1355                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
1356                },
1357                2 => {
1358                    ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<AttrValue>>(wire_type, is, &mut self.attr)?;
1359                },
1360                _ => {
1361                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1362                },
1363            };
1364        }
1365        ::std::result::Result::Ok(())
1366    }
1367
1368    // Compute sizes of nested messages
1369    #[allow(unused_variables)]
1370    fn compute_size(&self) -> u32 {
1371        let mut my_size = 0;
1372        if !self.name.is_empty() {
1373            my_size += ::protobuf::rt::string_size(1, &self.name);
1374        }
1375        my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<AttrValue>>(2, &self.attr);
1376        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1377        self.cached_size.set(my_size);
1378        my_size
1379    }
1380
1381    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1382        if !self.name.is_empty() {
1383            os.write_string(1, &self.name)?;
1384        }
1385        ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<AttrValue>>(2, &self.attr, os)?;
1386        os.write_unknown_fields(self.get_unknown_fields())?;
1387        ::std::result::Result::Ok(())
1388    }
1389
1390    fn get_cached_size(&self) -> u32 {
1391        self.cached_size.get()
1392    }
1393
1394    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1395        &self.unknown_fields
1396    }
1397
1398    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1399        &mut self.unknown_fields
1400    }
1401
1402    fn as_any(&self) -> &dyn (::std::any::Any) {
1403        self as &dyn (::std::any::Any)
1404    }
1405    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1406        self as &mut dyn (::std::any::Any)
1407    }
1408    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1409        self
1410    }
1411
1412    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1413        Self::descriptor_static()
1414    }
1415
1416    fn new() -> NameAttrList {
1417        NameAttrList::new()
1418    }
1419
1420    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1421        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1422        unsafe {
1423            descriptor.get(|| {
1424                let mut fields = ::std::vec::Vec::new();
1425                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1426                    "name",
1427                    |m: &NameAttrList| { &m.name },
1428                    |m: &mut NameAttrList| { &mut m.name },
1429                ));
1430                fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<AttrValue>>(
1431                    "attr",
1432                    |m: &NameAttrList| { &m.attr },
1433                    |m: &mut NameAttrList| { &mut m.attr },
1434                ));
1435                ::protobuf::reflect::MessageDescriptor::new_pb_name::<NameAttrList>(
1436                    "NameAttrList",
1437                    fields,
1438                    file_descriptor_proto()
1439                )
1440            })
1441        }
1442    }
1443
1444    fn default_instance() -> &'static NameAttrList {
1445        static mut instance: ::protobuf::lazy::Lazy<NameAttrList> = ::protobuf::lazy::Lazy::INIT;
1446        unsafe {
1447            instance.get(NameAttrList::new)
1448        }
1449    }
1450}
1451
1452impl ::protobuf::Clear for NameAttrList {
1453    fn clear(&mut self) {
1454        self.name.clear();
1455        self.attr.clear();
1456        self.unknown_fields.clear();
1457    }
1458}
1459
1460impl ::std::fmt::Debug for NameAttrList {
1461    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1462        ::protobuf::text_format::fmt(self, f)
1463    }
1464}
1465
1466impl ::protobuf::reflect::ProtobufValue for NameAttrList {
1467    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1468        ::protobuf::reflect::ReflectValueRef::Message(self)
1469    }
1470}
1471
1472static file_descriptor_proto_data: &'static [u8] = b"\
1473    \n*tensorflow/core/framework/attr_value.proto\x12\ntensorflow\x1a&tensor\
1474    flow/core/framework/tensor.proto\x1a,tensorflow/core/framework/tensor_sh\
1475    ape.proto\x1a%tensorflow/core/framework/types.proto\"\x87\x05\n\tAttrVal\
1476    ue\x12\x0e\n\x01s\x18\x02\x20\x01(\x0cH\0R\x01s\x12\x0e\n\x01i\x18\x03\
1477    \x20\x01(\x03H\0R\x01i\x12\x0e\n\x01f\x18\x04\x20\x01(\x02H\0R\x01f\x12\
1478    \x0e\n\x01b\x18\x05\x20\x01(\x08H\0R\x01b\x12*\n\x04type\x18\x06\x20\x01\
1479    (\x0e2\x14.tensorflow.DataTypeH\0R\x04type\x124\n\x05shape\x18\x07\x20\
1480    \x01(\x0b2\x1c.tensorflow.TensorShapeProtoH\0R\x05shape\x121\n\x06tensor\
1481    \x18\x08\x20\x01(\x0b2\x17.tensorflow.TensorProtoH\0R\x06tensor\x125\n\
1482    \x04list\x18\x01\x20\x01(\x0b2\x1f.tensorflow.AttrValue.ListValueH\0R\
1483    \x04list\x12.\n\x04func\x18\n\x20\x01(\x0b2\x18.tensorflow.NameAttrListH\
1484    \0R\x04func\x12\"\n\x0bplaceholder\x18\t\x20\x01(\tH\0R\x0bplaceholder\
1485    \x1a\x90\x02\n\tListValue\x12\x0c\n\x01s\x18\x02\x20\x03(\x0cR\x01s\x12\
1486    \x10\n\x01i\x18\x03\x20\x03(\x03R\x01iB\x02\x10\x01\x12\x10\n\x01f\x18\
1487    \x04\x20\x03(\x02R\x01fB\x02\x10\x01\x12\x10\n\x01b\x18\x05\x20\x03(\x08\
1488    R\x01bB\x02\x10\x01\x12,\n\x04type\x18\x06\x20\x03(\x0e2\x14.tensorflow.\
1489    DataTypeR\x04typeB\x02\x10\x01\x122\n\x05shape\x18\x07\x20\x03(\x0b2\x1c\
1490    .tensorflow.TensorShapeProtoR\x05shape\x12/\n\x06tensor\x18\x08\x20\x03(\
1491    \x0b2\x17.tensorflow.TensorProtoR\x06tensor\x12,\n\x04func\x18\t\x20\x03\
1492    (\x0b2\x18.tensorflow.NameAttrListR\x04funcB\x07\n\x05value\"\xaa\x01\n\
1493    \x0cNameAttrList\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x126\n\
1494    \x04attr\x18\x02\x20\x03(\x0b2\".tensorflow.NameAttrList.AttrEntryR\x04a\
1495    ttr\x1aN\n\tAttrEntry\x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\x12+\n\
1496    \x05value\x18\x02\x20\x01(\x0b2\x15.tensorflow.AttrValueR\x05value:\x028\
1497    \x01B\x83\x01\n\x18org.tensorflow.frameworkB\x0fAttrValueProtosP\x01ZQgi\
1498    thub.com/tensorflow/tensorflow/tensorflow/go/core/framework/attr_value_g\
1499    o_proto\xf8\x01\x01J\xaa\x16\n\x06\x12\x04\0\0?\x01\n\x08\n\x01\x0c\x12\
1500    \x03\0\0\x12\n\x08\n\x01\x02\x12\x03\x02\0\x13\n\t\n\x02\x03\0\x12\x03\
1501    \x04\00\n\t\n\x02\x03\x01\x12\x03\x05\06\n\t\n\x02\x03\x02\x12\x03\x06\0\
1502    /\n\x08\n\x01\x08\x12\x03\x08\0\x1f\n\t\n\x02\x08\x1f\x12\x03\x08\0\x1f\
1503    \n\x08\n\x01\x08\x12\x03\t\00\n\t\n\x02\x08\x08\x12\x03\t\00\n\x08\n\x01\
1504    \x08\x12\x03\n\0\"\n\t\n\x02\x08\n\x12\x03\n\0\"\n\x08\n\x01\x08\x12\x03\
1505    \x0b\01\n\t\n\x02\x08\x01\x12\x03\x0b\01\n\x08\n\x01\x08\x12\x03\x0c\0h\
1506    \n\t\n\x02\x08\x0b\x12\x03\x0c\0h\n\xc1\x01\n\x02\x04\0\x12\x04\x11\08\
1507    \x01\x1a\xb4\x01\x20Protocol\x20buffer\x20representing\x20the\x20value\
1508    \x20for\x20an\x20attr\x20used\x20to\x20configure\x20an\x20Op.\n\x20Comme\
1509    nt\x20indicates\x20the\x20corresponding\x20attr\x20type.\x20\x20Only\x20\
1510    the\x20field\x20matching\x20the\n\x20attr\x20type\x20may\x20be\x20filled\
1511    .\n\n\n\n\x03\x04\0\x01\x12\x03\x11\x08\x11\n\x1d\n\x04\x04\0\x03\0\x12\
1512    \x04\x13\x02\x1c\x03\x1a\x0f\x20LINT.IfChange\n\n\x0c\n\x05\x04\0\x03\0\
1513    \x01\x12\x03\x13\n\x13\n\x1f\n\x06\x04\0\x03\0\x02\0\x12\x03\x14\x04\x19\
1514    \"\x10\x20\"list(string)\"\n\n\x0e\n\x07\x04\0\x03\0\x02\0\x04\x12\x03\
1515    \x14\x04\x0c\n\x0e\n\x07\x04\0\x03\0\x02\0\x05\x12\x03\x14\r\x12\n\x0e\n\
1516    \x07\x04\0\x03\0\x02\0\x01\x12\x03\x14\x13\x14\n\x0e\n\x07\x04\0\x03\0\
1517    \x02\0\x03\x12\x03\x14\x17\x18\n\x1c\n\x06\x04\0\x03\0\x02\x01\x12\x03\
1518    \x15\x04)\"\r\x20\"list(int)\"\n\n\x0e\n\x07\x04\0\x03\0\x02\x01\x04\x12\
1519    \x03\x15\x04\x0c\n\x0e\n\x07\x04\0\x03\0\x02\x01\x05\x12\x03\x15\r\x12\n\
1520    \x0e\n\x07\x04\0\x03\0\x02\x01\x01\x12\x03\x15\x13\x14\n\x0e\n\x07\x04\0\
1521    \x03\0\x02\x01\x03\x12\x03\x15\x17\x18\n\x0e\n\x07\x04\0\x03\0\x02\x01\
1522    \x08\x12\x03\x15\x19(\n\x0f\n\x08\x04\0\x03\0\x02\x01\x08\x02\x12\x03\
1523    \x15\x1a'\n\x1e\n\x06\x04\0\x03\0\x02\x02\x12\x03\x16\x04)\"\x0f\x20\"li\
1524    st(float)\"\n\n\x0e\n\x07\x04\0\x03\0\x02\x02\x04\x12\x03\x16\x04\x0c\n\
1525    \x0e\n\x07\x04\0\x03\0\x02\x02\x05\x12\x03\x16\r\x12\n\x0e\n\x07\x04\0\
1526    \x03\0\x02\x02\x01\x12\x03\x16\x13\x14\n\x0e\n\x07\x04\0\x03\0\x02\x02\
1527    \x03\x12\x03\x16\x17\x18\n\x0e\n\x07\x04\0\x03\0\x02\x02\x08\x12\x03\x16\
1528    \x19(\n\x0f\n\x08\x04\0\x03\0\x02\x02\x08\x02\x12\x03\x16\x1a'\n\x1d\n\
1529    \x06\x04\0\x03\0\x02\x03\x12\x03\x17\x04(\"\x0e\x20\"list(bool)\"\n\n\
1530    \x0e\n\x07\x04\0\x03\0\x02\x03\x04\x12\x03\x17\x04\x0c\n\x0e\n\x07\x04\0\
1531    \x03\0\x02\x03\x05\x12\x03\x17\r\x11\n\x0e\n\x07\x04\0\x03\0\x02\x03\x01\
1532    \x12\x03\x17\x12\x13\n\x0e\n\x07\x04\0\x03\0\x02\x03\x03\x12\x03\x17\x16\
1533    \x17\n\x0e\n\x07\x04\0\x03\0\x02\x03\x08\x12\x03\x17\x18'\n\x0f\n\x08\
1534    \x04\0\x03\0\x02\x03\x08\x02\x12\x03\x17\x19&\n\x1d\n\x06\x04\0\x03\0\
1535    \x02\x04\x12\x03\x18\x04/\"\x0e\x20\"list(type)\"\n\n\x0e\n\x07\x04\0\
1536    \x03\0\x02\x04\x04\x12\x03\x18\x04\x0c\n\x0e\n\x07\x04\0\x03\0\x02\x04\
1537    \x06\x12\x03\x18\r\x15\n\x0e\n\x07\x04\0\x03\0\x02\x04\x01\x12\x03\x18\
1538    \x16\x1a\n\x0e\n\x07\x04\0\x03\0\x02\x04\x03\x12\x03\x18\x1d\x1e\n\x0e\n\
1539    \x07\x04\0\x03\0\x02\x04\x08\x12\x03\x18\x1f.\n\x0f\n\x08\x04\0\x03\0\
1540    \x02\x04\x08\x02\x12\x03\x18\x20-\n\x1e\n\x06\x04\0\x03\0\x02\x05\x12\
1541    \x03\x19\x04(\"\x0f\x20\"list(shape)\"\n\n\x0e\n\x07\x04\0\x03\0\x02\x05\
1542    \x04\x12\x03\x19\x04\x0c\n\x0e\n\x07\x04\0\x03\0\x02\x05\x06\x12\x03\x19\
1543    \r\x1d\n\x0e\n\x07\x04\0\x03\0\x02\x05\x01\x12\x03\x19\x1e#\n\x0e\n\x07\
1544    \x04\0\x03\0\x02\x05\x03\x12\x03\x19&'\n\x1f\n\x06\x04\0\x03\0\x02\x06\
1545    \x12\x03\x1a\x04$\"\x10\x20\"list(tensor)\"\n\n\x0e\n\x07\x04\0\x03\0\
1546    \x02\x06\x04\x12\x03\x1a\x04\x0c\n\x0e\n\x07\x04\0\x03\0\x02\x06\x06\x12\
1547    \x03\x1a\r\x18\n\x0e\n\x07\x04\0\x03\0\x02\x06\x01\x12\x03\x1a\x19\x1f\n\
1548    \x0e\n\x07\x04\0\x03\0\x02\x06\x03\x12\x03\x1a\"#\n\x1d\n\x06\x04\0\x03\
1549    \0\x02\x07\x12\x03\x1b\x04#\"\x0e\x20\"list(attr)\"\n\n\x0e\n\x07\x04\0\
1550    \x03\0\x02\x07\x04\x12\x03\x1b\x04\x0c\n\x0e\n\x07\x04\0\x03\0\x02\x07\
1551    \x06\x12\x03\x1b\r\x19\n\x0e\n\x07\x04\0\x03\0\x02\x07\x01\x12\x03\x1b\
1552    \x1a\x1e\n\x0e\n\x07\x04\0\x03\0\x02\x07\x03\x12\x03\x1b!\"\n\x0c\n\x04\
1553    \x04\0\x08\0\x12\x04\x1f\x027\x03\n\x0c\n\x05\x04\0\x08\0\x01\x12\x03\
1554    \x1f\x08\r\n\x17\n\x04\x04\0\x02\0\x12\x03\x20\x04\x10\"\n\x20\"string\"\
1555    \n\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03\x20\x04\t\n\x0c\n\x05\x04\0\x02\0\
1556    \x01\x12\x03\x20\n\x0b\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x20\x0e\x0f\n\
1557    \x14\n\x04\x04\0\x02\x01\x12\x03!\x04\x10\"\x07\x20\"int\"\n\n\x0c\n\x05\
1558    \x04\0\x02\x01\x05\x12\x03!\x04\t\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03!\
1559    \n\x0b\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03!\x0e\x0f\n\x16\n\x04\x04\0\
1560    \x02\x02\x12\x03\"\x04\x10\"\t\x20\"float\"\n\n\x0c\n\x05\x04\0\x02\x02\
1561    \x05\x12\x03\"\x04\t\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\"\n\x0b\n\x0c\
1562    \n\x05\x04\0\x02\x02\x03\x12\x03\"\x0e\x0f\n\x15\n\x04\x04\0\x02\x03\x12\
1563    \x03#\x04\x0f\"\x08\x20\"bool\"\n\n\x0c\n\x05\x04\0\x02\x03\x05\x12\x03#\
1564    \x04\x08\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03#\t\n\n\x0c\n\x05\x04\0\
1565    \x02\x03\x03\x12\x03#\r\x0e\n\x15\n\x04\x04\0\x02\x04\x12\x03$\x04\x16\"\
1566    \x08\x20\"type\"\n\n\x0c\n\x05\x04\0\x02\x04\x06\x12\x03$\x04\x0c\n\x0c\
1567    \n\x05\x04\0\x02\x04\x01\x12\x03$\r\x11\n\x0c\n\x05\x04\0\x02\x04\x03\
1568    \x12\x03$\x14\x15\n\x16\n\x04\x04\0\x02\x05\x12\x03%\x04\x1f\"\t\x20\"sh\
1569    ape\"\n\n\x0c\n\x05\x04\0\x02\x05\x06\x12\x03%\x04\x14\n\x0c\n\x05\x04\0\
1570    \x02\x05\x01\x12\x03%\x15\x1a\n\x0c\n\x05\x04\0\x02\x05\x03\x12\x03%\x1d\
1571    \x1e\n\x17\n\x04\x04\0\x02\x06\x12\x03&\x04\x1b\"\n\x20\"tensor\"\n\n\
1572    \x0c\n\x05\x04\0\x02\x06\x06\x12\x03&\x04\x0f\n\x0c\n\x05\x04\0\x02\x06\
1573    \x01\x12\x03&\x10\x16\n\x0c\n\x05\x04\0\x02\x06\x03\x12\x03&\x19\x1a\n\
1574    \x1e\n\x04\x04\0\x02\x07\x12\x03'\x04\x17\"\x11\x20any\x20\"list(...)\"\
1575    \n\n\x0c\n\x05\x04\0\x02\x07\x06\x12\x03'\x04\r\n\x0c\n\x05\x04\0\x02\
1576    \x07\x01\x12\x03'\x0e\x12\n\x0c\n\x05\x04\0\x02\x07\x03\x12\x03'\x15\x16\
1577    \n\xed\x01\n\x04\x04\0\x02\x08\x12\x03-\x04\x1b\x1a\xdf\x01\x20\"func\"\
1578    \x20represents\x20a\x20function.\x20func.name\x20is\x20a\x20function's\
1579    \x20name\x20or\n\x20a\x20primitive\x20op's\x20name.\x20func.attr.first\
1580    \x20is\x20the\x20name\x20of\x20an\x20attr\n\x20defined\x20for\x20that\
1581    \x20function.\x20func.attr.second\x20is\x20the\x20value\x20for\n\x20that\
1582    \x20attr\x20in\x20the\x20instantiation.\n\n\x0c\n\x05\x04\0\x02\x08\x06\
1583    \x12\x03-\x04\x10\n\x0c\n\x05\x04\0\x02\x08\x01\x12\x03-\x11\x15\n\x0c\n\
1584    \x05\x04\0\x02\x08\x03\x12\x03-\x18\x1a\n\x95\x03\n\x04\x04\0\x02\t\x12\
1585    \x036\x04\x1b\x1a\x87\x03\x20This\x20is\x20a\x20placeholder\x20only\x20u\
1586    sed\x20in\x20nodes\x20defined\x20inside\x20a\n\x20function.\x20\x20It\
1587    \x20indicates\x20the\x20attr\x20value\x20will\x20be\x20supplied\x20when\
1588    \n\x20the\x20function\x20is\x20instantiated.\x20\x20For\x20example,\x20l\
1589    et\x20us\x20suppose\x20a\n\x20node\x20\"N\"\x20in\x20function\x20\"FN\".\
1590    \x20\"N\"\x20has\x20an\x20attr\x20\"A\"\x20with\x20value\n\x20placeholde\
1591    r\x20=\x20\"foo\".\x20When\x20FN\x20is\x20instantiated\x20with\x20attr\
1592    \x20\"foo\"\n\x20set\x20to\x20\"bar\",\x20the\x20instantiated\x20node\
1593    \x20N's\x20attr\x20A\x20will\x20have\x20been\n\x20given\x20the\x20value\
1594    \x20\"bar\".\n\n\x0c\n\x05\x04\0\x02\t\x05\x12\x036\x04\n\n\x0c\n\x05\
1595    \x04\0\x02\t\x01\x12\x036\x0b\x16\n\x0c\n\x05\x04\0\x02\t\x03\x12\x036\
1596    \x19\x1a\n|\n\x02\x04\x01\x12\x04<\0?\x01\x1ap\x20A\x20list\x20of\x20att\
1597    r\x20names\x20and\x20their\x20values.\x20The\x20whole\x20list\x20is\x20a\
1598    ttached\n\x20with\x20a\x20string\x20name.\x20\x20E.g.,\x20MatMul[T=float\
1599    ].\n\n\n\n\x03\x04\x01\x01\x12\x03<\x08\x14\n\x0b\n\x04\x04\x01\x02\0\
1600    \x12\x03=\x02\x12\n\x0c\n\x05\x04\x01\x02\0\x05\x12\x03=\x02\x08\n\x0c\n\
1601    \x05\x04\x01\x02\0\x01\x12\x03=\t\r\n\x0c\n\x05\x04\x01\x02\0\x03\x12\
1602    \x03=\x10\x11\n\x0b\n\x04\x04\x01\x02\x01\x12\x03>\x02\"\n\x0c\n\x05\x04\
1603    \x01\x02\x01\x06\x12\x03>\x02\x18\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\
1604    \x03>\x19\x1d\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03>\x20!b\x06proto3\
1605";
1606
1607static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy::INIT;
1608
1609fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
1610    ::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap()
1611}
1612
1613pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
1614    unsafe {
1615        file_descriptor_proto_lazy.get(|| {
1616            parse_descriptor_proto()
1617        })
1618    }
1619}