tensorboard_proto/
step_stats.rs

1// This file is generated by rust-protobuf 2.27.1. 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#![allow(unused_attributes)]
9#![cfg_attr(rustfmt, rustfmt::skip)]
10
11#![allow(box_pointers)]
12#![allow(dead_code)]
13#![allow(missing_docs)]
14#![allow(non_camel_case_types)]
15#![allow(non_snake_case)]
16#![allow(non_upper_case_globals)]
17#![allow(trivial_casts)]
18#![allow(unused_imports)]
19#![allow(unused_results)]
20//! Generated file from `src/step_stats.proto`
21
22/// Generated files are compatible only with the same version
23/// of protobuf runtime.
24// const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_27_1;
25
26#[derive(PartialEq,Clone,Default)]
27pub struct AllocationRecord {
28    // message fields
29    pub alloc_micros: i64,
30    pub alloc_bytes: i64,
31    // special fields
32    pub unknown_fields: ::protobuf::UnknownFields,
33    pub cached_size: ::protobuf::CachedSize,
34}
35
36impl<'a> ::std::default::Default for &'a AllocationRecord {
37    fn default() -> &'a AllocationRecord {
38        <AllocationRecord as ::protobuf::Message>::default_instance()
39    }
40}
41
42impl AllocationRecord {
43    pub fn new() -> AllocationRecord {
44        ::std::default::Default::default()
45    }
46
47    // int64 alloc_micros = 1;
48
49
50    pub fn get_alloc_micros(&self) -> i64 {
51        self.alloc_micros
52    }
53    pub fn clear_alloc_micros(&mut self) {
54        self.alloc_micros = 0;
55    }
56
57    // Param is passed by value, moved
58    pub fn set_alloc_micros(&mut self, v: i64) {
59        self.alloc_micros = v;
60    }
61
62    // int64 alloc_bytes = 2;
63
64
65    pub fn get_alloc_bytes(&self) -> i64 {
66        self.alloc_bytes
67    }
68    pub fn clear_alloc_bytes(&mut self) {
69        self.alloc_bytes = 0;
70    }
71
72    // Param is passed by value, moved
73    pub fn set_alloc_bytes(&mut self, v: i64) {
74        self.alloc_bytes = v;
75    }
76}
77
78impl ::protobuf::Message for AllocationRecord {
79    fn is_initialized(&self) -> bool {
80        true
81    }
82
83    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
84        while !is.eof()? {
85            let (field_number, wire_type) = is.read_tag_unpack()?;
86            match field_number {
87                1 => {
88                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
89                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
90                    }
91                    let tmp = is.read_int64()?;
92                    self.alloc_micros = tmp;
93                },
94                2 => {
95                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
96                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
97                    }
98                    let tmp = is.read_int64()?;
99                    self.alloc_bytes = tmp;
100                },
101                _ => {
102                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
103                },
104            };
105        }
106        ::std::result::Result::Ok(())
107    }
108
109    // Compute sizes of nested messages
110    #[allow(unused_variables)]
111    fn compute_size(&self) -> u32 {
112        let mut my_size = 0;
113        if self.alloc_micros != 0 {
114            my_size += ::protobuf::rt::value_size(1, self.alloc_micros, ::protobuf::wire_format::WireTypeVarint);
115        }
116        if self.alloc_bytes != 0 {
117            my_size += ::protobuf::rt::value_size(2, self.alloc_bytes, ::protobuf::wire_format::WireTypeVarint);
118        }
119        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
120        self.cached_size.set(my_size);
121        my_size
122    }
123
124    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
125        if self.alloc_micros != 0 {
126            os.write_int64(1, self.alloc_micros)?;
127        }
128        if self.alloc_bytes != 0 {
129            os.write_int64(2, self.alloc_bytes)?;
130        }
131        os.write_unknown_fields(self.get_unknown_fields())?;
132        ::std::result::Result::Ok(())
133    }
134
135    fn get_cached_size(&self) -> u32 {
136        self.cached_size.get()
137    }
138
139    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
140        &self.unknown_fields
141    }
142
143    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
144        &mut self.unknown_fields
145    }
146
147    fn as_any(&self) -> &dyn (::std::any::Any) {
148        self as &dyn (::std::any::Any)
149    }
150    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
151        self as &mut dyn (::std::any::Any)
152    }
153    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
154        self
155    }
156
157    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
158        Self::descriptor_static()
159    }
160
161    fn new() -> AllocationRecord {
162        AllocationRecord::new()
163    }
164
165    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
166        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
167        descriptor.get(|| {
168            let mut fields = ::std::vec::Vec::new();
169            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
170                "alloc_micros",
171                |m: &AllocationRecord| { &m.alloc_micros },
172                |m: &mut AllocationRecord| { &mut m.alloc_micros },
173            ));
174            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
175                "alloc_bytes",
176                |m: &AllocationRecord| { &m.alloc_bytes },
177                |m: &mut AllocationRecord| { &mut m.alloc_bytes },
178            ));
179            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AllocationRecord>(
180                "AllocationRecord",
181                fields,
182                file_descriptor_proto()
183            )
184        })
185    }
186
187    fn default_instance() -> &'static AllocationRecord {
188        static instance: ::protobuf::rt::LazyV2<AllocationRecord> = ::protobuf::rt::LazyV2::INIT;
189        instance.get(AllocationRecord::new)
190    }
191}
192
193impl ::protobuf::Clear for AllocationRecord {
194    fn clear(&mut self) {
195        self.alloc_micros = 0;
196        self.alloc_bytes = 0;
197        self.unknown_fields.clear();
198    }
199}
200
201impl ::std::fmt::Debug for AllocationRecord {
202    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
203        ::protobuf::text_format::fmt(self, f)
204    }
205}
206
207impl ::protobuf::reflect::ProtobufValue for AllocationRecord {
208    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
209        ::protobuf::reflect::ReflectValueRef::Message(self)
210    }
211}
212
213#[derive(PartialEq,Clone,Default)]
214pub struct AllocatorMemoryUsed {
215    // message fields
216    pub allocator_name: ::std::string::String,
217    pub total_bytes: i64,
218    pub peak_bytes: i64,
219    pub live_bytes: i64,
220    pub allocation_records: ::protobuf::RepeatedField<AllocationRecord>,
221    pub allocator_bytes_in_use: i64,
222    // special fields
223    pub unknown_fields: ::protobuf::UnknownFields,
224    pub cached_size: ::protobuf::CachedSize,
225}
226
227impl<'a> ::std::default::Default for &'a AllocatorMemoryUsed {
228    fn default() -> &'a AllocatorMemoryUsed {
229        <AllocatorMemoryUsed as ::protobuf::Message>::default_instance()
230    }
231}
232
233impl AllocatorMemoryUsed {
234    pub fn new() -> AllocatorMemoryUsed {
235        ::std::default::Default::default()
236    }
237
238    // string allocator_name = 1;
239
240
241    pub fn get_allocator_name(&self) -> &str {
242        &self.allocator_name
243    }
244    pub fn clear_allocator_name(&mut self) {
245        self.allocator_name.clear();
246    }
247
248    // Param is passed by value, moved
249    pub fn set_allocator_name(&mut self, v: ::std::string::String) {
250        self.allocator_name = v;
251    }
252
253    // Mutable pointer to the field.
254    // If field is not initialized, it is initialized with default value first.
255    pub fn mut_allocator_name(&mut self) -> &mut ::std::string::String {
256        &mut self.allocator_name
257    }
258
259    // Take field
260    pub fn take_allocator_name(&mut self) -> ::std::string::String {
261        ::std::mem::replace(&mut self.allocator_name, ::std::string::String::new())
262    }
263
264    // int64 total_bytes = 2;
265
266
267    pub fn get_total_bytes(&self) -> i64 {
268        self.total_bytes
269    }
270    pub fn clear_total_bytes(&mut self) {
271        self.total_bytes = 0;
272    }
273
274    // Param is passed by value, moved
275    pub fn set_total_bytes(&mut self, v: i64) {
276        self.total_bytes = v;
277    }
278
279    // int64 peak_bytes = 3;
280
281
282    pub fn get_peak_bytes(&self) -> i64 {
283        self.peak_bytes
284    }
285    pub fn clear_peak_bytes(&mut self) {
286        self.peak_bytes = 0;
287    }
288
289    // Param is passed by value, moved
290    pub fn set_peak_bytes(&mut self, v: i64) {
291        self.peak_bytes = v;
292    }
293
294    // int64 live_bytes = 4;
295
296
297    pub fn get_live_bytes(&self) -> i64 {
298        self.live_bytes
299    }
300    pub fn clear_live_bytes(&mut self) {
301        self.live_bytes = 0;
302    }
303
304    // Param is passed by value, moved
305    pub fn set_live_bytes(&mut self, v: i64) {
306        self.live_bytes = v;
307    }
308
309    // repeated .tensorboardrs.AllocationRecord allocation_records = 6;
310
311
312    pub fn get_allocation_records(&self) -> &[AllocationRecord] {
313        &self.allocation_records
314    }
315    pub fn clear_allocation_records(&mut self) {
316        self.allocation_records.clear();
317    }
318
319    // Param is passed by value, moved
320    pub fn set_allocation_records(&mut self, v: ::protobuf::RepeatedField<AllocationRecord>) {
321        self.allocation_records = v;
322    }
323
324    // Mutable pointer to the field.
325    pub fn mut_allocation_records(&mut self) -> &mut ::protobuf::RepeatedField<AllocationRecord> {
326        &mut self.allocation_records
327    }
328
329    // Take field
330    pub fn take_allocation_records(&mut self) -> ::protobuf::RepeatedField<AllocationRecord> {
331        ::std::mem::replace(&mut self.allocation_records, ::protobuf::RepeatedField::new())
332    }
333
334    // int64 allocator_bytes_in_use = 5;
335
336
337    pub fn get_allocator_bytes_in_use(&self) -> i64 {
338        self.allocator_bytes_in_use
339    }
340    pub fn clear_allocator_bytes_in_use(&mut self) {
341        self.allocator_bytes_in_use = 0;
342    }
343
344    // Param is passed by value, moved
345    pub fn set_allocator_bytes_in_use(&mut self, v: i64) {
346        self.allocator_bytes_in_use = v;
347    }
348}
349
350impl ::protobuf::Message for AllocatorMemoryUsed {
351    fn is_initialized(&self) -> bool {
352        for v in &self.allocation_records {
353            if !v.is_initialized() {
354                return false;
355            }
356        };
357        true
358    }
359
360    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
361        while !is.eof()? {
362            let (field_number, wire_type) = is.read_tag_unpack()?;
363            match field_number {
364                1 => {
365                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.allocator_name)?;
366                },
367                2 => {
368                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
369                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
370                    }
371                    let tmp = is.read_int64()?;
372                    self.total_bytes = tmp;
373                },
374                3 => {
375                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
376                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
377                    }
378                    let tmp = is.read_int64()?;
379                    self.peak_bytes = tmp;
380                },
381                4 => {
382                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
383                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
384                    }
385                    let tmp = is.read_int64()?;
386                    self.live_bytes = tmp;
387                },
388                6 => {
389                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.allocation_records)?;
390                },
391                5 => {
392                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
393                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
394                    }
395                    let tmp = is.read_int64()?;
396                    self.allocator_bytes_in_use = tmp;
397                },
398                _ => {
399                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
400                },
401            };
402        }
403        ::std::result::Result::Ok(())
404    }
405
406    // Compute sizes of nested messages
407    #[allow(unused_variables)]
408    fn compute_size(&self) -> u32 {
409        let mut my_size = 0;
410        if !self.allocator_name.is_empty() {
411            my_size += ::protobuf::rt::string_size(1, &self.allocator_name);
412        }
413        if self.total_bytes != 0 {
414            my_size += ::protobuf::rt::value_size(2, self.total_bytes, ::protobuf::wire_format::WireTypeVarint);
415        }
416        if self.peak_bytes != 0 {
417            my_size += ::protobuf::rt::value_size(3, self.peak_bytes, ::protobuf::wire_format::WireTypeVarint);
418        }
419        if self.live_bytes != 0 {
420            my_size += ::protobuf::rt::value_size(4, self.live_bytes, ::protobuf::wire_format::WireTypeVarint);
421        }
422        for value in &self.allocation_records {
423            let len = value.compute_size();
424            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
425        };
426        if self.allocator_bytes_in_use != 0 {
427            my_size += ::protobuf::rt::value_size(5, self.allocator_bytes_in_use, ::protobuf::wire_format::WireTypeVarint);
428        }
429        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
430        self.cached_size.set(my_size);
431        my_size
432    }
433
434    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
435        if !self.allocator_name.is_empty() {
436            os.write_string(1, &self.allocator_name)?;
437        }
438        if self.total_bytes != 0 {
439            os.write_int64(2, self.total_bytes)?;
440        }
441        if self.peak_bytes != 0 {
442            os.write_int64(3, self.peak_bytes)?;
443        }
444        if self.live_bytes != 0 {
445            os.write_int64(4, self.live_bytes)?;
446        }
447        for v in &self.allocation_records {
448            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
449            os.write_raw_varint32(v.get_cached_size())?;
450            v.write_to_with_cached_sizes(os)?;
451        };
452        if self.allocator_bytes_in_use != 0 {
453            os.write_int64(5, self.allocator_bytes_in_use)?;
454        }
455        os.write_unknown_fields(self.get_unknown_fields())?;
456        ::std::result::Result::Ok(())
457    }
458
459    fn get_cached_size(&self) -> u32 {
460        self.cached_size.get()
461    }
462
463    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
464        &self.unknown_fields
465    }
466
467    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
468        &mut self.unknown_fields
469    }
470
471    fn as_any(&self) -> &dyn (::std::any::Any) {
472        self as &dyn (::std::any::Any)
473    }
474    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
475        self as &mut dyn (::std::any::Any)
476    }
477    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
478        self
479    }
480
481    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
482        Self::descriptor_static()
483    }
484
485    fn new() -> AllocatorMemoryUsed {
486        AllocatorMemoryUsed::new()
487    }
488
489    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
490        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
491        descriptor.get(|| {
492            let mut fields = ::std::vec::Vec::new();
493            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
494                "allocator_name",
495                |m: &AllocatorMemoryUsed| { &m.allocator_name },
496                |m: &mut AllocatorMemoryUsed| { &mut m.allocator_name },
497            ));
498            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
499                "total_bytes",
500                |m: &AllocatorMemoryUsed| { &m.total_bytes },
501                |m: &mut AllocatorMemoryUsed| { &mut m.total_bytes },
502            ));
503            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
504                "peak_bytes",
505                |m: &AllocatorMemoryUsed| { &m.peak_bytes },
506                |m: &mut AllocatorMemoryUsed| { &mut m.peak_bytes },
507            ));
508            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
509                "live_bytes",
510                |m: &AllocatorMemoryUsed| { &m.live_bytes },
511                |m: &mut AllocatorMemoryUsed| { &mut m.live_bytes },
512            ));
513            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AllocationRecord>>(
514                "allocation_records",
515                |m: &AllocatorMemoryUsed| { &m.allocation_records },
516                |m: &mut AllocatorMemoryUsed| { &mut m.allocation_records },
517            ));
518            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
519                "allocator_bytes_in_use",
520                |m: &AllocatorMemoryUsed| { &m.allocator_bytes_in_use },
521                |m: &mut AllocatorMemoryUsed| { &mut m.allocator_bytes_in_use },
522            ));
523            ::protobuf::reflect::MessageDescriptor::new_pb_name::<AllocatorMemoryUsed>(
524                "AllocatorMemoryUsed",
525                fields,
526                file_descriptor_proto()
527            )
528        })
529    }
530
531    fn default_instance() -> &'static AllocatorMemoryUsed {
532        static instance: ::protobuf::rt::LazyV2<AllocatorMemoryUsed> = ::protobuf::rt::LazyV2::INIT;
533        instance.get(AllocatorMemoryUsed::new)
534    }
535}
536
537impl ::protobuf::Clear for AllocatorMemoryUsed {
538    fn clear(&mut self) {
539        self.allocator_name.clear();
540        self.total_bytes = 0;
541        self.peak_bytes = 0;
542        self.live_bytes = 0;
543        self.allocation_records.clear();
544        self.allocator_bytes_in_use = 0;
545        self.unknown_fields.clear();
546    }
547}
548
549impl ::std::fmt::Debug for AllocatorMemoryUsed {
550    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
551        ::protobuf::text_format::fmt(self, f)
552    }
553}
554
555impl ::protobuf::reflect::ProtobufValue for AllocatorMemoryUsed {
556    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
557        ::protobuf::reflect::ReflectValueRef::Message(self)
558    }
559}
560
561#[derive(PartialEq,Clone,Default)]
562pub struct NodeOutput {
563    // message fields
564    pub slot: i32,
565    // special fields
566    pub unknown_fields: ::protobuf::UnknownFields,
567    pub cached_size: ::protobuf::CachedSize,
568}
569
570impl<'a> ::std::default::Default for &'a NodeOutput {
571    fn default() -> &'a NodeOutput {
572        <NodeOutput as ::protobuf::Message>::default_instance()
573    }
574}
575
576impl NodeOutput {
577    pub fn new() -> NodeOutput {
578        ::std::default::Default::default()
579    }
580
581    // int32 slot = 1;
582
583
584    pub fn get_slot(&self) -> i32 {
585        self.slot
586    }
587    pub fn clear_slot(&mut self) {
588        self.slot = 0;
589    }
590
591    // Param is passed by value, moved
592    pub fn set_slot(&mut self, v: i32) {
593        self.slot = v;
594    }
595}
596
597impl ::protobuf::Message for NodeOutput {
598    fn is_initialized(&self) -> bool {
599        true
600    }
601
602    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
603        while !is.eof()? {
604            let (field_number, wire_type) = is.read_tag_unpack()?;
605            match field_number {
606                1 => {
607                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
608                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
609                    }
610                    let tmp = is.read_int32()?;
611                    self.slot = tmp;
612                },
613                _ => {
614                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
615                },
616            };
617        }
618        ::std::result::Result::Ok(())
619    }
620
621    // Compute sizes of nested messages
622    #[allow(unused_variables)]
623    fn compute_size(&self) -> u32 {
624        let mut my_size = 0;
625        if self.slot != 0 {
626            my_size += ::protobuf::rt::value_size(1, self.slot, ::protobuf::wire_format::WireTypeVarint);
627        }
628        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
629        self.cached_size.set(my_size);
630        my_size
631    }
632
633    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
634        if self.slot != 0 {
635            os.write_int32(1, self.slot)?;
636        }
637        os.write_unknown_fields(self.get_unknown_fields())?;
638        ::std::result::Result::Ok(())
639    }
640
641    fn get_cached_size(&self) -> u32 {
642        self.cached_size.get()
643    }
644
645    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
646        &self.unknown_fields
647    }
648
649    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
650        &mut self.unknown_fields
651    }
652
653    fn as_any(&self) -> &dyn (::std::any::Any) {
654        self as &dyn (::std::any::Any)
655    }
656    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
657        self as &mut dyn (::std::any::Any)
658    }
659    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
660        self
661    }
662
663    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
664        Self::descriptor_static()
665    }
666
667    fn new() -> NodeOutput {
668        NodeOutput::new()
669    }
670
671    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
672        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
673        descriptor.get(|| {
674            let mut fields = ::std::vec::Vec::new();
675            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
676                "slot",
677                |m: &NodeOutput| { &m.slot },
678                |m: &mut NodeOutput| { &mut m.slot },
679            ));
680            ::protobuf::reflect::MessageDescriptor::new_pb_name::<NodeOutput>(
681                "NodeOutput",
682                fields,
683                file_descriptor_proto()
684            )
685        })
686    }
687
688    fn default_instance() -> &'static NodeOutput {
689        static instance: ::protobuf::rt::LazyV2<NodeOutput> = ::protobuf::rt::LazyV2::INIT;
690        instance.get(NodeOutput::new)
691    }
692}
693
694impl ::protobuf::Clear for NodeOutput {
695    fn clear(&mut self) {
696        self.slot = 0;
697        self.unknown_fields.clear();
698    }
699}
700
701impl ::std::fmt::Debug for NodeOutput {
702    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
703        ::protobuf::text_format::fmt(self, f)
704    }
705}
706
707impl ::protobuf::reflect::ProtobufValue for NodeOutput {
708    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
709        ::protobuf::reflect::ReflectValueRef::Message(self)
710    }
711}
712
713#[derive(PartialEq,Clone,Default)]
714pub struct MemoryStats {
715    // message fields
716    pub temp_memory_size: i64,
717    pub persistent_memory_size: i64,
718    pub persistent_tensor_alloc_ids: ::std::vec::Vec<i64>,
719    pub device_temp_memory_size: i64,
720    pub device_persistent_memory_size: i64,
721    pub device_persistent_tensor_alloc_ids: ::std::vec::Vec<i64>,
722    // special fields
723    pub unknown_fields: ::protobuf::UnknownFields,
724    pub cached_size: ::protobuf::CachedSize,
725}
726
727impl<'a> ::std::default::Default for &'a MemoryStats {
728    fn default() -> &'a MemoryStats {
729        <MemoryStats as ::protobuf::Message>::default_instance()
730    }
731}
732
733impl MemoryStats {
734    pub fn new() -> MemoryStats {
735        ::std::default::Default::default()
736    }
737
738    // int64 temp_memory_size = 1;
739
740
741    pub fn get_temp_memory_size(&self) -> i64 {
742        self.temp_memory_size
743    }
744    pub fn clear_temp_memory_size(&mut self) {
745        self.temp_memory_size = 0;
746    }
747
748    // Param is passed by value, moved
749    pub fn set_temp_memory_size(&mut self, v: i64) {
750        self.temp_memory_size = v;
751    }
752
753    // int64 persistent_memory_size = 3;
754
755
756    pub fn get_persistent_memory_size(&self) -> i64 {
757        self.persistent_memory_size
758    }
759    pub fn clear_persistent_memory_size(&mut self) {
760        self.persistent_memory_size = 0;
761    }
762
763    // Param is passed by value, moved
764    pub fn set_persistent_memory_size(&mut self, v: i64) {
765        self.persistent_memory_size = v;
766    }
767
768    // repeated int64 persistent_tensor_alloc_ids = 5;
769
770
771    pub fn get_persistent_tensor_alloc_ids(&self) -> &[i64] {
772        &self.persistent_tensor_alloc_ids
773    }
774    pub fn clear_persistent_tensor_alloc_ids(&mut self) {
775        self.persistent_tensor_alloc_ids.clear();
776    }
777
778    // Param is passed by value, moved
779    pub fn set_persistent_tensor_alloc_ids(&mut self, v: ::std::vec::Vec<i64>) {
780        self.persistent_tensor_alloc_ids = v;
781    }
782
783    // Mutable pointer to the field.
784    pub fn mut_persistent_tensor_alloc_ids(&mut self) -> &mut ::std::vec::Vec<i64> {
785        &mut self.persistent_tensor_alloc_ids
786    }
787
788    // Take field
789    pub fn take_persistent_tensor_alloc_ids(&mut self) -> ::std::vec::Vec<i64> {
790        ::std::mem::replace(&mut self.persistent_tensor_alloc_ids, ::std::vec::Vec::new())
791    }
792
793    // int64 device_temp_memory_size = 2;
794
795
796    pub fn get_device_temp_memory_size(&self) -> i64 {
797        self.device_temp_memory_size
798    }
799    pub fn clear_device_temp_memory_size(&mut self) {
800        self.device_temp_memory_size = 0;
801    }
802
803    // Param is passed by value, moved
804    pub fn set_device_temp_memory_size(&mut self, v: i64) {
805        self.device_temp_memory_size = v;
806    }
807
808    // int64 device_persistent_memory_size = 4;
809
810
811    pub fn get_device_persistent_memory_size(&self) -> i64 {
812        self.device_persistent_memory_size
813    }
814    pub fn clear_device_persistent_memory_size(&mut self) {
815        self.device_persistent_memory_size = 0;
816    }
817
818    // Param is passed by value, moved
819    pub fn set_device_persistent_memory_size(&mut self, v: i64) {
820        self.device_persistent_memory_size = v;
821    }
822
823    // repeated int64 device_persistent_tensor_alloc_ids = 6;
824
825
826    pub fn get_device_persistent_tensor_alloc_ids(&self) -> &[i64] {
827        &self.device_persistent_tensor_alloc_ids
828    }
829    pub fn clear_device_persistent_tensor_alloc_ids(&mut self) {
830        self.device_persistent_tensor_alloc_ids.clear();
831    }
832
833    // Param is passed by value, moved
834    pub fn set_device_persistent_tensor_alloc_ids(&mut self, v: ::std::vec::Vec<i64>) {
835        self.device_persistent_tensor_alloc_ids = v;
836    }
837
838    // Mutable pointer to the field.
839    pub fn mut_device_persistent_tensor_alloc_ids(&mut self) -> &mut ::std::vec::Vec<i64> {
840        &mut self.device_persistent_tensor_alloc_ids
841    }
842
843    // Take field
844    pub fn take_device_persistent_tensor_alloc_ids(&mut self) -> ::std::vec::Vec<i64> {
845        ::std::mem::replace(&mut self.device_persistent_tensor_alloc_ids, ::std::vec::Vec::new())
846    }
847}
848
849impl ::protobuf::Message for MemoryStats {
850    fn is_initialized(&self) -> bool {
851        true
852    }
853
854    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
855        while !is.eof()? {
856            let (field_number, wire_type) = is.read_tag_unpack()?;
857            match field_number {
858                1 => {
859                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
860                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
861                    }
862                    let tmp = is.read_int64()?;
863                    self.temp_memory_size = tmp;
864                },
865                3 => {
866                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
867                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
868                    }
869                    let tmp = is.read_int64()?;
870                    self.persistent_memory_size = tmp;
871                },
872                5 => {
873                    ::protobuf::rt::read_repeated_int64_into(wire_type, is, &mut self.persistent_tensor_alloc_ids)?;
874                },
875                2 => {
876                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
877                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
878                    }
879                    let tmp = is.read_int64()?;
880                    self.device_temp_memory_size = tmp;
881                },
882                4 => {
883                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
884                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
885                    }
886                    let tmp = is.read_int64()?;
887                    self.device_persistent_memory_size = tmp;
888                },
889                6 => {
890                    ::protobuf::rt::read_repeated_int64_into(wire_type, is, &mut self.device_persistent_tensor_alloc_ids)?;
891                },
892                _ => {
893                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
894                },
895            };
896        }
897        ::std::result::Result::Ok(())
898    }
899
900    // Compute sizes of nested messages
901    #[allow(unused_variables)]
902    fn compute_size(&self) -> u32 {
903        let mut my_size = 0;
904        if self.temp_memory_size != 0 {
905            my_size += ::protobuf::rt::value_size(1, self.temp_memory_size, ::protobuf::wire_format::WireTypeVarint);
906        }
907        if self.persistent_memory_size != 0 {
908            my_size += ::protobuf::rt::value_size(3, self.persistent_memory_size, ::protobuf::wire_format::WireTypeVarint);
909        }
910        for value in &self.persistent_tensor_alloc_ids {
911            my_size += ::protobuf::rt::value_size(5, *value, ::protobuf::wire_format::WireTypeVarint);
912        };
913        if self.device_temp_memory_size != 0 {
914            my_size += ::protobuf::rt::value_size(2, self.device_temp_memory_size, ::protobuf::wire_format::WireTypeVarint);
915        }
916        if self.device_persistent_memory_size != 0 {
917            my_size += ::protobuf::rt::value_size(4, self.device_persistent_memory_size, ::protobuf::wire_format::WireTypeVarint);
918        }
919        for value in &self.device_persistent_tensor_alloc_ids {
920            my_size += ::protobuf::rt::value_size(6, *value, ::protobuf::wire_format::WireTypeVarint);
921        };
922        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
923        self.cached_size.set(my_size);
924        my_size
925    }
926
927    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
928        if self.temp_memory_size != 0 {
929            os.write_int64(1, self.temp_memory_size)?;
930        }
931        if self.persistent_memory_size != 0 {
932            os.write_int64(3, self.persistent_memory_size)?;
933        }
934        for v in &self.persistent_tensor_alloc_ids {
935            os.write_int64(5, *v)?;
936        };
937        if self.device_temp_memory_size != 0 {
938            os.write_int64(2, self.device_temp_memory_size)?;
939        }
940        if self.device_persistent_memory_size != 0 {
941            os.write_int64(4, self.device_persistent_memory_size)?;
942        }
943        for v in &self.device_persistent_tensor_alloc_ids {
944            os.write_int64(6, *v)?;
945        };
946        os.write_unknown_fields(self.get_unknown_fields())?;
947        ::std::result::Result::Ok(())
948    }
949
950    fn get_cached_size(&self) -> u32 {
951        self.cached_size.get()
952    }
953
954    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
955        &self.unknown_fields
956    }
957
958    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
959        &mut self.unknown_fields
960    }
961
962    fn as_any(&self) -> &dyn (::std::any::Any) {
963        self as &dyn (::std::any::Any)
964    }
965    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
966        self as &mut dyn (::std::any::Any)
967    }
968    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
969        self
970    }
971
972    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
973        Self::descriptor_static()
974    }
975
976    fn new() -> MemoryStats {
977        MemoryStats::new()
978    }
979
980    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
981        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
982        descriptor.get(|| {
983            let mut fields = ::std::vec::Vec::new();
984            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
985                "temp_memory_size",
986                |m: &MemoryStats| { &m.temp_memory_size },
987                |m: &mut MemoryStats| { &mut m.temp_memory_size },
988            ));
989            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
990                "persistent_memory_size",
991                |m: &MemoryStats| { &m.persistent_memory_size },
992                |m: &mut MemoryStats| { &mut m.persistent_memory_size },
993            ));
994            fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
995                "persistent_tensor_alloc_ids",
996                |m: &MemoryStats| { &m.persistent_tensor_alloc_ids },
997                |m: &mut MemoryStats| { &mut m.persistent_tensor_alloc_ids },
998            ));
999            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1000                "device_temp_memory_size",
1001                |m: &MemoryStats| { &m.device_temp_memory_size },
1002                |m: &mut MemoryStats| { &mut m.device_temp_memory_size },
1003            ));
1004            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1005                "device_persistent_memory_size",
1006                |m: &MemoryStats| { &m.device_persistent_memory_size },
1007                |m: &mut MemoryStats| { &mut m.device_persistent_memory_size },
1008            ));
1009            fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1010                "device_persistent_tensor_alloc_ids",
1011                |m: &MemoryStats| { &m.device_persistent_tensor_alloc_ids },
1012                |m: &mut MemoryStats| { &mut m.device_persistent_tensor_alloc_ids },
1013            ));
1014            ::protobuf::reflect::MessageDescriptor::new_pb_name::<MemoryStats>(
1015                "MemoryStats",
1016                fields,
1017                file_descriptor_proto()
1018            )
1019        })
1020    }
1021
1022    fn default_instance() -> &'static MemoryStats {
1023        static instance: ::protobuf::rt::LazyV2<MemoryStats> = ::protobuf::rt::LazyV2::INIT;
1024        instance.get(MemoryStats::new)
1025    }
1026}
1027
1028impl ::protobuf::Clear for MemoryStats {
1029    fn clear(&mut self) {
1030        self.temp_memory_size = 0;
1031        self.persistent_memory_size = 0;
1032        self.persistent_tensor_alloc_ids.clear();
1033        self.device_temp_memory_size = 0;
1034        self.device_persistent_memory_size = 0;
1035        self.device_persistent_tensor_alloc_ids.clear();
1036        self.unknown_fields.clear();
1037    }
1038}
1039
1040impl ::std::fmt::Debug for MemoryStats {
1041    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1042        ::protobuf::text_format::fmt(self, f)
1043    }
1044}
1045
1046impl ::protobuf::reflect::ProtobufValue for MemoryStats {
1047    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1048        ::protobuf::reflect::ReflectValueRef::Message(self)
1049    }
1050}
1051
1052#[derive(PartialEq,Clone,Default)]
1053pub struct NodeExecStats {
1054    // message fields
1055    pub node_name: ::std::string::String,
1056    pub all_start_micros: i64,
1057    pub op_start_rel_micros: i64,
1058    pub op_end_rel_micros: i64,
1059    pub all_end_rel_micros: i64,
1060    pub memory: ::protobuf::RepeatedField<AllocatorMemoryUsed>,
1061    pub output: ::protobuf::RepeatedField<NodeOutput>,
1062    pub timeline_label: ::std::string::String,
1063    pub scheduled_micros: i64,
1064    pub thread_id: u32,
1065    pub memory_stats: ::protobuf::SingularPtrField<MemoryStats>,
1066    // special fields
1067    pub unknown_fields: ::protobuf::UnknownFields,
1068    pub cached_size: ::protobuf::CachedSize,
1069}
1070
1071impl<'a> ::std::default::Default for &'a NodeExecStats {
1072    fn default() -> &'a NodeExecStats {
1073        <NodeExecStats as ::protobuf::Message>::default_instance()
1074    }
1075}
1076
1077impl NodeExecStats {
1078    pub fn new() -> NodeExecStats {
1079        ::std::default::Default::default()
1080    }
1081
1082    // string node_name = 1;
1083
1084
1085    pub fn get_node_name(&self) -> &str {
1086        &self.node_name
1087    }
1088    pub fn clear_node_name(&mut self) {
1089        self.node_name.clear();
1090    }
1091
1092    // Param is passed by value, moved
1093    pub fn set_node_name(&mut self, v: ::std::string::String) {
1094        self.node_name = v;
1095    }
1096
1097    // Mutable pointer to the field.
1098    // If field is not initialized, it is initialized with default value first.
1099    pub fn mut_node_name(&mut self) -> &mut ::std::string::String {
1100        &mut self.node_name
1101    }
1102
1103    // Take field
1104    pub fn take_node_name(&mut self) -> ::std::string::String {
1105        ::std::mem::replace(&mut self.node_name, ::std::string::String::new())
1106    }
1107
1108    // int64 all_start_micros = 2;
1109
1110
1111    pub fn get_all_start_micros(&self) -> i64 {
1112        self.all_start_micros
1113    }
1114    pub fn clear_all_start_micros(&mut self) {
1115        self.all_start_micros = 0;
1116    }
1117
1118    // Param is passed by value, moved
1119    pub fn set_all_start_micros(&mut self, v: i64) {
1120        self.all_start_micros = v;
1121    }
1122
1123    // int64 op_start_rel_micros = 3;
1124
1125
1126    pub fn get_op_start_rel_micros(&self) -> i64 {
1127        self.op_start_rel_micros
1128    }
1129    pub fn clear_op_start_rel_micros(&mut self) {
1130        self.op_start_rel_micros = 0;
1131    }
1132
1133    // Param is passed by value, moved
1134    pub fn set_op_start_rel_micros(&mut self, v: i64) {
1135        self.op_start_rel_micros = v;
1136    }
1137
1138    // int64 op_end_rel_micros = 4;
1139
1140
1141    pub fn get_op_end_rel_micros(&self) -> i64 {
1142        self.op_end_rel_micros
1143    }
1144    pub fn clear_op_end_rel_micros(&mut self) {
1145        self.op_end_rel_micros = 0;
1146    }
1147
1148    // Param is passed by value, moved
1149    pub fn set_op_end_rel_micros(&mut self, v: i64) {
1150        self.op_end_rel_micros = v;
1151    }
1152
1153    // int64 all_end_rel_micros = 5;
1154
1155
1156    pub fn get_all_end_rel_micros(&self) -> i64 {
1157        self.all_end_rel_micros
1158    }
1159    pub fn clear_all_end_rel_micros(&mut self) {
1160        self.all_end_rel_micros = 0;
1161    }
1162
1163    // Param is passed by value, moved
1164    pub fn set_all_end_rel_micros(&mut self, v: i64) {
1165        self.all_end_rel_micros = v;
1166    }
1167
1168    // repeated .tensorboardrs.AllocatorMemoryUsed memory = 6;
1169
1170
1171    pub fn get_memory(&self) -> &[AllocatorMemoryUsed] {
1172        &self.memory
1173    }
1174    pub fn clear_memory(&mut self) {
1175        self.memory.clear();
1176    }
1177
1178    // Param is passed by value, moved
1179    pub fn set_memory(&mut self, v: ::protobuf::RepeatedField<AllocatorMemoryUsed>) {
1180        self.memory = v;
1181    }
1182
1183    // Mutable pointer to the field.
1184    pub fn mut_memory(&mut self) -> &mut ::protobuf::RepeatedField<AllocatorMemoryUsed> {
1185        &mut self.memory
1186    }
1187
1188    // Take field
1189    pub fn take_memory(&mut self) -> ::protobuf::RepeatedField<AllocatorMemoryUsed> {
1190        ::std::mem::replace(&mut self.memory, ::protobuf::RepeatedField::new())
1191    }
1192
1193    // repeated .tensorboardrs.NodeOutput output = 7;
1194
1195
1196    pub fn get_output(&self) -> &[NodeOutput] {
1197        &self.output
1198    }
1199    pub fn clear_output(&mut self) {
1200        self.output.clear();
1201    }
1202
1203    // Param is passed by value, moved
1204    pub fn set_output(&mut self, v: ::protobuf::RepeatedField<NodeOutput>) {
1205        self.output = v;
1206    }
1207
1208    // Mutable pointer to the field.
1209    pub fn mut_output(&mut self) -> &mut ::protobuf::RepeatedField<NodeOutput> {
1210        &mut self.output
1211    }
1212
1213    // Take field
1214    pub fn take_output(&mut self) -> ::protobuf::RepeatedField<NodeOutput> {
1215        ::std::mem::replace(&mut self.output, ::protobuf::RepeatedField::new())
1216    }
1217
1218    // string timeline_label = 8;
1219
1220
1221    pub fn get_timeline_label(&self) -> &str {
1222        &self.timeline_label
1223    }
1224    pub fn clear_timeline_label(&mut self) {
1225        self.timeline_label.clear();
1226    }
1227
1228    // Param is passed by value, moved
1229    pub fn set_timeline_label(&mut self, v: ::std::string::String) {
1230        self.timeline_label = v;
1231    }
1232
1233    // Mutable pointer to the field.
1234    // If field is not initialized, it is initialized with default value first.
1235    pub fn mut_timeline_label(&mut self) -> &mut ::std::string::String {
1236        &mut self.timeline_label
1237    }
1238
1239    // Take field
1240    pub fn take_timeline_label(&mut self) -> ::std::string::String {
1241        ::std::mem::replace(&mut self.timeline_label, ::std::string::String::new())
1242    }
1243
1244    // int64 scheduled_micros = 9;
1245
1246
1247    pub fn get_scheduled_micros(&self) -> i64 {
1248        self.scheduled_micros
1249    }
1250    pub fn clear_scheduled_micros(&mut self) {
1251        self.scheduled_micros = 0;
1252    }
1253
1254    // Param is passed by value, moved
1255    pub fn set_scheduled_micros(&mut self, v: i64) {
1256        self.scheduled_micros = v;
1257    }
1258
1259    // uint32 thread_id = 10;
1260
1261
1262    pub fn get_thread_id(&self) -> u32 {
1263        self.thread_id
1264    }
1265    pub fn clear_thread_id(&mut self) {
1266        self.thread_id = 0;
1267    }
1268
1269    // Param is passed by value, moved
1270    pub fn set_thread_id(&mut self, v: u32) {
1271        self.thread_id = v;
1272    }
1273
1274    // .tensorboardrs.MemoryStats memory_stats = 12;
1275
1276
1277    pub fn get_memory_stats(&self) -> &MemoryStats {
1278        self.memory_stats.as_ref().unwrap_or_else(|| <MemoryStats as ::protobuf::Message>::default_instance())
1279    }
1280    pub fn clear_memory_stats(&mut self) {
1281        self.memory_stats.clear();
1282    }
1283
1284    pub fn has_memory_stats(&self) -> bool {
1285        self.memory_stats.is_some()
1286    }
1287
1288    // Param is passed by value, moved
1289    pub fn set_memory_stats(&mut self, v: MemoryStats) {
1290        self.memory_stats = ::protobuf::SingularPtrField::some(v);
1291    }
1292
1293    // Mutable pointer to the field.
1294    // If field is not initialized, it is initialized with default value first.
1295    pub fn mut_memory_stats(&mut self) -> &mut MemoryStats {
1296        if self.memory_stats.is_none() {
1297            self.memory_stats.set_default();
1298        }
1299        self.memory_stats.as_mut().unwrap()
1300    }
1301
1302    // Take field
1303    pub fn take_memory_stats(&mut self) -> MemoryStats {
1304        self.memory_stats.take().unwrap_or_else(|| MemoryStats::new())
1305    }
1306}
1307
1308impl ::protobuf::Message for NodeExecStats {
1309    fn is_initialized(&self) -> bool {
1310        for v in &self.memory {
1311            if !v.is_initialized() {
1312                return false;
1313            }
1314        };
1315        for v in &self.output {
1316            if !v.is_initialized() {
1317                return false;
1318            }
1319        };
1320        for v in &self.memory_stats {
1321            if !v.is_initialized() {
1322                return false;
1323            }
1324        };
1325        true
1326    }
1327
1328    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1329        while !is.eof()? {
1330            let (field_number, wire_type) = is.read_tag_unpack()?;
1331            match field_number {
1332                1 => {
1333                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.node_name)?;
1334                },
1335                2 => {
1336                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1337                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1338                    }
1339                    let tmp = is.read_int64()?;
1340                    self.all_start_micros = tmp;
1341                },
1342                3 => {
1343                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1344                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1345                    }
1346                    let tmp = is.read_int64()?;
1347                    self.op_start_rel_micros = tmp;
1348                },
1349                4 => {
1350                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1351                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1352                    }
1353                    let tmp = is.read_int64()?;
1354                    self.op_end_rel_micros = tmp;
1355                },
1356                5 => {
1357                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1358                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1359                    }
1360                    let tmp = is.read_int64()?;
1361                    self.all_end_rel_micros = tmp;
1362                },
1363                6 => {
1364                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.memory)?;
1365                },
1366                7 => {
1367                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.output)?;
1368                },
1369                8 => {
1370                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.timeline_label)?;
1371                },
1372                9 => {
1373                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1374                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1375                    }
1376                    let tmp = is.read_int64()?;
1377                    self.scheduled_micros = tmp;
1378                },
1379                10 => {
1380                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1381                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1382                    }
1383                    let tmp = is.read_uint32()?;
1384                    self.thread_id = tmp;
1385                },
1386                12 => {
1387                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.memory_stats)?;
1388                },
1389                _ => {
1390                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1391                },
1392            };
1393        }
1394        ::std::result::Result::Ok(())
1395    }
1396
1397    // Compute sizes of nested messages
1398    #[allow(unused_variables)]
1399    fn compute_size(&self) -> u32 {
1400        let mut my_size = 0;
1401        if !self.node_name.is_empty() {
1402            my_size += ::protobuf::rt::string_size(1, &self.node_name);
1403        }
1404        if self.all_start_micros != 0 {
1405            my_size += ::protobuf::rt::value_size(2, self.all_start_micros, ::protobuf::wire_format::WireTypeVarint);
1406        }
1407        if self.op_start_rel_micros != 0 {
1408            my_size += ::protobuf::rt::value_size(3, self.op_start_rel_micros, ::protobuf::wire_format::WireTypeVarint);
1409        }
1410        if self.op_end_rel_micros != 0 {
1411            my_size += ::protobuf::rt::value_size(4, self.op_end_rel_micros, ::protobuf::wire_format::WireTypeVarint);
1412        }
1413        if self.all_end_rel_micros != 0 {
1414            my_size += ::protobuf::rt::value_size(5, self.all_end_rel_micros, ::protobuf::wire_format::WireTypeVarint);
1415        }
1416        for value in &self.memory {
1417            let len = value.compute_size();
1418            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1419        };
1420        for value in &self.output {
1421            let len = value.compute_size();
1422            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1423        };
1424        if !self.timeline_label.is_empty() {
1425            my_size += ::protobuf::rt::string_size(8, &self.timeline_label);
1426        }
1427        if self.scheduled_micros != 0 {
1428            my_size += ::protobuf::rt::value_size(9, self.scheduled_micros, ::protobuf::wire_format::WireTypeVarint);
1429        }
1430        if self.thread_id != 0 {
1431            my_size += ::protobuf::rt::value_size(10, self.thread_id, ::protobuf::wire_format::WireTypeVarint);
1432        }
1433        if let Some(ref v) = self.memory_stats.as_ref() {
1434            let len = v.compute_size();
1435            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1436        }
1437        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1438        self.cached_size.set(my_size);
1439        my_size
1440    }
1441
1442    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1443        if !self.node_name.is_empty() {
1444            os.write_string(1, &self.node_name)?;
1445        }
1446        if self.all_start_micros != 0 {
1447            os.write_int64(2, self.all_start_micros)?;
1448        }
1449        if self.op_start_rel_micros != 0 {
1450            os.write_int64(3, self.op_start_rel_micros)?;
1451        }
1452        if self.op_end_rel_micros != 0 {
1453            os.write_int64(4, self.op_end_rel_micros)?;
1454        }
1455        if self.all_end_rel_micros != 0 {
1456            os.write_int64(5, self.all_end_rel_micros)?;
1457        }
1458        for v in &self.memory {
1459            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1460            os.write_raw_varint32(v.get_cached_size())?;
1461            v.write_to_with_cached_sizes(os)?;
1462        };
1463        for v in &self.output {
1464            os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1465            os.write_raw_varint32(v.get_cached_size())?;
1466            v.write_to_with_cached_sizes(os)?;
1467        };
1468        if !self.timeline_label.is_empty() {
1469            os.write_string(8, &self.timeline_label)?;
1470        }
1471        if self.scheduled_micros != 0 {
1472            os.write_int64(9, self.scheduled_micros)?;
1473        }
1474        if self.thread_id != 0 {
1475            os.write_uint32(10, self.thread_id)?;
1476        }
1477        if let Some(ref v) = self.memory_stats.as_ref() {
1478            os.write_tag(12, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1479            os.write_raw_varint32(v.get_cached_size())?;
1480            v.write_to_with_cached_sizes(os)?;
1481        }
1482        os.write_unknown_fields(self.get_unknown_fields())?;
1483        ::std::result::Result::Ok(())
1484    }
1485
1486    fn get_cached_size(&self) -> u32 {
1487        self.cached_size.get()
1488    }
1489
1490    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1491        &self.unknown_fields
1492    }
1493
1494    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1495        &mut self.unknown_fields
1496    }
1497
1498    fn as_any(&self) -> &dyn (::std::any::Any) {
1499        self as &dyn (::std::any::Any)
1500    }
1501    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1502        self as &mut dyn (::std::any::Any)
1503    }
1504    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1505        self
1506    }
1507
1508    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1509        Self::descriptor_static()
1510    }
1511
1512    fn new() -> NodeExecStats {
1513        NodeExecStats::new()
1514    }
1515
1516    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1517        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1518        descriptor.get(|| {
1519            let mut fields = ::std::vec::Vec::new();
1520            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1521                "node_name",
1522                |m: &NodeExecStats| { &m.node_name },
1523                |m: &mut NodeExecStats| { &mut m.node_name },
1524            ));
1525            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1526                "all_start_micros",
1527                |m: &NodeExecStats| { &m.all_start_micros },
1528                |m: &mut NodeExecStats| { &mut m.all_start_micros },
1529            ));
1530            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1531                "op_start_rel_micros",
1532                |m: &NodeExecStats| { &m.op_start_rel_micros },
1533                |m: &mut NodeExecStats| { &mut m.op_start_rel_micros },
1534            ));
1535            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1536                "op_end_rel_micros",
1537                |m: &NodeExecStats| { &m.op_end_rel_micros },
1538                |m: &mut NodeExecStats| { &mut m.op_end_rel_micros },
1539            ));
1540            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1541                "all_end_rel_micros",
1542                |m: &NodeExecStats| { &m.all_end_rel_micros },
1543                |m: &mut NodeExecStats| { &mut m.all_end_rel_micros },
1544            ));
1545            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AllocatorMemoryUsed>>(
1546                "memory",
1547                |m: &NodeExecStats| { &m.memory },
1548                |m: &mut NodeExecStats| { &mut m.memory },
1549            ));
1550            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<NodeOutput>>(
1551                "output",
1552                |m: &NodeExecStats| { &m.output },
1553                |m: &mut NodeExecStats| { &mut m.output },
1554            ));
1555            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1556                "timeline_label",
1557                |m: &NodeExecStats| { &m.timeline_label },
1558                |m: &mut NodeExecStats| { &mut m.timeline_label },
1559            ));
1560            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1561                "scheduled_micros",
1562                |m: &NodeExecStats| { &m.scheduled_micros },
1563                |m: &mut NodeExecStats| { &mut m.scheduled_micros },
1564            ));
1565            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
1566                "thread_id",
1567                |m: &NodeExecStats| { &m.thread_id },
1568                |m: &mut NodeExecStats| { &mut m.thread_id },
1569            ));
1570            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MemoryStats>>(
1571                "memory_stats",
1572                |m: &NodeExecStats| { &m.memory_stats },
1573                |m: &mut NodeExecStats| { &mut m.memory_stats },
1574            ));
1575            ::protobuf::reflect::MessageDescriptor::new_pb_name::<NodeExecStats>(
1576                "NodeExecStats",
1577                fields,
1578                file_descriptor_proto()
1579            )
1580        })
1581    }
1582
1583    fn default_instance() -> &'static NodeExecStats {
1584        static instance: ::protobuf::rt::LazyV2<NodeExecStats> = ::protobuf::rt::LazyV2::INIT;
1585        instance.get(NodeExecStats::new)
1586    }
1587}
1588
1589impl ::protobuf::Clear for NodeExecStats {
1590    fn clear(&mut self) {
1591        self.node_name.clear();
1592        self.all_start_micros = 0;
1593        self.op_start_rel_micros = 0;
1594        self.op_end_rel_micros = 0;
1595        self.all_end_rel_micros = 0;
1596        self.memory.clear();
1597        self.output.clear();
1598        self.timeline_label.clear();
1599        self.scheduled_micros = 0;
1600        self.thread_id = 0;
1601        self.memory_stats.clear();
1602        self.unknown_fields.clear();
1603    }
1604}
1605
1606impl ::std::fmt::Debug for NodeExecStats {
1607    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1608        ::protobuf::text_format::fmt(self, f)
1609    }
1610}
1611
1612impl ::protobuf::reflect::ProtobufValue for NodeExecStats {
1613    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1614        ::protobuf::reflect::ReflectValueRef::Message(self)
1615    }
1616}
1617
1618#[derive(PartialEq,Clone,Default)]
1619pub struct DeviceStepStats {
1620    // message fields
1621    pub device: ::std::string::String,
1622    pub node_stats: ::protobuf::RepeatedField<NodeExecStats>,
1623    // special fields
1624    pub unknown_fields: ::protobuf::UnknownFields,
1625    pub cached_size: ::protobuf::CachedSize,
1626}
1627
1628impl<'a> ::std::default::Default for &'a DeviceStepStats {
1629    fn default() -> &'a DeviceStepStats {
1630        <DeviceStepStats as ::protobuf::Message>::default_instance()
1631    }
1632}
1633
1634impl DeviceStepStats {
1635    pub fn new() -> DeviceStepStats {
1636        ::std::default::Default::default()
1637    }
1638
1639    // string device = 1;
1640
1641
1642    pub fn get_device(&self) -> &str {
1643        &self.device
1644    }
1645    pub fn clear_device(&mut self) {
1646        self.device.clear();
1647    }
1648
1649    // Param is passed by value, moved
1650    pub fn set_device(&mut self, v: ::std::string::String) {
1651        self.device = v;
1652    }
1653
1654    // Mutable pointer to the field.
1655    // If field is not initialized, it is initialized with default value first.
1656    pub fn mut_device(&mut self) -> &mut ::std::string::String {
1657        &mut self.device
1658    }
1659
1660    // Take field
1661    pub fn take_device(&mut self) -> ::std::string::String {
1662        ::std::mem::replace(&mut self.device, ::std::string::String::new())
1663    }
1664
1665    // repeated .tensorboardrs.NodeExecStats node_stats = 2;
1666
1667
1668    pub fn get_node_stats(&self) -> &[NodeExecStats] {
1669        &self.node_stats
1670    }
1671    pub fn clear_node_stats(&mut self) {
1672        self.node_stats.clear();
1673    }
1674
1675    // Param is passed by value, moved
1676    pub fn set_node_stats(&mut self, v: ::protobuf::RepeatedField<NodeExecStats>) {
1677        self.node_stats = v;
1678    }
1679
1680    // Mutable pointer to the field.
1681    pub fn mut_node_stats(&mut self) -> &mut ::protobuf::RepeatedField<NodeExecStats> {
1682        &mut self.node_stats
1683    }
1684
1685    // Take field
1686    pub fn take_node_stats(&mut self) -> ::protobuf::RepeatedField<NodeExecStats> {
1687        ::std::mem::replace(&mut self.node_stats, ::protobuf::RepeatedField::new())
1688    }
1689}
1690
1691impl ::protobuf::Message for DeviceStepStats {
1692    fn is_initialized(&self) -> bool {
1693        for v in &self.node_stats {
1694            if !v.is_initialized() {
1695                return false;
1696            }
1697        };
1698        true
1699    }
1700
1701    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1702        while !is.eof()? {
1703            let (field_number, wire_type) = is.read_tag_unpack()?;
1704            match field_number {
1705                1 => {
1706                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.device)?;
1707                },
1708                2 => {
1709                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.node_stats)?;
1710                },
1711                _ => {
1712                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1713                },
1714            };
1715        }
1716        ::std::result::Result::Ok(())
1717    }
1718
1719    // Compute sizes of nested messages
1720    #[allow(unused_variables)]
1721    fn compute_size(&self) -> u32 {
1722        let mut my_size = 0;
1723        if !self.device.is_empty() {
1724            my_size += ::protobuf::rt::string_size(1, &self.device);
1725        }
1726        for value in &self.node_stats {
1727            let len = value.compute_size();
1728            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1729        };
1730        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1731        self.cached_size.set(my_size);
1732        my_size
1733    }
1734
1735    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1736        if !self.device.is_empty() {
1737            os.write_string(1, &self.device)?;
1738        }
1739        for v in &self.node_stats {
1740            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1741            os.write_raw_varint32(v.get_cached_size())?;
1742            v.write_to_with_cached_sizes(os)?;
1743        };
1744        os.write_unknown_fields(self.get_unknown_fields())?;
1745        ::std::result::Result::Ok(())
1746    }
1747
1748    fn get_cached_size(&self) -> u32 {
1749        self.cached_size.get()
1750    }
1751
1752    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1753        &self.unknown_fields
1754    }
1755
1756    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1757        &mut self.unknown_fields
1758    }
1759
1760    fn as_any(&self) -> &dyn (::std::any::Any) {
1761        self as &dyn (::std::any::Any)
1762    }
1763    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1764        self as &mut dyn (::std::any::Any)
1765    }
1766    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1767        self
1768    }
1769
1770    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1771        Self::descriptor_static()
1772    }
1773
1774    fn new() -> DeviceStepStats {
1775        DeviceStepStats::new()
1776    }
1777
1778    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1779        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1780        descriptor.get(|| {
1781            let mut fields = ::std::vec::Vec::new();
1782            fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1783                "device",
1784                |m: &DeviceStepStats| { &m.device },
1785                |m: &mut DeviceStepStats| { &mut m.device },
1786            ));
1787            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<NodeExecStats>>(
1788                "node_stats",
1789                |m: &DeviceStepStats| { &m.node_stats },
1790                |m: &mut DeviceStepStats| { &mut m.node_stats },
1791            ));
1792            ::protobuf::reflect::MessageDescriptor::new_pb_name::<DeviceStepStats>(
1793                "DeviceStepStats",
1794                fields,
1795                file_descriptor_proto()
1796            )
1797        })
1798    }
1799
1800    fn default_instance() -> &'static DeviceStepStats {
1801        static instance: ::protobuf::rt::LazyV2<DeviceStepStats> = ::protobuf::rt::LazyV2::INIT;
1802        instance.get(DeviceStepStats::new)
1803    }
1804}
1805
1806impl ::protobuf::Clear for DeviceStepStats {
1807    fn clear(&mut self) {
1808        self.device.clear();
1809        self.node_stats.clear();
1810        self.unknown_fields.clear();
1811    }
1812}
1813
1814impl ::std::fmt::Debug for DeviceStepStats {
1815    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1816        ::protobuf::text_format::fmt(self, f)
1817    }
1818}
1819
1820impl ::protobuf::reflect::ProtobufValue for DeviceStepStats {
1821    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1822        ::protobuf::reflect::ReflectValueRef::Message(self)
1823    }
1824}
1825
1826#[derive(PartialEq,Clone,Default)]
1827pub struct StepStats {
1828    // message fields
1829    pub dev_stats: ::protobuf::RepeatedField<DeviceStepStats>,
1830    // special fields
1831    pub unknown_fields: ::protobuf::UnknownFields,
1832    pub cached_size: ::protobuf::CachedSize,
1833}
1834
1835impl<'a> ::std::default::Default for &'a StepStats {
1836    fn default() -> &'a StepStats {
1837        <StepStats as ::protobuf::Message>::default_instance()
1838    }
1839}
1840
1841impl StepStats {
1842    pub fn new() -> StepStats {
1843        ::std::default::Default::default()
1844    }
1845
1846    // repeated .tensorboardrs.DeviceStepStats dev_stats = 1;
1847
1848
1849    pub fn get_dev_stats(&self) -> &[DeviceStepStats] {
1850        &self.dev_stats
1851    }
1852    pub fn clear_dev_stats(&mut self) {
1853        self.dev_stats.clear();
1854    }
1855
1856    // Param is passed by value, moved
1857    pub fn set_dev_stats(&mut self, v: ::protobuf::RepeatedField<DeviceStepStats>) {
1858        self.dev_stats = v;
1859    }
1860
1861    // Mutable pointer to the field.
1862    pub fn mut_dev_stats(&mut self) -> &mut ::protobuf::RepeatedField<DeviceStepStats> {
1863        &mut self.dev_stats
1864    }
1865
1866    // Take field
1867    pub fn take_dev_stats(&mut self) -> ::protobuf::RepeatedField<DeviceStepStats> {
1868        ::std::mem::replace(&mut self.dev_stats, ::protobuf::RepeatedField::new())
1869    }
1870}
1871
1872impl ::protobuf::Message for StepStats {
1873    fn is_initialized(&self) -> bool {
1874        for v in &self.dev_stats {
1875            if !v.is_initialized() {
1876                return false;
1877            }
1878        };
1879        true
1880    }
1881
1882    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1883        while !is.eof()? {
1884            let (field_number, wire_type) = is.read_tag_unpack()?;
1885            match field_number {
1886                1 => {
1887                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.dev_stats)?;
1888                },
1889                _ => {
1890                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1891                },
1892            };
1893        }
1894        ::std::result::Result::Ok(())
1895    }
1896
1897    // Compute sizes of nested messages
1898    #[allow(unused_variables)]
1899    fn compute_size(&self) -> u32 {
1900        let mut my_size = 0;
1901        for value in &self.dev_stats {
1902            let len = value.compute_size();
1903            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1904        };
1905        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1906        self.cached_size.set(my_size);
1907        my_size
1908    }
1909
1910    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1911        for v in &self.dev_stats {
1912            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1913            os.write_raw_varint32(v.get_cached_size())?;
1914            v.write_to_with_cached_sizes(os)?;
1915        };
1916        os.write_unknown_fields(self.get_unknown_fields())?;
1917        ::std::result::Result::Ok(())
1918    }
1919
1920    fn get_cached_size(&self) -> u32 {
1921        self.cached_size.get()
1922    }
1923
1924    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1925        &self.unknown_fields
1926    }
1927
1928    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1929        &mut self.unknown_fields
1930    }
1931
1932    fn as_any(&self) -> &dyn (::std::any::Any) {
1933        self as &dyn (::std::any::Any)
1934    }
1935    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1936        self as &mut dyn (::std::any::Any)
1937    }
1938    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1939        self
1940    }
1941
1942    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1943        Self::descriptor_static()
1944    }
1945
1946    fn new() -> StepStats {
1947        StepStats::new()
1948    }
1949
1950    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1951        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1952        descriptor.get(|| {
1953            let mut fields = ::std::vec::Vec::new();
1954            fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<DeviceStepStats>>(
1955                "dev_stats",
1956                |m: &StepStats| { &m.dev_stats },
1957                |m: &mut StepStats| { &mut m.dev_stats },
1958            ));
1959            ::protobuf::reflect::MessageDescriptor::new_pb_name::<StepStats>(
1960                "StepStats",
1961                fields,
1962                file_descriptor_proto()
1963            )
1964        })
1965    }
1966
1967    fn default_instance() -> &'static StepStats {
1968        static instance: ::protobuf::rt::LazyV2<StepStats> = ::protobuf::rt::LazyV2::INIT;
1969        instance.get(StepStats::new)
1970    }
1971}
1972
1973impl ::protobuf::Clear for StepStats {
1974    fn clear(&mut self) {
1975        self.dev_stats.clear();
1976        self.unknown_fields.clear();
1977    }
1978}
1979
1980impl ::std::fmt::Debug for StepStats {
1981    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1982        ::protobuf::text_format::fmt(self, f)
1983    }
1984}
1985
1986impl ::protobuf::reflect::ProtobufValue for StepStats {
1987    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1988        ::protobuf::reflect::ReflectValueRef::Message(self)
1989    }
1990}
1991
1992#[derive(PartialEq,Clone,Default)]
1993pub struct RunMetadata {
1994    // message fields
1995    pub step_stats: ::protobuf::SingularPtrField<StepStats>,
1996    // special fields
1997    pub unknown_fields: ::protobuf::UnknownFields,
1998    pub cached_size: ::protobuf::CachedSize,
1999}
2000
2001impl<'a> ::std::default::Default for &'a RunMetadata {
2002    fn default() -> &'a RunMetadata {
2003        <RunMetadata as ::protobuf::Message>::default_instance()
2004    }
2005}
2006
2007impl RunMetadata {
2008    pub fn new() -> RunMetadata {
2009        ::std::default::Default::default()
2010    }
2011
2012    // .tensorboardrs.StepStats step_stats = 1;
2013
2014
2015    pub fn get_step_stats(&self) -> &StepStats {
2016        self.step_stats.as_ref().unwrap_or_else(|| <StepStats as ::protobuf::Message>::default_instance())
2017    }
2018    pub fn clear_step_stats(&mut self) {
2019        self.step_stats.clear();
2020    }
2021
2022    pub fn has_step_stats(&self) -> bool {
2023        self.step_stats.is_some()
2024    }
2025
2026    // Param is passed by value, moved
2027    pub fn set_step_stats(&mut self, v: StepStats) {
2028        self.step_stats = ::protobuf::SingularPtrField::some(v);
2029    }
2030
2031    // Mutable pointer to the field.
2032    // If field is not initialized, it is initialized with default value first.
2033    pub fn mut_step_stats(&mut self) -> &mut StepStats {
2034        if self.step_stats.is_none() {
2035            self.step_stats.set_default();
2036        }
2037        self.step_stats.as_mut().unwrap()
2038    }
2039
2040    // Take field
2041    pub fn take_step_stats(&mut self) -> StepStats {
2042        self.step_stats.take().unwrap_or_else(|| StepStats::new())
2043    }
2044}
2045
2046impl ::protobuf::Message for RunMetadata {
2047    fn is_initialized(&self) -> bool {
2048        for v in &self.step_stats {
2049            if !v.is_initialized() {
2050                return false;
2051            }
2052        };
2053        true
2054    }
2055
2056    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2057        while !is.eof()? {
2058            let (field_number, wire_type) = is.read_tag_unpack()?;
2059            match field_number {
2060                1 => {
2061                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.step_stats)?;
2062                },
2063                _ => {
2064                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2065                },
2066            };
2067        }
2068        ::std::result::Result::Ok(())
2069    }
2070
2071    // Compute sizes of nested messages
2072    #[allow(unused_variables)]
2073    fn compute_size(&self) -> u32 {
2074        let mut my_size = 0;
2075        if let Some(ref v) = self.step_stats.as_ref() {
2076            let len = v.compute_size();
2077            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2078        }
2079        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2080        self.cached_size.set(my_size);
2081        my_size
2082    }
2083
2084    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2085        if let Some(ref v) = self.step_stats.as_ref() {
2086            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2087            os.write_raw_varint32(v.get_cached_size())?;
2088            v.write_to_with_cached_sizes(os)?;
2089        }
2090        os.write_unknown_fields(self.get_unknown_fields())?;
2091        ::std::result::Result::Ok(())
2092    }
2093
2094    fn get_cached_size(&self) -> u32 {
2095        self.cached_size.get()
2096    }
2097
2098    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2099        &self.unknown_fields
2100    }
2101
2102    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2103        &mut self.unknown_fields
2104    }
2105
2106    fn as_any(&self) -> &dyn (::std::any::Any) {
2107        self as &dyn (::std::any::Any)
2108    }
2109    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2110        self as &mut dyn (::std::any::Any)
2111    }
2112    fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2113        self
2114    }
2115
2116    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2117        Self::descriptor_static()
2118    }
2119
2120    fn new() -> RunMetadata {
2121        RunMetadata::new()
2122    }
2123
2124    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2125        static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
2126        descriptor.get(|| {
2127            let mut fields = ::std::vec::Vec::new();
2128            fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<StepStats>>(
2129                "step_stats",
2130                |m: &RunMetadata| { &m.step_stats },
2131                |m: &mut RunMetadata| { &mut m.step_stats },
2132            ));
2133            ::protobuf::reflect::MessageDescriptor::new_pb_name::<RunMetadata>(
2134                "RunMetadata",
2135                fields,
2136                file_descriptor_proto()
2137            )
2138        })
2139    }
2140
2141    fn default_instance() -> &'static RunMetadata {
2142        static instance: ::protobuf::rt::LazyV2<RunMetadata> = ::protobuf::rt::LazyV2::INIT;
2143        instance.get(RunMetadata::new)
2144    }
2145}
2146
2147impl ::protobuf::Clear for RunMetadata {
2148    fn clear(&mut self) {
2149        self.step_stats.clear();
2150        self.unknown_fields.clear();
2151    }
2152}
2153
2154impl ::std::fmt::Debug for RunMetadata {
2155    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2156        ::protobuf::text_format::fmt(self, f)
2157    }
2158}
2159
2160impl ::protobuf::reflect::ProtobufValue for RunMetadata {
2161    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2162        ::protobuf::reflect::ReflectValueRef::Message(self)
2163    }
2164}
2165
2166static file_descriptor_proto_data: &'static [u8] = b"\
2167    \n\x14src/step_stats.proto\x12\rtensorboardrs\"V\n\x10AllocationRecord\
2168    \x12!\n\x0calloc_micros\x18\x01\x20\x01(\x03R\x0ballocMicros\x12\x1f\n\
2169    \x0balloc_bytes\x18\x02\x20\x01(\x03R\nallocBytes\"\xa0\x02\n\x13Allocat\
2170    orMemoryUsed\x12%\n\x0eallocator_name\x18\x01\x20\x01(\tR\rallocatorName\
2171    \x12\x1f\n\x0btotal_bytes\x18\x02\x20\x01(\x03R\ntotalBytes\x12\x1d\n\np\
2172    eak_bytes\x18\x03\x20\x01(\x03R\tpeakBytes\x12\x1d\n\nlive_bytes\x18\x04\
2173    \x20\x01(\x03R\tliveBytes\x12N\n\x12allocation_records\x18\x06\x20\x03(\
2174    \x0b2\x1f.tensorboardrs.AllocationRecordR\x11allocationRecords\x123\n\
2175    \x16allocator_bytes_in_use\x18\x05\x20\x01(\x03R\x13allocatorBytesInUse\
2176    \"\x20\n\nNodeOutput\x12\x12\n\x04slot\x18\x01\x20\x01(\x05R\x04slot\"\
2177    \xfe\x02\n\x0bMemoryStats\x12(\n\x10temp_memory_size\x18\x01\x20\x01(\
2178    \x03R\x0etempMemorySize\x124\n\x16persistent_memory_size\x18\x03\x20\x01\
2179    (\x03R\x14persistentMemorySize\x12=\n\x1bpersistent_tensor_alloc_ids\x18\
2180    \x05\x20\x03(\x03R\x18persistentTensorAllocIds\x129\n\x17device_temp_mem\
2181    ory_size\x18\x02\x20\x01(\x03R\x14deviceTempMemorySizeB\x02\x18\x01\x12E\
2182    \n\x1ddevice_persistent_memory_size\x18\x04\x20\x01(\x03R\x1adevicePersi\
2183    stentMemorySizeB\x02\x18\x01\x12N\n\"device_persistent_tensor_alloc_ids\
2184    \x18\x06\x20\x03(\x03R\x1edevicePersistentTensorAllocIdsB\x02\x18\x01\"\
2185    \xfa\x03\n\rNodeExecStats\x12\x1b\n\tnode_name\x18\x01\x20\x01(\tR\x08no\
2186    deName\x12(\n\x10all_start_micros\x18\x02\x20\x01(\x03R\x0eallStartMicro\
2187    s\x12-\n\x13op_start_rel_micros\x18\x03\x20\x01(\x03R\x10opStartRelMicro\
2188    s\x12)\n\x11op_end_rel_micros\x18\x04\x20\x01(\x03R\x0eopEndRelMicros\
2189    \x12+\n\x12all_end_rel_micros\x18\x05\x20\x01(\x03R\x0fallEndRelMicros\
2190    \x12:\n\x06memory\x18\x06\x20\x03(\x0b2\".tensorboardrs.AllocatorMemoryU\
2191    sedR\x06memory\x121\n\x06output\x18\x07\x20\x03(\x0b2\x19.tensorboardrs.\
2192    NodeOutputR\x06output\x12%\n\x0etimeline_label\x18\x08\x20\x01(\tR\rtime\
2193    lineLabel\x12)\n\x10scheduled_micros\x18\t\x20\x01(\x03R\x0fscheduledMic\
2194    ros\x12\x1b\n\tthread_id\x18\n\x20\x01(\rR\x08threadId\x12=\n\x0cmemory_\
2195    stats\x18\x0c\x20\x01(\x0b2\x1a.tensorboardrs.MemoryStatsR\x0bmemoryStat\
2196    s\"f\n\x0fDeviceStepStats\x12\x16\n\x06device\x18\x01\x20\x01(\tR\x06dev\
2197    ice\x12;\n\nnode_stats\x18\x02\x20\x03(\x0b2\x1c.tensorboardrs.NodeExecS\
2198    tatsR\tnodeStats\"H\n\tStepStats\x12;\n\tdev_stats\x18\x01\x20\x03(\x0b2\
2199    \x1e.tensorboardrs.DeviceStepStatsR\x08devStats\"F\n\x0bRunMetadata\x127\
2200    \n\nstep_stats\x18\x01\x20\x01(\x0b2\x18.tensorboardrs.StepStatsR\tstepS\
2201    tatsBo\n\x18org.tensorflow.frameworkB\x0fStepStatsProtosP\x01Z=github.co\
2202    m/tensorflow/tensorflow/tensorflow/go/core/framework\xf8\x01\x01J\xf7\
2203    \x1a\n\x06\x12\x04\0\0^\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\x08\n\x01\
2204    \x02\x12\x03\x02\0\x16\n\x08\n\x01\x08\x12\x03\x03\0\x1f\n\t\n\x02\x08\
2205    \x1f\x12\x03\x03\0\x1f\n\x08\n\x01\x08\x12\x03\x04\00\n\t\n\x02\x08\x08\
2206    \x12\x03\x04\00\n\x08\n\x01\x08\x12\x03\x05\0\"\n\t\n\x02\x08\n\x12\x03\
2207    \x05\0\"\n\x08\n\x01\x08\x12\x03\x06\01\n\t\n\x02\x08\x01\x12\x03\x06\01\
2208    \n\x08\n\x01\x08\x12\x03\x07\0T\n\x89\x01\n\x02\x08\x0b\x12\x03\x07\0T\"\
2209    ~import\x20\"tensorflow/core/framework/allocation_description.proto\";\n\
2210    import\x20\"tensorflow/core/framework/tensor_description.proto\";\n\nO\n\
2211    \x02\x04\0\x12\x04\x0c\0\x11\x01\x1aC\x20An\x20allocation/de-allocation\
2212    \x20operation\x20performed\x20by\x20the\x20allocator.\n\n\n\n\x03\x04\0\
2213    \x01\x12\x03\x0c\x08\x18\n.\n\x04\x04\0\x02\0\x12\x03\x0e\x02\x19\x1a!\
2214    \x20The\x20timestamp\x20of\x20the\x20operation.\n\n\x0c\n\x05\x04\0\x02\
2215    \0\x05\x12\x03\x0e\x02\x07\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x0e\x08\
2216    \x14\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x0e\x17\x18\nF\n\x04\x04\0\x02\
2217    \x01\x12\x03\x10\x02\x18\x1a9\x20Number\x20of\x20bytes\x20allocated,\x20\
2218    or\x20de-allocated\x20if\x20negative.\n\n\x0c\n\x05\x04\0\x02\x01\x05\
2219    \x12\x03\x10\x02\x07\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x10\x08\x13\n\
2220    \x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x10\x16\x17\n\n\n\x02\x04\x01\x12\
2221    \x04\x13\0\x20\x01\n\n\n\x03\x04\x01\x01\x12\x03\x13\x08\x1b\n\x0b\n\x04\
2222    \x04\x01\x02\0\x12\x03\x14\x02\x1c\n\x0c\n\x05\x04\x01\x02\0\x05\x12\x03\
2223    \x14\x02\x08\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03\x14\t\x17\n\x0c\n\x05\
2224    \x04\x01\x02\0\x03\x12\x03\x14\x1a\x1b\n9\n\x04\x04\x01\x02\x01\x12\x03\
2225    \x16\x02\x18\x1a,\x20These\x20are\x20per-node\x20allocator\x20memory\x20\
2226    stats.\n\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\x16\x02\x07\n\x0c\n\x05\
2227    \x04\x01\x02\x01\x01\x12\x03\x16\x08\x13\n\x0c\n\x05\x04\x01\x02\x01\x03\
2228    \x12\x03\x16\x16\x17\n\x0b\n\x04\x04\x01\x02\x02\x12\x03\x17\x02\x17\n\
2229    \x0c\n\x05\x04\x01\x02\x02\x05\x12\x03\x17\x02\x07\n\x0c\n\x05\x04\x01\
2230    \x02\x02\x01\x12\x03\x17\x08\x12\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03\
2231    \x17\x15\x16\n2\n\x04\x04\x01\x02\x03\x12\x03\x19\x02\x17\x1a%\x20The\
2232    \x20bytes\x20that\x20are\x20not\x20deallocated.\n\n\x0c\n\x05\x04\x01\
2233    \x02\x03\x05\x12\x03\x19\x02\x07\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x03\
2234    \x19\x08\x12\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03\x19\x15\x16\n8\n\
2235    \x04\x04\x01\x02\x04\x12\x03\x1b\x023\x1a+\x20The\x20allocation\x20and\
2236    \x20deallocation\x20timeline.\n\n\x0c\n\x05\x04\x01\x02\x04\x04\x12\x03\
2237    \x1b\x02\n\n\x0c\n\x05\x04\x01\x02\x04\x06\x12\x03\x1b\x0b\x1b\n\x0c\n\
2238    \x05\x04\x01\x02\x04\x01\x12\x03\x1b\x1c.\n\x0c\n\x05\x04\x01\x02\x04\
2239    \x03\x12\x03\x1b12\n\x89\x01\n\x04\x04\x01\x02\x05\x12\x03\x1f\x02#\x1a|\
2240    \x20These\x20are\x20snapshots\x20of\x20the\x20overall\x20allocator\x20me\
2241    mory\x20stats.\n\x20The\x20number\x20of\x20live\x20bytes\x20currently\
2242    \x20allocated\x20by\x20the\x20allocator.\n\n\x0c\n\x05\x04\x01\x02\x05\
2243    \x05\x12\x03\x1f\x02\x07\n\x0c\n\x05\x04\x01\x02\x05\x01\x12\x03\x1f\x08\
2244    \x1e\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x03\x1f!\"\nK\n\x02\x04\x02\x12\
2245    \x04#\0&\x01\x1a?\x20Output\x20sizes\x20recorded\x20for\x20a\x20single\
2246    \x20execution\x20of\x20a\x20graph\x20node.\n\n\n\n\x03\x04\x02\x01\x12\
2247    \x03#\x08\x12\n8\n\x04\x04\x02\x02\0\x12\x03$\x02\x11\"+\x20TensorDescri\
2248    ption\x20tensor_description\x20=\x203;\n\n\x0c\n\x05\x04\x02\x02\0\x05\
2249    \x12\x03$\x02\x07\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03$\x08\x0c\n\x0c\n\
2250    \x05\x04\x02\x02\0\x03\x12\x03$\x0f\x10\n\"\n\x02\x04\x03\x12\x04)\01\
2251    \x01\x1a\x16\x20For\x20memory\x20tracking.\n\n\n\n\x03\x04\x03\x01\x12\
2252    \x03)\x08\x13\n\x0b\n\x04\x04\x03\x02\0\x12\x03*\x02\x1d\n\x0c\n\x05\x04\
2253    \x03\x02\0\x05\x12\x03*\x02\x07\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x03*\
2254    \x08\x18\n\x0c\n\x05\x04\x03\x02\0\x03\x12\x03*\x1b\x1c\n\x0b\n\x04\x04\
2255    \x03\x02\x01\x12\x03+\x02#\n\x0c\n\x05\x04\x03\x02\x01\x05\x12\x03+\x02\
2256    \x07\n\x0c\n\x05\x04\x03\x02\x01\x01\x12\x03+\x08\x1e\n\x0c\n\x05\x04\
2257    \x03\x02\x01\x03\x12\x03+!\"\n\x0b\n\x04\x04\x03\x02\x02\x12\x03,\x021\n\
2258    \x0c\n\x05\x04\x03\x02\x02\x04\x12\x03,\x02\n\n\x0c\n\x05\x04\x03\x02\
2259    \x02\x05\x12\x03,\x0b\x10\n\x0c\n\x05\x04\x03\x02\x02\x01\x12\x03,\x11,\
2260    \n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x03,/0\n\x0b\n\x04\x04\x03\x02\x03\
2261    \x12\x03.\x028\n\x0c\n\x05\x04\x03\x02\x03\x05\x12\x03.\x02\x07\n\x0c\n\
2262    \x05\x04\x03\x02\x03\x01\x12\x03.\x08\x1f\n\x0c\n\x05\x04\x03\x02\x03\
2263    \x03\x12\x03.\"#\n\x0c\n\x05\x04\x03\x02\x03\x08\x12\x03.$7\n\r\n\x06\
2264    \x04\x03\x02\x03\x08\x03\x12\x03.%6\n\x0b\n\x04\x04\x03\x02\x04\x12\x03/\
2265    \x02>\n\x0c\n\x05\x04\x03\x02\x04\x05\x12\x03/\x02\x07\n\x0c\n\x05\x04\
2266    \x03\x02\x04\x01\x12\x03/\x08%\n\x0c\n\x05\x04\x03\x02\x04\x03\x12\x03/(\
2267    )\n\x0c\n\x05\x04\x03\x02\x04\x08\x12\x03/*=\n\r\n\x06\x04\x03\x02\x04\
2268    \x08\x03\x12\x03/+<\n\x0b\n\x04\x04\x03\x02\x05\x12\x030\x02L\n\x0c\n\
2269    \x05\x04\x03\x02\x05\x04\x12\x030\x02\n\n\x0c\n\x05\x04\x03\x02\x05\x05\
2270    \x12\x030\x0b\x10\n\x0c\n\x05\x04\x03\x02\x05\x01\x12\x030\x113\n\x0c\n\
2271    \x05\x04\x03\x02\x05\x03\x12\x03067\n\x0c\n\x05\x04\x03\x02\x05\x08\x12\
2272    \x0308K\n\r\n\x06\x04\x03\x02\x05\x08\x03\x12\x0309J\nN\n\x02\x04\x04\
2273    \x12\x044\0E\x01\x1aB\x20Time/size\x20stats\x20recorded\x20for\x20a\x20s\
2274    ingle\x20execution\x20of\x20a\x20graph\x20node.\n\n\n\n\x03\x04\x04\x01\
2275    \x12\x034\x08\x15\n\xd8\x01\n\x04\x04\x04\x02\0\x12\x039\x02\x17\x1a\xca\
2276    \x01\x20TODO(tucker):\x20Use\x20some\x20more\x20compact\x20form\x20of\
2277    \x20node\x20identity\x20than\n\x20the\x20full\x20string\x20name.\x20\x20\
2278    Either\x20all\x20processes\x20should\x20agree\x20on\x20a\n\x20global\x20\
2279    id\x20(cost_id?)\x20for\x20each\x20node,\x20or\x20we\x20should\x20use\
2280    \x20a\x20hash\x20of\n\x20the\x20name.\n\n\x0c\n\x05\x04\x04\x02\0\x05\
2281    \x12\x039\x02\x08\n\x0c\n\x05\x04\x04\x02\0\x01\x12\x039\t\x12\n\x0c\n\
2282    \x05\x04\x04\x02\0\x03\x12\x039\x15\x16\n\x0b\n\x04\x04\x04\x02\x01\x12\
2283    \x03:\x02\x1d\n\x0c\n\x05\x04\x04\x02\x01\x05\x12\x03:\x02\x07\n\x0c\n\
2284    \x05\x04\x04\x02\x01\x01\x12\x03:\x08\x18\n\x0c\n\x05\x04\x04\x02\x01\
2285    \x03\x12\x03:\x1b\x1c\n\x0b\n\x04\x04\x04\x02\x02\x12\x03;\x02\x20\n\x0c\
2286    \n\x05\x04\x04\x02\x02\x05\x12\x03;\x02\x07\n\x0c\n\x05\x04\x04\x02\x02\
2287    \x01\x12\x03;\x08\x1b\n\x0c\n\x05\x04\x04\x02\x02\x03\x12\x03;\x1e\x1f\n\
2288    \x0b\n\x04\x04\x04\x02\x03\x12\x03<\x02\x1e\n\x0c\n\x05\x04\x04\x02\x03\
2289    \x05\x12\x03<\x02\x07\n\x0c\n\x05\x04\x04\x02\x03\x01\x12\x03<\x08\x19\n\
2290    \x0c\n\x05\x04\x04\x02\x03\x03\x12\x03<\x1c\x1d\n\x0b\n\x04\x04\x04\x02\
2291    \x04\x12\x03=\x02\x1f\n\x0c\n\x05\x04\x04\x02\x04\x05\x12\x03=\x02\x07\n\
2292    \x0c\n\x05\x04\x04\x02\x04\x01\x12\x03=\x08\x1a\n\x0c\n\x05\x04\x04\x02\
2293    \x04\x03\x12\x03=\x1d\x1e\n\x0b\n\x04\x04\x04\x02\x05\x12\x03>\x02*\n\
2294    \x0c\n\x05\x04\x04\x02\x05\x04\x12\x03>\x02\n\n\x0c\n\x05\x04\x04\x02\
2295    \x05\x06\x12\x03>\x0b\x1e\n\x0c\n\x05\x04\x04\x02\x05\x01\x12\x03>\x1f%\
2296    \n\x0c\n\x05\x04\x04\x02\x05\x03\x12\x03>()\n\x0b\n\x04\x04\x04\x02\x06\
2297    \x12\x03?\x02!\n\x0c\n\x05\x04\x04\x02\x06\x04\x12\x03?\x02\n\n\x0c\n\
2298    \x05\x04\x04\x02\x06\x06\x12\x03?\x0b\x15\n\x0c\n\x05\x04\x04\x02\x06\
2299    \x01\x12\x03?\x16\x1c\n\x0c\n\x05\x04\x04\x02\x06\x03\x12\x03?\x1f\x20\n\
2300    \x0b\n\x04\x04\x04\x02\x07\x12\x03@\x02\x1c\n\x0c\n\x05\x04\x04\x02\x07\
2301    \x05\x12\x03@\x02\x08\n\x0c\n\x05\x04\x04\x02\x07\x01\x12\x03@\t\x17\n\
2302    \x0c\n\x05\x04\x04\x02\x07\x03\x12\x03@\x1a\x1b\n\x0b\n\x04\x04\x04\x02\
2303    \x08\x12\x03A\x02\x1d\n\x0c\n\x05\x04\x04\x02\x08\x05\x12\x03A\x02\x07\n\
2304    \x0c\n\x05\x04\x04\x02\x08\x01\x12\x03A\x08\x18\n\x0c\n\x05\x04\x04\x02\
2305    \x08\x03\x12\x03A\x1b\x1c\n\x0b\n\x04\x04\x04\x02\t\x12\x03B\x02\x18\n\
2306    \x0c\n\x05\x04\x04\x02\t\x05\x12\x03B\x02\x08\n\x0c\n\x05\x04\x04\x02\t\
2307    \x01\x12\x03B\t\x12\n\x0c\n\x05\x04\x04\x02\t\x03\x12\x03B\x15\x17\nE\n\
2308    \x04\x04\x04\x02\n\x12\x03D\x02\x20\x1a8\x20repeated\x20AllocationDescri\
2309    ption\x20referenced_tensor\x20=\x2011;\n\n\x0c\n\x05\x04\x04\x02\n\x06\
2310    \x12\x03D\x02\r\n\x0c\n\x05\x04\x04\x02\n\x01\x12\x03D\x0e\x1a\n\x0c\n\
2311    \x05\x04\x04\x02\n\x03\x12\x03D\x1d\x1f\n\n\n\x02\x04\x05\x12\x04G\0J\
2312    \x01\n\n\n\x03\x04\x05\x01\x12\x03G\x08\x17\n\x0b\n\x04\x04\x05\x02\0\
2313    \x12\x03H\x02\x14\n\x0c\n\x05\x04\x05\x02\0\x05\x12\x03H\x02\x08\n\x0c\n\
2314    \x05\x04\x05\x02\0\x01\x12\x03H\t\x0f\n\x0c\n\x05\x04\x05\x02\0\x03\x12\
2315    \x03H\x12\x13\n\x0b\n\x04\x04\x05\x02\x01\x12\x03I\x02(\n\x0c\n\x05\x04\
2316    \x05\x02\x01\x04\x12\x03I\x02\n\n\x0c\n\x05\x04\x05\x02\x01\x06\x12\x03I\
2317    \x0b\x18\n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03I\x19#\n\x0c\n\x05\x04\
2318    \x05\x02\x01\x03\x12\x03I&'\n\n\n\x02\x04\x06\x12\x04L\0N\x01\n\n\n\x03\
2319    \x04\x06\x01\x12\x03L\x08\x11\n\x0b\n\x04\x04\x06\x02\0\x12\x03M\x02)\n\
2320    \x0c\n\x05\x04\x06\x02\0\x04\x12\x03M\x02\n\n\x0c\n\x05\x04\x06\x02\0\
2321    \x06\x12\x03M\x0b\x1a\n\x0c\n\x05\x04\x06\x02\0\x01\x12\x03M\x1b$\n\x0c\
2322    \n\x05\x04\x06\x02\0\x03\x12\x03M'(\nj\n\x02\x04\x07\x12\x04S\0^\x01\x1a\
2323    ^\x20lanpa,\x20copied\x20from\x20config.proto\n\x20Metadata\x20output\
2324    \x20(i.e.,\x20non-Tensor)\x20for\x20a\x20single\x20Run()\x20call.\n\n\n\
2325    \n\x03\x04\x07\x01\x12\x03S\x08\x13\n\xba\x01\n\x04\x04\x07\x02\0\x12\
2326    \x03W\x02\x1b\x1a\xac\x01\x20Statistics\x20traced\x20for\x20this\x20step\
2327    .\x20Populated\x20if\x20tracing\x20is\x20turned\x20on\x20via\x20the\n\
2328    \x20\"RunOptions\"\x20proto.\n\x20EXPERIMENTAL:\x20The\x20format\x20and\
2329    \x20set\x20of\x20events\x20may\x20change\x20in\x20future\x20versions.\n\
2330    \n\x0c\n\x05\x04\x07\x02\0\x06\x12\x03W\x02\x0b\n\x0c\n\x05\x04\x07\x02\
2331    \0\x01\x12\x03W\x0c\x16\n\x0c\n\x05\x04\x07\x02\0\x03\x12\x03W\x19\x1ab\
2332    \x06proto3\
2333";
2334
2335static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
2336
2337fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
2338    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
2339}
2340
2341pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
2342    file_descriptor_proto_lazy.get(|| {
2343        parse_descriptor_proto()
2344    })
2345}