1#![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#[derive(PartialEq,Clone,Default)]
27pub struct Distribution {
28 pub count: i64,
30 pub mean: f64,
31 pub minimum: f64,
32 pub maximum: f64,
33 pub sum_of_squared_deviation: f64,
34 pub bucket_counts: ::std::vec::Vec<i64>,
35 pub exemplars: ::protobuf::RepeatedField<super::distribution_ex::Distribution_Exemplar>,
36 pub bucket_option: ::std::option::Option<Distribution_oneof_bucket_option>,
38 pub unknown_fields: ::protobuf::UnknownFields,
40 pub cached_size: ::protobuf::CachedSize,
41}
42
43impl<'a> ::std::default::Default for &'a Distribution {
44 fn default() -> &'a Distribution {
45 <Distribution as ::protobuf::Message>::default_instance()
46 }
47}
48
49#[derive(Clone,PartialEq,Debug)]
50pub enum Distribution_oneof_bucket_option {
51 linear_buckets(Distribution_LinearBuckets),
52 exponential_buckets(Distribution_ExponentialBuckets),
53 explicit_buckets(Distribution_ExplicitBuckets),
54}
55
56impl Distribution {
57 pub fn new() -> Distribution {
58 ::std::default::Default::default()
59 }
60
61 pub fn get_count(&self) -> i64 {
65 self.count
66 }
67 pub fn clear_count(&mut self) {
68 self.count = 0;
69 }
70
71 pub fn set_count(&mut self, v: i64) {
73 self.count = v;
74 }
75
76 pub fn get_mean(&self) -> f64 {
80 self.mean
81 }
82 pub fn clear_mean(&mut self) {
83 self.mean = 0.;
84 }
85
86 pub fn set_mean(&mut self, v: f64) {
88 self.mean = v;
89 }
90
91 pub fn get_minimum(&self) -> f64 {
95 self.minimum
96 }
97 pub fn clear_minimum(&mut self) {
98 self.minimum = 0.;
99 }
100
101 pub fn set_minimum(&mut self, v: f64) {
103 self.minimum = v;
104 }
105
106 pub fn get_maximum(&self) -> f64 {
110 self.maximum
111 }
112 pub fn clear_maximum(&mut self) {
113 self.maximum = 0.;
114 }
115
116 pub fn set_maximum(&mut self, v: f64) {
118 self.maximum = v;
119 }
120
121 pub fn get_sum_of_squared_deviation(&self) -> f64 {
125 self.sum_of_squared_deviation
126 }
127 pub fn clear_sum_of_squared_deviation(&mut self) {
128 self.sum_of_squared_deviation = 0.;
129 }
130
131 pub fn set_sum_of_squared_deviation(&mut self, v: f64) {
133 self.sum_of_squared_deviation = v;
134 }
135
136 pub fn get_bucket_counts(&self) -> &[i64] {
140 &self.bucket_counts
141 }
142 pub fn clear_bucket_counts(&mut self) {
143 self.bucket_counts.clear();
144 }
145
146 pub fn set_bucket_counts(&mut self, v: ::std::vec::Vec<i64>) {
148 self.bucket_counts = v;
149 }
150
151 pub fn mut_bucket_counts(&mut self) -> &mut ::std::vec::Vec<i64> {
153 &mut self.bucket_counts
154 }
155
156 pub fn take_bucket_counts(&mut self) -> ::std::vec::Vec<i64> {
158 ::std::mem::replace(&mut self.bucket_counts, ::std::vec::Vec::new())
159 }
160
161 pub fn get_linear_buckets(&self) -> &Distribution_LinearBuckets {
165 match self.bucket_option {
166 ::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(ref v)) => v,
167 _ => <Distribution_LinearBuckets as ::protobuf::Message>::default_instance(),
168 }
169 }
170 pub fn clear_linear_buckets(&mut self) {
171 self.bucket_option = ::std::option::Option::None;
172 }
173
174 pub fn has_linear_buckets(&self) -> bool {
175 match self.bucket_option {
176 ::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(..)) => true,
177 _ => false,
178 }
179 }
180
181 pub fn set_linear_buckets(&mut self, v: Distribution_LinearBuckets) {
183 self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(v))
184 }
185
186 pub fn mut_linear_buckets(&mut self) -> &mut Distribution_LinearBuckets {
188 if let ::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(_)) = self.bucket_option {
189 } else {
190 self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(Distribution_LinearBuckets::new()));
191 }
192 match self.bucket_option {
193 ::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(ref mut v)) => v,
194 _ => panic!(),
195 }
196 }
197
198 pub fn take_linear_buckets(&mut self) -> Distribution_LinearBuckets {
200 if self.has_linear_buckets() {
201 match self.bucket_option.take() {
202 ::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(v)) => v,
203 _ => panic!(),
204 }
205 } else {
206 Distribution_LinearBuckets::new()
207 }
208 }
209
210 pub fn get_exponential_buckets(&self) -> &Distribution_ExponentialBuckets {
214 match self.bucket_option {
215 ::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(ref v)) => v,
216 _ => <Distribution_ExponentialBuckets as ::protobuf::Message>::default_instance(),
217 }
218 }
219 pub fn clear_exponential_buckets(&mut self) {
220 self.bucket_option = ::std::option::Option::None;
221 }
222
223 pub fn has_exponential_buckets(&self) -> bool {
224 match self.bucket_option {
225 ::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(..)) => true,
226 _ => false,
227 }
228 }
229
230 pub fn set_exponential_buckets(&mut self, v: Distribution_ExponentialBuckets) {
232 self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(v))
233 }
234
235 pub fn mut_exponential_buckets(&mut self) -> &mut Distribution_ExponentialBuckets {
237 if let ::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(_)) = self.bucket_option {
238 } else {
239 self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(Distribution_ExponentialBuckets::new()));
240 }
241 match self.bucket_option {
242 ::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(ref mut v)) => v,
243 _ => panic!(),
244 }
245 }
246
247 pub fn take_exponential_buckets(&mut self) -> Distribution_ExponentialBuckets {
249 if self.has_exponential_buckets() {
250 match self.bucket_option.take() {
251 ::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(v)) => v,
252 _ => panic!(),
253 }
254 } else {
255 Distribution_ExponentialBuckets::new()
256 }
257 }
258
259 pub fn get_explicit_buckets(&self) -> &Distribution_ExplicitBuckets {
263 match self.bucket_option {
264 ::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(ref v)) => v,
265 _ => <Distribution_ExplicitBuckets as ::protobuf::Message>::default_instance(),
266 }
267 }
268 pub fn clear_explicit_buckets(&mut self) {
269 self.bucket_option = ::std::option::Option::None;
270 }
271
272 pub fn has_explicit_buckets(&self) -> bool {
273 match self.bucket_option {
274 ::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(..)) => true,
275 _ => false,
276 }
277 }
278
279 pub fn set_explicit_buckets(&mut self, v: Distribution_ExplicitBuckets) {
281 self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(v))
282 }
283
284 pub fn mut_explicit_buckets(&mut self) -> &mut Distribution_ExplicitBuckets {
286 if let ::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(_)) = self.bucket_option {
287 } else {
288 self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(Distribution_ExplicitBuckets::new()));
289 }
290 match self.bucket_option {
291 ::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(ref mut v)) => v,
292 _ => panic!(),
293 }
294 }
295
296 pub fn take_explicit_buckets(&mut self) -> Distribution_ExplicitBuckets {
298 if self.has_explicit_buckets() {
299 match self.bucket_option.take() {
300 ::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(v)) => v,
301 _ => panic!(),
302 }
303 } else {
304 Distribution_ExplicitBuckets::new()
305 }
306 }
307
308 pub fn get_exemplars(&self) -> &[super::distribution_ex::Distribution_Exemplar] {
312 &self.exemplars
313 }
314 pub fn clear_exemplars(&mut self) {
315 self.exemplars.clear();
316 }
317
318 pub fn set_exemplars(&mut self, v: ::protobuf::RepeatedField<super::distribution_ex::Distribution_Exemplar>) {
320 self.exemplars = v;
321 }
322
323 pub fn mut_exemplars(&mut self) -> &mut ::protobuf::RepeatedField<super::distribution_ex::Distribution_Exemplar> {
325 &mut self.exemplars
326 }
327
328 pub fn take_exemplars(&mut self) -> ::protobuf::RepeatedField<super::distribution_ex::Distribution_Exemplar> {
330 ::std::mem::replace(&mut self.exemplars, ::protobuf::RepeatedField::new())
331 }
332}
333
334impl ::protobuf::Message for Distribution {
335 fn is_initialized(&self) -> bool {
336 if let Some(Distribution_oneof_bucket_option::linear_buckets(ref v)) = self.bucket_option {
337 if !v.is_initialized() {
338 return false;
339 }
340 }
341 if let Some(Distribution_oneof_bucket_option::exponential_buckets(ref v)) = self.bucket_option {
342 if !v.is_initialized() {
343 return false;
344 }
345 }
346 if let Some(Distribution_oneof_bucket_option::explicit_buckets(ref v)) = self.bucket_option {
347 if !v.is_initialized() {
348 return false;
349 }
350 }
351 for v in &self.exemplars {
352 if !v.is_initialized() {
353 return false;
354 }
355 };
356 true
357 }
358
359 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
360 while !is.eof()? {
361 let (field_number, wire_type) = is.read_tag_unpack()?;
362 match field_number {
363 1 => {
364 if wire_type != ::protobuf::wire_format::WireTypeVarint {
365 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
366 }
367 let tmp = is.read_int64()?;
368 self.count = tmp;
369 },
370 2 => {
371 if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
372 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
373 }
374 let tmp = is.read_double()?;
375 self.mean = tmp;
376 },
377 3 => {
378 if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
379 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
380 }
381 let tmp = is.read_double()?;
382 self.minimum = tmp;
383 },
384 4 => {
385 if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
386 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
387 }
388 let tmp = is.read_double()?;
389 self.maximum = tmp;
390 },
391 5 => {
392 if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
393 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
394 }
395 let tmp = is.read_double()?;
396 self.sum_of_squared_deviation = tmp;
397 },
398 6 => {
399 ::protobuf::rt::read_repeated_int64_into(wire_type, is, &mut self.bucket_counts)?;
400 },
401 7 => {
402 if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
403 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
404 }
405 self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(is.read_message()?));
406 },
407 8 => {
408 if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
409 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
410 }
411 self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(is.read_message()?));
412 },
413 9 => {
414 if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
415 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
416 }
417 self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(is.read_message()?));
418 },
419 10 => {
420 ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.exemplars)?;
421 },
422 _ => {
423 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
424 },
425 };
426 }
427 ::std::result::Result::Ok(())
428 }
429
430 #[allow(unused_variables)]
432 fn compute_size(&self) -> u32 {
433 let mut my_size = 0;
434 if self.count != 0 {
435 my_size += ::protobuf::rt::value_size(1, self.count, ::protobuf::wire_format::WireTypeVarint);
436 }
437 if self.mean != 0. {
438 my_size += 9;
439 }
440 if self.minimum != 0. {
441 my_size += 9;
442 }
443 if self.maximum != 0. {
444 my_size += 9;
445 }
446 if self.sum_of_squared_deviation != 0. {
447 my_size += 9;
448 }
449 for value in &self.bucket_counts {
450 my_size += ::protobuf::rt::value_size(6, *value, ::protobuf::wire_format::WireTypeVarint);
451 };
452 for value in &self.exemplars {
453 let len = value.compute_size();
454 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
455 };
456 if let ::std::option::Option::Some(ref v) = self.bucket_option {
457 match v {
458 &Distribution_oneof_bucket_option::linear_buckets(ref v) => {
459 let len = v.compute_size();
460 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
461 },
462 &Distribution_oneof_bucket_option::exponential_buckets(ref v) => {
463 let len = v.compute_size();
464 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
465 },
466 &Distribution_oneof_bucket_option::explicit_buckets(ref v) => {
467 let len = v.compute_size();
468 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
469 },
470 };
471 }
472 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
473 self.cached_size.set(my_size);
474 my_size
475 }
476
477 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
478 if self.count != 0 {
479 os.write_int64(1, self.count)?;
480 }
481 if self.mean != 0. {
482 os.write_double(2, self.mean)?;
483 }
484 if self.minimum != 0. {
485 os.write_double(3, self.minimum)?;
486 }
487 if self.maximum != 0. {
488 os.write_double(4, self.maximum)?;
489 }
490 if self.sum_of_squared_deviation != 0. {
491 os.write_double(5, self.sum_of_squared_deviation)?;
492 }
493 for v in &self.bucket_counts {
494 os.write_int64(6, *v)?;
495 };
496 for v in &self.exemplars {
497 os.write_tag(10, ::protobuf::wire_format::WireTypeLengthDelimited)?;
498 os.write_raw_varint32(v.get_cached_size())?;
499 v.write_to_with_cached_sizes(os)?;
500 };
501 if let ::std::option::Option::Some(ref v) = self.bucket_option {
502 match v {
503 &Distribution_oneof_bucket_option::linear_buckets(ref v) => {
504 os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
505 os.write_raw_varint32(v.get_cached_size())?;
506 v.write_to_with_cached_sizes(os)?;
507 },
508 &Distribution_oneof_bucket_option::exponential_buckets(ref v) => {
509 os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
510 os.write_raw_varint32(v.get_cached_size())?;
511 v.write_to_with_cached_sizes(os)?;
512 },
513 &Distribution_oneof_bucket_option::explicit_buckets(ref v) => {
514 os.write_tag(9, ::protobuf::wire_format::WireTypeLengthDelimited)?;
515 os.write_raw_varint32(v.get_cached_size())?;
516 v.write_to_with_cached_sizes(os)?;
517 },
518 };
519 }
520 os.write_unknown_fields(self.get_unknown_fields())?;
521 ::std::result::Result::Ok(())
522 }
523
524 fn get_cached_size(&self) -> u32 {
525 self.cached_size.get()
526 }
527
528 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
529 &self.unknown_fields
530 }
531
532 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
533 &mut self.unknown_fields
534 }
535
536 fn as_any(&self) -> &dyn (::std::any::Any) {
537 self as &dyn (::std::any::Any)
538 }
539 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
540 self as &mut dyn (::std::any::Any)
541 }
542 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
543 self
544 }
545
546 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
547 Self::descriptor_static()
548 }
549
550 fn new() -> Distribution {
551 Distribution::new()
552 }
553
554 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
555 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
556 descriptor.get(|| {
557 let mut fields = ::std::vec::Vec::new();
558 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
559 "count",
560 |m: &Distribution| { &m.count },
561 |m: &mut Distribution| { &mut m.count },
562 ));
563 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
564 "mean",
565 |m: &Distribution| { &m.mean },
566 |m: &mut Distribution| { &mut m.mean },
567 ));
568 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
569 "minimum",
570 |m: &Distribution| { &m.minimum },
571 |m: &mut Distribution| { &mut m.minimum },
572 ));
573 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
574 "maximum",
575 |m: &Distribution| { &m.maximum },
576 |m: &mut Distribution| { &mut m.maximum },
577 ));
578 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
579 "sum_of_squared_deviation",
580 |m: &Distribution| { &m.sum_of_squared_deviation },
581 |m: &mut Distribution| { &mut m.sum_of_squared_deviation },
582 ));
583 fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
584 "bucket_counts",
585 |m: &Distribution| { &m.bucket_counts },
586 |m: &mut Distribution| { &mut m.bucket_counts },
587 ));
588 fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, Distribution_LinearBuckets>(
589 "linear_buckets",
590 Distribution::has_linear_buckets,
591 Distribution::get_linear_buckets,
592 ));
593 fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, Distribution_ExponentialBuckets>(
594 "exponential_buckets",
595 Distribution::has_exponential_buckets,
596 Distribution::get_exponential_buckets,
597 ));
598 fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, Distribution_ExplicitBuckets>(
599 "explicit_buckets",
600 Distribution::has_explicit_buckets,
601 Distribution::get_explicit_buckets,
602 ));
603 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::distribution_ex::Distribution_Exemplar>>(
604 "exemplars",
605 |m: &Distribution| { &m.exemplars },
606 |m: &mut Distribution| { &mut m.exemplars },
607 ));
608 ::protobuf::reflect::MessageDescriptor::new_pb_name::<Distribution>(
609 "Distribution",
610 fields,
611 file_descriptor_proto()
612 )
613 })
614 }
615
616 fn default_instance() -> &'static Distribution {
617 static instance: ::protobuf::rt::LazyV2<Distribution> = ::protobuf::rt::LazyV2::INIT;
618 instance.get(Distribution::new)
619 }
620}
621
622impl ::protobuf::Clear for Distribution {
623 fn clear(&mut self) {
624 self.count = 0;
625 self.mean = 0.;
626 self.minimum = 0.;
627 self.maximum = 0.;
628 self.sum_of_squared_deviation = 0.;
629 self.bucket_counts.clear();
630 self.bucket_option = ::std::option::Option::None;
631 self.bucket_option = ::std::option::Option::None;
632 self.bucket_option = ::std::option::Option::None;
633 self.exemplars.clear();
634 self.unknown_fields.clear();
635 }
636}
637
638impl ::std::fmt::Debug for Distribution {
639 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
640 ::protobuf::text_format::fmt(self, f)
641 }
642}
643
644impl ::protobuf::reflect::ProtobufValue for Distribution {
645 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
646 ::protobuf::reflect::ReflectValueRef::Message(self)
647 }
648}
649
650#[derive(PartialEq,Clone,Default)]
651pub struct Distribution_LinearBuckets {
652 pub num_finite_buckets: i32,
654 pub width: f64,
655 pub offset: f64,
656 pub unknown_fields: ::protobuf::UnknownFields,
658 pub cached_size: ::protobuf::CachedSize,
659}
660
661impl<'a> ::std::default::Default for &'a Distribution_LinearBuckets {
662 fn default() -> &'a Distribution_LinearBuckets {
663 <Distribution_LinearBuckets as ::protobuf::Message>::default_instance()
664 }
665}
666
667impl Distribution_LinearBuckets {
668 pub fn new() -> Distribution_LinearBuckets {
669 ::std::default::Default::default()
670 }
671
672 pub fn get_num_finite_buckets(&self) -> i32 {
676 self.num_finite_buckets
677 }
678 pub fn clear_num_finite_buckets(&mut self) {
679 self.num_finite_buckets = 0;
680 }
681
682 pub fn set_num_finite_buckets(&mut self, v: i32) {
684 self.num_finite_buckets = v;
685 }
686
687 pub fn get_width(&self) -> f64 {
691 self.width
692 }
693 pub fn clear_width(&mut self) {
694 self.width = 0.;
695 }
696
697 pub fn set_width(&mut self, v: f64) {
699 self.width = v;
700 }
701
702 pub fn get_offset(&self) -> f64 {
706 self.offset
707 }
708 pub fn clear_offset(&mut self) {
709 self.offset = 0.;
710 }
711
712 pub fn set_offset(&mut self, v: f64) {
714 self.offset = v;
715 }
716}
717
718impl ::protobuf::Message for Distribution_LinearBuckets {
719 fn is_initialized(&self) -> bool {
720 true
721 }
722
723 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
724 while !is.eof()? {
725 let (field_number, wire_type) = is.read_tag_unpack()?;
726 match field_number {
727 1 => {
728 if wire_type != ::protobuf::wire_format::WireTypeVarint {
729 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
730 }
731 let tmp = is.read_int32()?;
732 self.num_finite_buckets = tmp;
733 },
734 2 => {
735 if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
736 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
737 }
738 let tmp = is.read_double()?;
739 self.width = tmp;
740 },
741 3 => {
742 if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
743 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
744 }
745 let tmp = is.read_double()?;
746 self.offset = tmp;
747 },
748 _ => {
749 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
750 },
751 };
752 }
753 ::std::result::Result::Ok(())
754 }
755
756 #[allow(unused_variables)]
758 fn compute_size(&self) -> u32 {
759 let mut my_size = 0;
760 if self.num_finite_buckets != 0 {
761 my_size += ::protobuf::rt::value_size(1, self.num_finite_buckets, ::protobuf::wire_format::WireTypeVarint);
762 }
763 if self.width != 0. {
764 my_size += 9;
765 }
766 if self.offset != 0. {
767 my_size += 9;
768 }
769 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
770 self.cached_size.set(my_size);
771 my_size
772 }
773
774 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
775 if self.num_finite_buckets != 0 {
776 os.write_int32(1, self.num_finite_buckets)?;
777 }
778 if self.width != 0. {
779 os.write_double(2, self.width)?;
780 }
781 if self.offset != 0. {
782 os.write_double(3, self.offset)?;
783 }
784 os.write_unknown_fields(self.get_unknown_fields())?;
785 ::std::result::Result::Ok(())
786 }
787
788 fn get_cached_size(&self) -> u32 {
789 self.cached_size.get()
790 }
791
792 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
793 &self.unknown_fields
794 }
795
796 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
797 &mut self.unknown_fields
798 }
799
800 fn as_any(&self) -> &dyn (::std::any::Any) {
801 self as &dyn (::std::any::Any)
802 }
803 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
804 self as &mut dyn (::std::any::Any)
805 }
806 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
807 self
808 }
809
810 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
811 Self::descriptor_static()
812 }
813
814 fn new() -> Distribution_LinearBuckets {
815 Distribution_LinearBuckets::new()
816 }
817
818 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
819 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
820 descriptor.get(|| {
821 let mut fields = ::std::vec::Vec::new();
822 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
823 "num_finite_buckets",
824 |m: &Distribution_LinearBuckets| { &m.num_finite_buckets },
825 |m: &mut Distribution_LinearBuckets| { &mut m.num_finite_buckets },
826 ));
827 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
828 "width",
829 |m: &Distribution_LinearBuckets| { &m.width },
830 |m: &mut Distribution_LinearBuckets| { &mut m.width },
831 ));
832 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
833 "offset",
834 |m: &Distribution_LinearBuckets| { &m.offset },
835 |m: &mut Distribution_LinearBuckets| { &mut m.offset },
836 ));
837 ::protobuf::reflect::MessageDescriptor::new_pb_name::<Distribution_LinearBuckets>(
838 "Distribution.LinearBuckets",
839 fields,
840 file_descriptor_proto()
841 )
842 })
843 }
844
845 fn default_instance() -> &'static Distribution_LinearBuckets {
846 static instance: ::protobuf::rt::LazyV2<Distribution_LinearBuckets> = ::protobuf::rt::LazyV2::INIT;
847 instance.get(Distribution_LinearBuckets::new)
848 }
849}
850
851impl ::protobuf::Clear for Distribution_LinearBuckets {
852 fn clear(&mut self) {
853 self.num_finite_buckets = 0;
854 self.width = 0.;
855 self.offset = 0.;
856 self.unknown_fields.clear();
857 }
858}
859
860impl ::std::fmt::Debug for Distribution_LinearBuckets {
861 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
862 ::protobuf::text_format::fmt(self, f)
863 }
864}
865
866impl ::protobuf::reflect::ProtobufValue for Distribution_LinearBuckets {
867 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
868 ::protobuf::reflect::ReflectValueRef::Message(self)
869 }
870}
871
872#[derive(PartialEq,Clone,Default)]
873pub struct Distribution_ExponentialBuckets {
874 pub num_finite_buckets: i32,
876 pub growth_factor: f64,
877 pub scale: f64,
878 pub unknown_fields: ::protobuf::UnknownFields,
880 pub cached_size: ::protobuf::CachedSize,
881}
882
883impl<'a> ::std::default::Default for &'a Distribution_ExponentialBuckets {
884 fn default() -> &'a Distribution_ExponentialBuckets {
885 <Distribution_ExponentialBuckets as ::protobuf::Message>::default_instance()
886 }
887}
888
889impl Distribution_ExponentialBuckets {
890 pub fn new() -> Distribution_ExponentialBuckets {
891 ::std::default::Default::default()
892 }
893
894 pub fn get_num_finite_buckets(&self) -> i32 {
898 self.num_finite_buckets
899 }
900 pub fn clear_num_finite_buckets(&mut self) {
901 self.num_finite_buckets = 0;
902 }
903
904 pub fn set_num_finite_buckets(&mut self, v: i32) {
906 self.num_finite_buckets = v;
907 }
908
909 pub fn get_growth_factor(&self) -> f64 {
913 self.growth_factor
914 }
915 pub fn clear_growth_factor(&mut self) {
916 self.growth_factor = 0.;
917 }
918
919 pub fn set_growth_factor(&mut self, v: f64) {
921 self.growth_factor = v;
922 }
923
924 pub fn get_scale(&self) -> f64 {
928 self.scale
929 }
930 pub fn clear_scale(&mut self) {
931 self.scale = 0.;
932 }
933
934 pub fn set_scale(&mut self, v: f64) {
936 self.scale = v;
937 }
938}
939
940impl ::protobuf::Message for Distribution_ExponentialBuckets {
941 fn is_initialized(&self) -> bool {
942 true
943 }
944
945 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
946 while !is.eof()? {
947 let (field_number, wire_type) = is.read_tag_unpack()?;
948 match field_number {
949 1 => {
950 if wire_type != ::protobuf::wire_format::WireTypeVarint {
951 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
952 }
953 let tmp = is.read_int32()?;
954 self.num_finite_buckets = tmp;
955 },
956 2 => {
957 if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
958 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
959 }
960 let tmp = is.read_double()?;
961 self.growth_factor = tmp;
962 },
963 3 => {
964 if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
965 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
966 }
967 let tmp = is.read_double()?;
968 self.scale = tmp;
969 },
970 _ => {
971 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
972 },
973 };
974 }
975 ::std::result::Result::Ok(())
976 }
977
978 #[allow(unused_variables)]
980 fn compute_size(&self) -> u32 {
981 let mut my_size = 0;
982 if self.num_finite_buckets != 0 {
983 my_size += ::protobuf::rt::value_size(1, self.num_finite_buckets, ::protobuf::wire_format::WireTypeVarint);
984 }
985 if self.growth_factor != 0. {
986 my_size += 9;
987 }
988 if self.scale != 0. {
989 my_size += 9;
990 }
991 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
992 self.cached_size.set(my_size);
993 my_size
994 }
995
996 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
997 if self.num_finite_buckets != 0 {
998 os.write_int32(1, self.num_finite_buckets)?;
999 }
1000 if self.growth_factor != 0. {
1001 os.write_double(2, self.growth_factor)?;
1002 }
1003 if self.scale != 0. {
1004 os.write_double(3, self.scale)?;
1005 }
1006 os.write_unknown_fields(self.get_unknown_fields())?;
1007 ::std::result::Result::Ok(())
1008 }
1009
1010 fn get_cached_size(&self) -> u32 {
1011 self.cached_size.get()
1012 }
1013
1014 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1015 &self.unknown_fields
1016 }
1017
1018 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1019 &mut self.unknown_fields
1020 }
1021
1022 fn as_any(&self) -> &dyn (::std::any::Any) {
1023 self as &dyn (::std::any::Any)
1024 }
1025 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1026 self as &mut dyn (::std::any::Any)
1027 }
1028 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1029 self
1030 }
1031
1032 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1033 Self::descriptor_static()
1034 }
1035
1036 fn new() -> Distribution_ExponentialBuckets {
1037 Distribution_ExponentialBuckets::new()
1038 }
1039
1040 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1041 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1042 descriptor.get(|| {
1043 let mut fields = ::std::vec::Vec::new();
1044 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1045 "num_finite_buckets",
1046 |m: &Distribution_ExponentialBuckets| { &m.num_finite_buckets },
1047 |m: &mut Distribution_ExponentialBuckets| { &mut m.num_finite_buckets },
1048 ));
1049 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
1050 "growth_factor",
1051 |m: &Distribution_ExponentialBuckets| { &m.growth_factor },
1052 |m: &mut Distribution_ExponentialBuckets| { &mut m.growth_factor },
1053 ));
1054 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
1055 "scale",
1056 |m: &Distribution_ExponentialBuckets| { &m.scale },
1057 |m: &mut Distribution_ExponentialBuckets| { &mut m.scale },
1058 ));
1059 ::protobuf::reflect::MessageDescriptor::new_pb_name::<Distribution_ExponentialBuckets>(
1060 "Distribution.ExponentialBuckets",
1061 fields,
1062 file_descriptor_proto()
1063 )
1064 })
1065 }
1066
1067 fn default_instance() -> &'static Distribution_ExponentialBuckets {
1068 static instance: ::protobuf::rt::LazyV2<Distribution_ExponentialBuckets> = ::protobuf::rt::LazyV2::INIT;
1069 instance.get(Distribution_ExponentialBuckets::new)
1070 }
1071}
1072
1073impl ::protobuf::Clear for Distribution_ExponentialBuckets {
1074 fn clear(&mut self) {
1075 self.num_finite_buckets = 0;
1076 self.growth_factor = 0.;
1077 self.scale = 0.;
1078 self.unknown_fields.clear();
1079 }
1080}
1081
1082impl ::std::fmt::Debug for Distribution_ExponentialBuckets {
1083 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1084 ::protobuf::text_format::fmt(self, f)
1085 }
1086}
1087
1088impl ::protobuf::reflect::ProtobufValue for Distribution_ExponentialBuckets {
1089 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1090 ::protobuf::reflect::ReflectValueRef::Message(self)
1091 }
1092}
1093
1094#[derive(PartialEq,Clone,Default)]
1095pub struct Distribution_ExplicitBuckets {
1096 pub bounds: ::std::vec::Vec<f64>,
1098 pub unknown_fields: ::protobuf::UnknownFields,
1100 pub cached_size: ::protobuf::CachedSize,
1101}
1102
1103impl<'a> ::std::default::Default for &'a Distribution_ExplicitBuckets {
1104 fn default() -> &'a Distribution_ExplicitBuckets {
1105 <Distribution_ExplicitBuckets as ::protobuf::Message>::default_instance()
1106 }
1107}
1108
1109impl Distribution_ExplicitBuckets {
1110 pub fn new() -> Distribution_ExplicitBuckets {
1111 ::std::default::Default::default()
1112 }
1113
1114 pub fn get_bounds(&self) -> &[f64] {
1118 &self.bounds
1119 }
1120 pub fn clear_bounds(&mut self) {
1121 self.bounds.clear();
1122 }
1123
1124 pub fn set_bounds(&mut self, v: ::std::vec::Vec<f64>) {
1126 self.bounds = v;
1127 }
1128
1129 pub fn mut_bounds(&mut self) -> &mut ::std::vec::Vec<f64> {
1131 &mut self.bounds
1132 }
1133
1134 pub fn take_bounds(&mut self) -> ::std::vec::Vec<f64> {
1136 ::std::mem::replace(&mut self.bounds, ::std::vec::Vec::new())
1137 }
1138}
1139
1140impl ::protobuf::Message for Distribution_ExplicitBuckets {
1141 fn is_initialized(&self) -> bool {
1142 true
1143 }
1144
1145 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1146 while !is.eof()? {
1147 let (field_number, wire_type) = is.read_tag_unpack()?;
1148 match field_number {
1149 1 => {
1150 ::protobuf::rt::read_repeated_double_into(wire_type, is, &mut self.bounds)?;
1151 },
1152 _ => {
1153 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1154 },
1155 };
1156 }
1157 ::std::result::Result::Ok(())
1158 }
1159
1160 #[allow(unused_variables)]
1162 fn compute_size(&self) -> u32 {
1163 let mut my_size = 0;
1164 my_size += 9 * self.bounds.len() as u32;
1165 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1166 self.cached_size.set(my_size);
1167 my_size
1168 }
1169
1170 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1171 for v in &self.bounds {
1172 os.write_double(1, *v)?;
1173 };
1174 os.write_unknown_fields(self.get_unknown_fields())?;
1175 ::std::result::Result::Ok(())
1176 }
1177
1178 fn get_cached_size(&self) -> u32 {
1179 self.cached_size.get()
1180 }
1181
1182 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1183 &self.unknown_fields
1184 }
1185
1186 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1187 &mut self.unknown_fields
1188 }
1189
1190 fn as_any(&self) -> &dyn (::std::any::Any) {
1191 self as &dyn (::std::any::Any)
1192 }
1193 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1194 self as &mut dyn (::std::any::Any)
1195 }
1196 fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1197 self
1198 }
1199
1200 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1201 Self::descriptor_static()
1202 }
1203
1204 fn new() -> Distribution_ExplicitBuckets {
1205 Distribution_ExplicitBuckets::new()
1206 }
1207
1208 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1209 static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
1210 descriptor.get(|| {
1211 let mut fields = ::std::vec::Vec::new();
1212 fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
1213 "bounds",
1214 |m: &Distribution_ExplicitBuckets| { &m.bounds },
1215 |m: &mut Distribution_ExplicitBuckets| { &mut m.bounds },
1216 ));
1217 ::protobuf::reflect::MessageDescriptor::new_pb_name::<Distribution_ExplicitBuckets>(
1218 "Distribution.ExplicitBuckets",
1219 fields,
1220 file_descriptor_proto()
1221 )
1222 })
1223 }
1224
1225 fn default_instance() -> &'static Distribution_ExplicitBuckets {
1226 static instance: ::protobuf::rt::LazyV2<Distribution_ExplicitBuckets> = ::protobuf::rt::LazyV2::INIT;
1227 instance.get(Distribution_ExplicitBuckets::new)
1228 }
1229}
1230
1231impl ::protobuf::Clear for Distribution_ExplicitBuckets {
1232 fn clear(&mut self) {
1233 self.bounds.clear();
1234 self.unknown_fields.clear();
1235 }
1236}
1237
1238impl ::std::fmt::Debug for Distribution_ExplicitBuckets {
1239 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1240 ::protobuf::text_format::fmt(self, f)
1241 }
1242}
1243
1244impl ::protobuf::reflect::ProtobufValue for Distribution_ExplicitBuckets {
1245 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1246 ::protobuf::reflect::ReflectValueRef::Message(self)
1247 }
1248}
1249
1250static file_descriptor_proto_data: &'static [u8] = b"\
1251 \n/google/api/servicecontrol/v1/distribution.proto\x12\x1cgoogle.api.ser\
1252 vicecontrol.v1\x1a\x1dgoogle/api/distribution.proto\"\xf1\x06\n\x0cDistr\
1253 ibution\x12\x14\n\x05count\x18\x01\x20\x01(\x03R\x05count\x12\x12\n\x04m\
1254 ean\x18\x02\x20\x01(\x01R\x04mean\x12\x18\n\x07minimum\x18\x03\x20\x01(\
1255 \x01R\x07minimum\x12\x18\n\x07maximum\x18\x04\x20\x01(\x01R\x07maximum\
1256 \x127\n\x18sum_of_squared_deviation\x18\x05\x20\x01(\x01R\x15sumOfSquare\
1257 dDeviation\x12#\n\rbucket_counts\x18\x06\x20\x03(\x03R\x0cbucketCounts\
1258 \x12a\n\x0elinear_buckets\x18\x07\x20\x01(\x0b28.google.api.servicecontr\
1259 ol.v1.Distribution.LinearBucketsH\0R\rlinearBuckets\x12p\n\x13exponentia\
1260 l_buckets\x18\x08\x20\x01(\x0b2=.google.api.servicecontrol.v1.Distributi\
1261 on.ExponentialBucketsH\0R\x12exponentialBuckets\x12g\n\x10explicit_bucke\
1262 ts\x18\t\x20\x01(\x0b2:.google.api.servicecontrol.v1.Distribution.Explic\
1263 itBucketsH\0R\x0fexplicitBuckets\x12?\n\texemplars\x18\n\x20\x03(\x0b2!.\
1264 google.api.Distribution.ExemplarR\texemplars\x1ak\n\rLinearBuckets\x12,\
1265 \n\x12num_finite_buckets\x18\x01\x20\x01(\x05R\x10numFiniteBuckets\x12\
1266 \x14\n\x05width\x18\x02\x20\x01(\x01R\x05width\x12\x16\n\x06offset\x18\
1267 \x03\x20\x01(\x01R\x06offset\x1a}\n\x12ExponentialBuckets\x12,\n\x12num_\
1268 finite_buckets\x18\x01\x20\x01(\x05R\x10numFiniteBuckets\x12#\n\rgrowth_\
1269 factor\x18\x02\x20\x01(\x01R\x0cgrowthFactor\x12\x14\n\x05scale\x18\x03\
1270 \x20\x01(\x01R\x05scale\x1a)\n\x0fExplicitBuckets\x12\x16\n\x06bounds\
1271 \x18\x01\x20\x03(\x01R\x06boundsB\x0f\n\rbucket_optionB\xec\x01\n\x20com\
1272 .google.api.servicecontrol.v1B\x11DistributionProtoP\x01ZJcloud.google.c\
1273 om/go/servicecontrol/apiv1/servicecontrolpb;servicecontrolpb\xf8\x01\x01\
1274 \xaa\x02\x1eGoogle.Cloud.ServiceControl.V1\xca\x02\x1eGoogle\\Cloud\\Ser\
1275 viceControl\\V1\xea\x02!Google::Cloud::ServiceControl::V1J\xbc4\n\x07\
1276 \x12\x05\x0e\0\xa5\x01\x01\n\xbc\x04\n\x01\x0c\x12\x03\x0e\0\x122\xb1\
1277 \x04\x20Copyright\x202021\x20Google\x20LLC\n\n\x20Licensed\x20under\x20t\
1278 he\x20Apache\x20License,\x20Version\x202.0\x20(the\x20\"License\");\n\
1279 \x20you\x20may\x20not\x20use\x20this\x20file\x20except\x20in\x20complian\
1280 ce\x20with\x20the\x20License.\n\x20You\x20may\x20obtain\x20a\x20copy\x20\
1281 of\x20the\x20License\x20at\n\n\x20\x20\x20\x20\x20http://www.apache.org/\
1282 licenses/LICENSE-2.0\n\n\x20Unless\x20required\x20by\x20applicable\x20la\
1283 w\x20or\x20agreed\x20to\x20in\x20writing,\x20software\n\x20distributed\
1284 \x20under\x20the\x20License\x20is\x20distributed\x20on\x20an\x20\"AS\x20\
1285 IS\"\x20BASIS,\n\x20WITHOUT\x20WARRANTIES\x20OR\x20CONDITIONS\x20OF\x20A\
1286 NY\x20KIND,\x20either\x20express\x20or\x20implied.\n\x20See\x20the\x20Li\
1287 cense\x20for\x20the\x20specific\x20language\x20governing\x20permissions\
1288 \x20and\n\x20limitations\x20under\x20the\x20License.\n\n\x08\n\x01\x02\
1289 \x12\x03\x10\0%\n\t\n\x02\x03\0\x12\x03\x12\0'\n\x08\n\x01\x08\x12\x03\
1290 \x14\0\x1f\n\t\n\x02\x08\x1f\x12\x03\x14\0\x1f\n\x08\n\x01\x08\x12\x03\
1291 \x15\0;\n\t\n\x02\x08%\x12\x03\x15\0;\n\x08\n\x01\x08\x12\x03\x16\0a\n\t\
1292 \n\x02\x08\x0b\x12\x03\x16\0a\n\x08\n\x01\x08\x12\x03\x17\0\"\n\t\n\x02\
1293 \x08\n\x12\x03\x17\0\"\n\x08\n\x01\x08\x12\x03\x18\02\n\t\n\x02\x08\x08\
1294 \x12\x03\x18\02\n\x08\n\x01\x08\x12\x03\x19\09\n\t\n\x02\x08\x01\x12\x03\
1295 \x19\09\n\x08\n\x01\x08\x12\x03\x1a\0;\n\t\n\x02\x08)\x12\x03\x1a\0;\n\
1296 \x08\n\x01\x08\x12\x03\x1b\0:\n\t\n\x02\x08-\x12\x03\x1b\0:\n\x89\x03\n\
1297 \x02\x04\0\x12\x05%\0\xa5\x01\x01\x1a\xfb\x02\x20Distribution\x20represe\
1298 nts\x20a\x20frequency\x20distribution\x20of\x20double-valued\x20sample\n\
1299 \x20points.\x20It\x20contains\x20the\x20size\x20of\x20the\x20population\
1300 \x20of\x20sample\x20points\x20plus\n\x20additional\x20optional\x20inform\
1301 ation:\n\n\x20*\x20the\x20arithmetic\x20mean\x20of\x20the\x20samples\n\
1302 \x20*\x20the\x20minimum\x20and\x20maximum\x20of\x20the\x20samples\n\x20*\
1303 \x20the\x20sum-squared-deviation\x20of\x20the\x20samples,\x20used\x20to\
1304 \x20compute\x20variance\n\x20*\x20a\x20histogram\x20of\x20the\x20values\
1305 \x20of\x20the\x20sample\x20points\n\n\n\n\x03\x04\0\x01\x12\x03%\x08\x14\
1306 \n7\n\x04\x04\0\x03\0\x12\x04'\x027\x03\x1a)\x20Describing\x20buckets\
1307 \x20with\x20constant\x20width.\n\n\x0c\n\x05\x04\0\x03\0\x01\x12\x03'\n\
1308 \x17\n\xc1\x01\n\x06\x04\0\x03\0\x02\0\x12\x03+\x04!\x1a\xb1\x01\x20The\
1309 \x20number\x20of\x20finite\x20buckets.\x20With\x20the\x20underflow\x20an\
1310 d\x20overflow\x20buckets,\n\x20the\x20total\x20number\x20of\x20buckets\
1311 \x20is\x20`num_finite_buckets`\x20+\x202.\n\x20See\x20comments\x20on\x20\
1312 `bucket_options`\x20for\x20details.\n\n\x0e\n\x07\x04\0\x03\0\x02\0\x05\
1313 \x12\x03+\x04\t\n\x0e\n\x07\x04\0\x03\0\x02\0\x01\x12\x03+\n\x1c\n\x0e\n\
1314 \x07\x04\0\x03\0\x02\0\x03\x12\x03+\x1f\x20\n\xc1\x01\n\x06\x04\0\x03\0\
1315 \x02\x01\x12\x031\x04\x15\x1a\xb1\x01\x20The\x20i'th\x20linear\x20bucket\
1316 \x20covers\x20the\x20interval\n\x20\x20\x20[offset\x20+\x20(i-1)\x20*\
1317 \x20width,\x20offset\x20+\x20i\x20*\x20width)\n\x20where\x20i\x20ranges\
1318 \x20from\x201\x20to\x20num_finite_buckets,\x20inclusive.\n\x20Must\x20be\
1319 \x20strictly\x20positive.\n\n\x0e\n\x07\x04\0\x03\0\x02\x01\x05\x12\x031\
1320 \x04\n\n\x0e\n\x07\x04\0\x03\0\x02\x01\x01\x12\x031\x0b\x10\n\x0e\n\x07\
1321 \x04\0\x03\0\x02\x01\x03\x12\x031\x13\x14\n\xa5\x01\n\x06\x04\0\x03\0\
1322 \x02\x02\x12\x036\x04\x16\x1a\x95\x01\x20The\x20i'th\x20linear\x20bucket\
1323 \x20covers\x20the\x20interval\n\x20\x20\x20[offset\x20+\x20(i-1)\x20*\
1324 \x20width,\x20offset\x20+\x20i\x20*\x20width)\n\x20where\x20i\x20ranges\
1325 \x20from\x201\x20to\x20num_finite_buckets,\x20inclusive.\n\n\x0e\n\x07\
1326 \x04\0\x03\0\x02\x02\x05\x12\x036\x04\n\n\x0e\n\x07\x04\0\x03\0\x02\x02\
1327 \x01\x12\x036\x0b\x11\n\x0e\n\x07\x04\0\x03\0\x02\x02\x03\x12\x036\x14\
1328 \x15\nD\n\x04\x04\0\x03\x01\x12\x04:\x02K\x03\x1a6\x20Describing\x20buck\
1329 ets\x20with\x20exponentially\x20growing\x20width.\n\n\x0c\n\x05\x04\0\
1330 \x03\x01\x01\x12\x03:\n\x1c\n\xc1\x01\n\x06\x04\0\x03\x01\x02\0\x12\x03>\
1331 \x04!\x1a\xb1\x01\x20The\x20number\x20of\x20finite\x20buckets.\x20With\
1332 \x20the\x20underflow\x20and\x20overflow\x20buckets,\n\x20the\x20total\
1333 \x20number\x20of\x20buckets\x20is\x20`num_finite_buckets`\x20+\x202.\n\
1334 \x20See\x20comments\x20on\x20`bucket_options`\x20for\x20details.\n\n\x0e\
1335 \n\x07\x04\0\x03\x01\x02\0\x05\x12\x03>\x04\t\n\x0e\n\x07\x04\0\x03\x01\
1336 \x02\0\x01\x12\x03>\n\x1c\n\x0e\n\x07\x04\0\x03\x01\x02\0\x03\x12\x03>\
1337 \x1f\x20\n\xcd\x01\n\x06\x04\0\x03\x01\x02\x01\x12\x03D\x04\x1d\x1a\xbd\
1338 \x01\x20The\x20i'th\x20exponential\x20bucket\x20covers\x20the\x20interva\
1339 l\n\x20\x20\x20[scale\x20*\x20growth_factor^(i-1),\x20scale\x20*\x20grow\
1340 th_factor^i)\n\x20where\x20i\x20ranges\x20from\x201\x20to\x20num_finite_\
1341 buckets\x20inclusive.\n\x20Must\x20be\x20larger\x20than\x201.0.\n\n\x0e\
1342 \n\x07\x04\0\x03\x01\x02\x01\x05\x12\x03D\x04\n\n\x0e\n\x07\x04\0\x03\
1343 \x01\x02\x01\x01\x12\x03D\x0b\x18\n\x0e\n\x07\x04\0\x03\x01\x02\x01\x03\
1344 \x12\x03D\x1b\x1c\n\xc1\x01\n\x06\x04\0\x03\x01\x02\x02\x12\x03J\x04\x15\
1345 \x1a\xb1\x01\x20The\x20i'th\x20exponential\x20bucket\x20covers\x20the\
1346 \x20interval\n\x20\x20\x20[scale\x20*\x20growth_factor^(i-1),\x20scale\
1347 \x20*\x20growth_factor^i)\n\x20where\x20i\x20ranges\x20from\x201\x20to\
1348 \x20num_finite_buckets\x20inclusive.\n\x20Must\x20be\x20>\x200.\n\n\x0e\
1349 \n\x07\x04\0\x03\x01\x02\x02\x05\x12\x03J\x04\n\n\x0e\n\x07\x04\0\x03\
1350 \x01\x02\x02\x01\x12\x03J\x0b\x10\n\x0e\n\x07\x04\0\x03\x01\x02\x02\x03\
1351 \x12\x03J\x13\x14\nF\n\x04\x04\0\x03\x02\x12\x04N\x02_\x03\x1a8\x20Descr\
1352 ibing\x20buckets\x20with\x20arbitrary\x20user-provided\x20width.\n\n\x0c\
1353 \n\x05\x04\0\x03\x02\x01\x12\x03N\n\x19\n\xec\x05\n\x06\x04\0\x03\x02\
1354 \x02\0\x12\x03^\x04\x1f\x1a\xdc\x05\x20'bound'\x20is\x20a\x20list\x20of\
1355 \x20strictly\x20increasing\x20boundaries\x20between\n\x20buckets.\x20Not\
1356 e\x20that\x20a\x20list\x20of\x20length\x20N-1\x20defines\x20N\x20buckets\
1357 \x20because\n\x20of\x20fenceposting.\x20See\x20comments\x20on\x20`bucket\
1358 _options`\x20for\x20details.\n\n\x20The\x20i'th\x20finite\x20bucket\x20c\
1359 overs\x20the\x20interval\n\x20\x20\x20[bound[i-1],\x20bound[i])\n\x20whe\
1360 re\x20i\x20ranges\x20from\x201\x20to\x20bound_size()\x20-\x201.\x20Note\
1361 \x20that\x20there\x20are\x20no\n\x20finite\x20buckets\x20at\x20all\x20if\
1362 \x20'bound'\x20only\x20contains\x20a\x20single\x20element;\x20in\n\x20th\
1363 at\x20special\x20case\x20the\x20single\x20bound\x20defines\x20the\x20bou\
1364 ndary\x20between\x20the\n\x20underflow\x20and\x20overflow\x20buckets.\n\
1365 \n\x20bucket\x20number\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
1366 \x20\x20\x20\x20\x20\x20\x20lower\x20bound\x20\x20\x20\x20upper\x20bound\
1367 \n\x20\x20i\x20==\x200\x20(underflow)\x20\x20\x20\x20\x20\x20\x20\x20\
1368 \x20\x20\x20\x20\x20\x20-inf\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
1369 bound[i]\n\x20\x200\x20<\x20i\x20<\x20bound_size()\x20\x20\x20\x20\x20\
1370 \x20\x20\x20\x20\x20\x20\x20bound[i-1]\x20\x20\x20\x20\x20bound[i]\n\x20\
1371 \x20i\x20==\x20bound_size()\x20(overflow)\x20\x20\x20\x20bound[i-1]\x20\
1372 \x20\x20\x20\x20+inf\n\n\x0e\n\x07\x04\0\x03\x02\x02\0\x04\x12\x03^\x04\
1373 \x0c\n\x0e\n\x07\x04\0\x03\x02\x02\0\x05\x12\x03^\r\x13\n\x0e\n\x07\x04\
1374 \0\x03\x02\x02\0\x01\x12\x03^\x14\x1a\n\x0e\n\x07\x04\0\x03\x02\x02\0\
1375 \x03\x12\x03^\x1d\x1e\nM\n\x04\x04\0\x02\0\x12\x03b\x02\x12\x1a@\x20The\
1376 \x20total\x20number\x20of\x20samples\x20in\x20the\x20distribution.\x20Mu\
1377 st\x20be\x20>=\x200.\n\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03b\x02\x07\n\
1378 \x0c\n\x05\x04\0\x02\0\x01\x12\x03b\x08\r\n\x0c\n\x05\x04\0\x02\0\x03\
1379 \x12\x03b\x10\x11\nx\n\x04\x04\0\x02\x01\x12\x03f\x02\x12\x1ak\x20The\
1380 \x20arithmetic\x20mean\x20of\x20the\x20samples\x20in\x20the\x20distribut\
1381 ion.\x20If\x20`count`\x20is\n\x20zero\x20then\x20this\x20field\x20must\
1382 \x20be\x20zero.\n\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03f\x02\x08\n\x0c\n\
1383 \x05\x04\0\x02\x01\x01\x12\x03f\t\r\n\x0c\n\x05\x04\0\x02\x01\x03\x12\
1384 \x03f\x10\x11\nS\n\x04\x04\0\x02\x02\x12\x03i\x02\x15\x1aF\x20The\x20min\
1385 imum\x20of\x20the\x20population\x20of\x20values.\x20Ignored\x20if\x20`co\
1386 unt`\x20is\x20zero.\n\n\x0c\n\x05\x04\0\x02\x02\x05\x12\x03i\x02\x08\n\
1387 \x0c\n\x05\x04\0\x02\x02\x01\x12\x03i\t\x10\n\x0c\n\x05\x04\0\x02\x02\
1388 \x03\x12\x03i\x13\x14\nS\n\x04\x04\0\x02\x03\x12\x03l\x02\x15\x1aF\x20Th\
1389 e\x20maximum\x20of\x20the\x20population\x20of\x20values.\x20Ignored\x20i\
1390 f\x20`count`\x20is\x20zero.\n\n\x0c\n\x05\x04\0\x02\x03\x05\x12\x03l\x02\
1391 \x08\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03l\t\x10\n\x0c\n\x05\x04\0\x02\
1392 \x03\x03\x12\x03l\x13\x14\n\xe0\x01\n\x04\x04\0\x02\x04\x12\x03r\x02&\
1393 \x1a\xd2\x01\x20The\x20sum\x20of\x20squared\x20deviations\x20from\x20the\
1394 \x20mean:\n\x20\x20\x20Sum[i=1..count]((x_i\x20-\x20mean)^2)\n\x20where\
1395 \x20each\x20x_i\x20is\x20a\x20sample\x20values.\x20If\x20`count`\x20is\
1396 \x20zero\x20then\x20this\x20field\n\x20must\x20be\x20zero,\x20otherwise\
1397 \x20validation\x20of\x20the\x20request\x20fails.\n\n\x0c\n\x05\x04\0\x02\
1398 \x04\x05\x12\x03r\x02\x08\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03r\t!\n\
1399 \x0c\n\x05\x04\0\x02\x04\x03\x12\x03r$%\n\xb8\x04\n\x04\x04\0\x02\x05\
1400 \x12\x03\x7f\x02#\x1a\xaa\x04\x20The\x20number\x20of\x20samples\x20in\
1401 \x20each\x20histogram\x20bucket.\x20`bucket_counts`\x20are\n\x20optional\
1402 .\x20If\x20present,\x20they\x20must\x20sum\x20to\x20the\x20`count`\x20va\
1403 lue.\n\n\x20The\x20buckets\x20are\x20defined\x20below\x20in\x20`bucket_o\
1404 ption`.\x20There\x20are\x20N\x20buckets.\n\x20`bucket_counts[0]`\x20is\
1405 \x20the\x20number\x20of\x20samples\x20in\x20the\x20underflow\x20bucket.\
1406 \n\x20`bucket_counts[1]`\x20to\x20`bucket_counts[N-1]`\x20are\x20the\x20\
1407 numbers\x20of\x20samples\n\x20in\x20each\x20of\x20the\x20finite\x20bucke\
1408 ts.\x20And\x20`bucket_counts[N]\x20is\x20the\x20number\n\x20of\x20sample\
1409 s\x20in\x20the\x20overflow\x20bucket.\x20See\x20the\x20comments\x20of\
1410 \x20`bucket_option`\n\x20below\x20for\x20more\x20details.\n\n\x20Any\x20\
1411 suffix\x20of\x20trailing\x20zeros\x20may\x20be\x20omitted.\n\n\x0c\n\x05\
1412 \x04\0\x02\x05\x04\x12\x03\x7f\x02\n\n\x0c\n\x05\x04\0\x02\x05\x05\x12\
1413 \x03\x7f\x0b\x10\n\x0c\n\x05\x04\0\x02\x05\x01\x12\x03\x7f\x11\x1e\n\x0c\
1414 \n\x05\x04\0\x02\x05\x03\x12\x03\x7f!\"\n\xf2\x08\n\x04\x04\0\x08\0\x12\
1415 \x06\x98\x01\x02\xa1\x01\x03\x1a\xe1\x08\x20Defines\x20the\x20buckets\
1416 \x20in\x20the\x20histogram.\x20`bucket_option`\x20and\x20`bucket_counts`\
1417 \n\x20must\x20be\x20both\x20set,\x20or\x20both\x20unset.\n\n\x20Buckets\
1418 \x20are\x20numbered\x20in\x20the\x20range\x20of\x20[0,\x20N],\x20with\
1419 \x20a\x20total\x20of\x20N+1\x20buckets.\n\x20There\x20must\x20be\x20at\
1420 \x20least\x20two\x20buckets\x20(a\x20single-bucket\x20histogram\x20gives\
1421 \n\x20no\x20information\x20that\x20isn't\x20already\x20provided\x20by\
1422 \x20`count`).\n\n\x20The\x20first\x20bucket\x20is\x20the\x20underflow\
1423 \x20bucket\x20which\x20has\x20a\x20lower\x20bound\n\x20of\x20-inf.\x20Th\
1424 e\x20last\x20bucket\x20is\x20the\x20overflow\x20bucket\x20which\x20has\
1425 \x20an\n\x20upper\x20bound\x20of\x20+inf.\x20All\x20other\x20buckets\x20\
1426 (if\x20any)\x20are\x20called\x20\"finite\"\n\x20buckets\x20because\x20th\
1427 ey\x20have\x20finite\x20lower\x20and\x20upper\x20bounds.\x20As\x20descri\
1428 bed\n\x20below,\x20there\x20are\x20three\x20ways\x20to\x20define\x20the\
1429 \x20finite\x20buckets.\n\n\x20\x20\x20(1)\x20Buckets\x20with\x20constant\
1430 \x20width.\n\x20\x20\x20(2)\x20Buckets\x20with\x20exponentially\x20growi\
1431 ng\x20widths.\n\x20\x20\x20(3)\x20Buckets\x20with\x20arbitrary\x20user-p\
1432 rovided\x20widths.\n\n\x20In\x20all\x20cases,\x20the\x20buckets\x20cover\
1433 \x20the\x20entire\x20real\x20number\x20line\x20(-inf,\n\x20+inf).\x20Buc\
1434 ket\x20upper\x20bounds\x20are\x20exclusive\x20and\x20lower\x20bounds\x20\
1435 are\n\x20inclusive.\x20The\x20upper\x20bound\x20of\x20the\x20underflow\
1436 \x20bucket\x20is\x20equal\x20to\x20the\n\x20lower\x20bound\x20of\x20the\
1437 \x20smallest\x20finite\x20bucket;\x20the\x20lower\x20bound\x20of\x20the\
1438 \n\x20overflow\x20bucket\x20is\x20equal\x20to\x20the\x20upper\x20bound\
1439 \x20of\x20the\x20largest\x20finite\n\x20bucket.\n\n\r\n\x05\x04\0\x08\0\
1440 \x01\x12\x04\x98\x01\x08\x15\n,\n\x04\x04\0\x02\x06\x12\x04\x9a\x01\x04%\
1441 \x1a\x1e\x20Buckets\x20with\x20constant\x20width.\n\n\r\n\x05\x04\0\x02\
1442 \x06\x06\x12\x04\x9a\x01\x04\x11\n\r\n\x05\x04\0\x02\x06\x01\x12\x04\x9a\
1443 \x01\x12\x20\n\r\n\x05\x04\0\x02\x06\x03\x12\x04\x9a\x01#$\n9\n\x04\x04\
1444 \0\x02\x07\x12\x04\x9d\x01\x04/\x1a+\x20Buckets\x20with\x20exponentially\
1445 \x20growing\x20width.\n\n\r\n\x05\x04\0\x02\x07\x06\x12\x04\x9d\x01\x04\
1446 \x16\n\r\n\x05\x04\0\x02\x07\x01\x12\x04\x9d\x01\x17*\n\r\n\x05\x04\0\
1447 \x02\x07\x03\x12\x04\x9d\x01-.\n;\n\x04\x04\0\x02\x08\x12\x04\xa0\x01\
1448 \x04)\x1a-\x20Buckets\x20with\x20arbitrary\x20user-provided\x20width.\n\
1449 \n\r\n\x05\x04\0\x02\x08\x06\x12\x04\xa0\x01\x04\x13\n\r\n\x05\x04\0\x02\
1450 \x08\x01\x12\x04\xa0\x01\x14$\n\r\n\x05\x04\0\x02\x08\x03\x12\x04\xa0\
1451 \x01'(\nM\n\x04\x04\0\x02\t\x12\x04\xa4\x01\x02;\x1a?\x20Example\x20poin\
1452 ts.\x20Must\x20be\x20in\x20increasing\x20order\x20of\x20`value`\x20field\
1453 .\n\n\r\n\x05\x04\0\x02\t\x04\x12\x04\xa4\x01\x02\n\n\r\n\x05\x04\0\x02\
1454 \t\x06\x12\x04\xa4\x01\x0b+\n\r\n\x05\x04\0\x02\t\x01\x12\x04\xa4\x01,5\
1455 \n\r\n\x05\x04\0\x02\t\x03\x12\x04\xa4\x018:b\x06proto3\
1456";
1457
1458static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
1459
1460fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
1461 ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
1462}
1463
1464pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
1465 file_descriptor_proto_lazy.get(|| {
1466 parse_descriptor_proto()
1467 })
1468}