#![allow(unknown_lints)]
#![allow(clippy::all)]
#![allow(unused_attributes)]
#![cfg_attr(rustfmt, rustfmt::skip)]
#![allow(box_pointers)]
#![allow(dead_code)]
#![allow(missing_docs)]
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(trivial_casts)]
#![allow(unused_imports)]
#![allow(unused_results)]
#[derive(PartialEq,Clone,Default)]
pub struct Distribution {
pub count: i64,
pub mean: f64,
pub minimum: f64,
pub maximum: f64,
pub sum_of_squared_deviation: f64,
pub bucket_counts: ::std::vec::Vec<i64>,
pub bucket_option: ::std::option::Option<Distribution_oneof_bucket_option>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a Distribution {
fn default() -> &'a Distribution {
<Distribution as ::protobuf::Message>::default_instance()
}
}
#[derive(Clone,PartialEq,Debug)]
pub enum Distribution_oneof_bucket_option {
linear_buckets(Distribution_LinearBuckets),
exponential_buckets(Distribution_ExponentialBuckets),
explicit_buckets(Distribution_ExplicitBuckets),
}
impl Distribution {
pub fn new() -> Distribution {
::std::default::Default::default()
}
pub fn get_count(&self) -> i64 {
self.count
}
pub fn clear_count(&mut self) {
self.count = 0;
}
pub fn set_count(&mut self, v: i64) {
self.count = v;
}
pub fn get_mean(&self) -> f64 {
self.mean
}
pub fn clear_mean(&mut self) {
self.mean = 0.;
}
pub fn set_mean(&mut self, v: f64) {
self.mean = v;
}
pub fn get_minimum(&self) -> f64 {
self.minimum
}
pub fn clear_minimum(&mut self) {
self.minimum = 0.;
}
pub fn set_minimum(&mut self, v: f64) {
self.minimum = v;
}
pub fn get_maximum(&self) -> f64 {
self.maximum
}
pub fn clear_maximum(&mut self) {
self.maximum = 0.;
}
pub fn set_maximum(&mut self, v: f64) {
self.maximum = v;
}
pub fn get_sum_of_squared_deviation(&self) -> f64 {
self.sum_of_squared_deviation
}
pub fn clear_sum_of_squared_deviation(&mut self) {
self.sum_of_squared_deviation = 0.;
}
pub fn set_sum_of_squared_deviation(&mut self, v: f64) {
self.sum_of_squared_deviation = v;
}
pub fn get_bucket_counts(&self) -> &[i64] {
&self.bucket_counts
}
pub fn clear_bucket_counts(&mut self) {
self.bucket_counts.clear();
}
pub fn set_bucket_counts(&mut self, v: ::std::vec::Vec<i64>) {
self.bucket_counts = v;
}
pub fn mut_bucket_counts(&mut self) -> &mut ::std::vec::Vec<i64> {
&mut self.bucket_counts
}
pub fn take_bucket_counts(&mut self) -> ::std::vec::Vec<i64> {
::std::mem::replace(&mut self.bucket_counts, ::std::vec::Vec::new())
}
pub fn get_linear_buckets(&self) -> &Distribution_LinearBuckets {
match self.bucket_option {
::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(ref v)) => v,
_ => <Distribution_LinearBuckets as ::protobuf::Message>::default_instance(),
}
}
pub fn clear_linear_buckets(&mut self) {
self.bucket_option = ::std::option::Option::None;
}
pub fn has_linear_buckets(&self) -> bool {
match self.bucket_option {
::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(..)) => true,
_ => false,
}
}
pub fn set_linear_buckets(&mut self, v: Distribution_LinearBuckets) {
self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(v))
}
pub fn mut_linear_buckets(&mut self) -> &mut Distribution_LinearBuckets {
if let ::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(_)) = self.bucket_option {
} else {
self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(Distribution_LinearBuckets::new()));
}
match self.bucket_option {
::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(ref mut v)) => v,
_ => panic!(),
}
}
pub fn take_linear_buckets(&mut self) -> Distribution_LinearBuckets {
if self.has_linear_buckets() {
match self.bucket_option.take() {
::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(v)) => v,
_ => panic!(),
}
} else {
Distribution_LinearBuckets::new()
}
}
pub fn get_exponential_buckets(&self) -> &Distribution_ExponentialBuckets {
match self.bucket_option {
::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(ref v)) => v,
_ => <Distribution_ExponentialBuckets as ::protobuf::Message>::default_instance(),
}
}
pub fn clear_exponential_buckets(&mut self) {
self.bucket_option = ::std::option::Option::None;
}
pub fn has_exponential_buckets(&self) -> bool {
match self.bucket_option {
::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(..)) => true,
_ => false,
}
}
pub fn set_exponential_buckets(&mut self, v: Distribution_ExponentialBuckets) {
self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(v))
}
pub fn mut_exponential_buckets(&mut self) -> &mut Distribution_ExponentialBuckets {
if let ::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(_)) = self.bucket_option {
} else {
self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(Distribution_ExponentialBuckets::new()));
}
match self.bucket_option {
::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(ref mut v)) => v,
_ => panic!(),
}
}
pub fn take_exponential_buckets(&mut self) -> Distribution_ExponentialBuckets {
if self.has_exponential_buckets() {
match self.bucket_option.take() {
::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(v)) => v,
_ => panic!(),
}
} else {
Distribution_ExponentialBuckets::new()
}
}
pub fn get_explicit_buckets(&self) -> &Distribution_ExplicitBuckets {
match self.bucket_option {
::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(ref v)) => v,
_ => <Distribution_ExplicitBuckets as ::protobuf::Message>::default_instance(),
}
}
pub fn clear_explicit_buckets(&mut self) {
self.bucket_option = ::std::option::Option::None;
}
pub fn has_explicit_buckets(&self) -> bool {
match self.bucket_option {
::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(..)) => true,
_ => false,
}
}
pub fn set_explicit_buckets(&mut self, v: Distribution_ExplicitBuckets) {
self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(v))
}
pub fn mut_explicit_buckets(&mut self) -> &mut Distribution_ExplicitBuckets {
if let ::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(_)) = self.bucket_option {
} else {
self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(Distribution_ExplicitBuckets::new()));
}
match self.bucket_option {
::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(ref mut v)) => v,
_ => panic!(),
}
}
pub fn take_explicit_buckets(&mut self) -> Distribution_ExplicitBuckets {
if self.has_explicit_buckets() {
match self.bucket_option.take() {
::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(v)) => v,
_ => panic!(),
}
} else {
Distribution_ExplicitBuckets::new()
}
}
}
impl ::protobuf::Message for Distribution {
fn is_initialized(&self) -> bool {
if let Some(Distribution_oneof_bucket_option::linear_buckets(ref v)) = self.bucket_option {
if !v.is_initialized() {
return false;
}
}
if let Some(Distribution_oneof_bucket_option::exponential_buckets(ref v)) = self.bucket_option {
if !v.is_initialized() {
return false;
}
}
if let Some(Distribution_oneof_bucket_option::explicit_buckets(ref v)) = self.bucket_option {
if !v.is_initialized() {
return false;
}
}
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int64()?;
self.count = tmp;
},
2 => {
if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.mean = tmp;
},
3 => {
if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.minimum = tmp;
},
4 => {
if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.maximum = tmp;
},
5 => {
if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.sum_of_squared_deviation = tmp;
},
6 => {
::protobuf::rt::read_repeated_int64_into(wire_type, is, &mut self.bucket_counts)?;
},
7 => {
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(is.read_message()?));
},
8 => {
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(is.read_message()?));
},
9 => {
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
self.bucket_option = ::std::option::Option::Some(Distribution_oneof_bucket_option::explicit_buckets(is.read_message()?));
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if self.count != 0 {
my_size += ::protobuf::rt::value_size(1, self.count, ::protobuf::wire_format::WireTypeVarint);
}
if self.mean != 0. {
my_size += 9;
}
if self.minimum != 0. {
my_size += 9;
}
if self.maximum != 0. {
my_size += 9;
}
if self.sum_of_squared_deviation != 0. {
my_size += 9;
}
for value in &self.bucket_counts {
my_size += ::protobuf::rt::value_size(6, *value, ::protobuf::wire_format::WireTypeVarint);
};
if let ::std::option::Option::Some(ref v) = self.bucket_option {
match v {
&Distribution_oneof_bucket_option::linear_buckets(ref v) => {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
},
&Distribution_oneof_bucket_option::exponential_buckets(ref v) => {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
},
&Distribution_oneof_bucket_option::explicit_buckets(ref v) => {
let len = v.compute_size();
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
},
};
}
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
self.cached_size.set(my_size);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
if self.count != 0 {
os.write_int64(1, self.count)?;
}
if self.mean != 0. {
os.write_double(2, self.mean)?;
}
if self.minimum != 0. {
os.write_double(3, self.minimum)?;
}
if self.maximum != 0. {
os.write_double(4, self.maximum)?;
}
if self.sum_of_squared_deviation != 0. {
os.write_double(5, self.sum_of_squared_deviation)?;
}
for v in &self.bucket_counts {
os.write_int64(6, *v)?;
};
if let ::std::option::Option::Some(ref v) = self.bucket_option {
match v {
&Distribution_oneof_bucket_option::linear_buckets(ref v) => {
os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
},
&Distribution_oneof_bucket_option::exponential_buckets(ref v) => {
os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
},
&Distribution_oneof_bucket_option::explicit_buckets(ref v) => {
os.write_tag(9, ::protobuf::wire_format::WireTypeLengthDelimited)?;
os.write_raw_varint32(v.get_cached_size())?;
v.write_to_with_cached_sizes(os)?;
},
};
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> Distribution {
Distribution::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
"count",
|m: &Distribution| { &m.count },
|m: &mut Distribution| { &mut m.count },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"mean",
|m: &Distribution| { &m.mean },
|m: &mut Distribution| { &mut m.mean },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"minimum",
|m: &Distribution| { &m.minimum },
|m: &mut Distribution| { &mut m.minimum },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"maximum",
|m: &Distribution| { &m.maximum },
|m: &mut Distribution| { &mut m.maximum },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"sum_of_squared_deviation",
|m: &Distribution| { &m.sum_of_squared_deviation },
|m: &mut Distribution| { &mut m.sum_of_squared_deviation },
));
fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
"bucket_counts",
|m: &Distribution| { &m.bucket_counts },
|m: &mut Distribution| { &mut m.bucket_counts },
));
fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, Distribution_LinearBuckets>(
"linear_buckets",
Distribution::has_linear_buckets,
Distribution::get_linear_buckets,
));
fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, Distribution_ExponentialBuckets>(
"exponential_buckets",
Distribution::has_exponential_buckets,
Distribution::get_exponential_buckets,
));
fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, Distribution_ExplicitBuckets>(
"explicit_buckets",
Distribution::has_explicit_buckets,
Distribution::get_explicit_buckets,
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<Distribution>(
"Distribution",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static Distribution {
static instance: ::protobuf::rt::LazyV2<Distribution> = ::protobuf::rt::LazyV2::INIT;
instance.get(Distribution::new)
}
}
impl ::protobuf::Clear for Distribution {
fn clear(&mut self) {
self.count = 0;
self.mean = 0.;
self.minimum = 0.;
self.maximum = 0.;
self.sum_of_squared_deviation = 0.;
self.bucket_counts.clear();
self.bucket_option = ::std::option::Option::None;
self.bucket_option = ::std::option::Option::None;
self.bucket_option = ::std::option::Option::None;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for Distribution {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Distribution {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct Distribution_LinearBuckets {
pub num_finite_buckets: i32,
pub width: f64,
pub offset: f64,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a Distribution_LinearBuckets {
fn default() -> &'a Distribution_LinearBuckets {
<Distribution_LinearBuckets as ::protobuf::Message>::default_instance()
}
}
impl Distribution_LinearBuckets {
pub fn new() -> Distribution_LinearBuckets {
::std::default::Default::default()
}
pub fn get_num_finite_buckets(&self) -> i32 {
self.num_finite_buckets
}
pub fn clear_num_finite_buckets(&mut self) {
self.num_finite_buckets = 0;
}
pub fn set_num_finite_buckets(&mut self, v: i32) {
self.num_finite_buckets = v;
}
pub fn get_width(&self) -> f64 {
self.width
}
pub fn clear_width(&mut self) {
self.width = 0.;
}
pub fn set_width(&mut self, v: f64) {
self.width = v;
}
pub fn get_offset(&self) -> f64 {
self.offset
}
pub fn clear_offset(&mut self) {
self.offset = 0.;
}
pub fn set_offset(&mut self, v: f64) {
self.offset = v;
}
}
impl ::protobuf::Message for Distribution_LinearBuckets {
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int32()?;
self.num_finite_buckets = tmp;
},
2 => {
if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.width = tmp;
},
3 => {
if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.offset = tmp;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if self.num_finite_buckets != 0 {
my_size += ::protobuf::rt::value_size(1, self.num_finite_buckets, ::protobuf::wire_format::WireTypeVarint);
}
if self.width != 0. {
my_size += 9;
}
if self.offset != 0. {
my_size += 9;
}
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
self.cached_size.set(my_size);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
if self.num_finite_buckets != 0 {
os.write_int32(1, self.num_finite_buckets)?;
}
if self.width != 0. {
os.write_double(2, self.width)?;
}
if self.offset != 0. {
os.write_double(3, self.offset)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> Distribution_LinearBuckets {
Distribution_LinearBuckets::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
"num_finite_buckets",
|m: &Distribution_LinearBuckets| { &m.num_finite_buckets },
|m: &mut Distribution_LinearBuckets| { &mut m.num_finite_buckets },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"width",
|m: &Distribution_LinearBuckets| { &m.width },
|m: &mut Distribution_LinearBuckets| { &mut m.width },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"offset",
|m: &Distribution_LinearBuckets| { &m.offset },
|m: &mut Distribution_LinearBuckets| { &mut m.offset },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<Distribution_LinearBuckets>(
"Distribution.LinearBuckets",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static Distribution_LinearBuckets {
static instance: ::protobuf::rt::LazyV2<Distribution_LinearBuckets> = ::protobuf::rt::LazyV2::INIT;
instance.get(Distribution_LinearBuckets::new)
}
}
impl ::protobuf::Clear for Distribution_LinearBuckets {
fn clear(&mut self) {
self.num_finite_buckets = 0;
self.width = 0.;
self.offset = 0.;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for Distribution_LinearBuckets {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Distribution_LinearBuckets {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct Distribution_ExponentialBuckets {
pub num_finite_buckets: i32,
pub growth_factor: f64,
pub scale: f64,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a Distribution_ExponentialBuckets {
fn default() -> &'a Distribution_ExponentialBuckets {
<Distribution_ExponentialBuckets as ::protobuf::Message>::default_instance()
}
}
impl Distribution_ExponentialBuckets {
pub fn new() -> Distribution_ExponentialBuckets {
::std::default::Default::default()
}
pub fn get_num_finite_buckets(&self) -> i32 {
self.num_finite_buckets
}
pub fn clear_num_finite_buckets(&mut self) {
self.num_finite_buckets = 0;
}
pub fn set_num_finite_buckets(&mut self, v: i32) {
self.num_finite_buckets = v;
}
pub fn get_growth_factor(&self) -> f64 {
self.growth_factor
}
pub fn clear_growth_factor(&mut self) {
self.growth_factor = 0.;
}
pub fn set_growth_factor(&mut self, v: f64) {
self.growth_factor = v;
}
pub fn get_scale(&self) -> f64 {
self.scale
}
pub fn clear_scale(&mut self) {
self.scale = 0.;
}
pub fn set_scale(&mut self, v: f64) {
self.scale = v;
}
}
impl ::protobuf::Message for Distribution_ExponentialBuckets {
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
if wire_type != ::protobuf::wire_format::WireTypeVarint {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_int32()?;
self.num_finite_buckets = tmp;
},
2 => {
if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.growth_factor = tmp;
},
3 => {
if wire_type != ::protobuf::wire_format::WireTypeFixed64 {
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
}
let tmp = is.read_double()?;
self.scale = tmp;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
if self.num_finite_buckets != 0 {
my_size += ::protobuf::rt::value_size(1, self.num_finite_buckets, ::protobuf::wire_format::WireTypeVarint);
}
if self.growth_factor != 0. {
my_size += 9;
}
if self.scale != 0. {
my_size += 9;
}
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
self.cached_size.set(my_size);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
if self.num_finite_buckets != 0 {
os.write_int32(1, self.num_finite_buckets)?;
}
if self.growth_factor != 0. {
os.write_double(2, self.growth_factor)?;
}
if self.scale != 0. {
os.write_double(3, self.scale)?;
}
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> Distribution_ExponentialBuckets {
Distribution_ExponentialBuckets::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
"num_finite_buckets",
|m: &Distribution_ExponentialBuckets| { &m.num_finite_buckets },
|m: &mut Distribution_ExponentialBuckets| { &mut m.num_finite_buckets },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"growth_factor",
|m: &Distribution_ExponentialBuckets| { &m.growth_factor },
|m: &mut Distribution_ExponentialBuckets| { &mut m.growth_factor },
));
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"scale",
|m: &Distribution_ExponentialBuckets| { &m.scale },
|m: &mut Distribution_ExponentialBuckets| { &mut m.scale },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<Distribution_ExponentialBuckets>(
"Distribution.ExponentialBuckets",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static Distribution_ExponentialBuckets {
static instance: ::protobuf::rt::LazyV2<Distribution_ExponentialBuckets> = ::protobuf::rt::LazyV2::INIT;
instance.get(Distribution_ExponentialBuckets::new)
}
}
impl ::protobuf::Clear for Distribution_ExponentialBuckets {
fn clear(&mut self) {
self.num_finite_buckets = 0;
self.growth_factor = 0.;
self.scale = 0.;
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for Distribution_ExponentialBuckets {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Distribution_ExponentialBuckets {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct Distribution_ExplicitBuckets {
pub bounds: ::std::vec::Vec<f64>,
pub unknown_fields: ::protobuf::UnknownFields,
pub cached_size: ::protobuf::CachedSize,
}
impl<'a> ::std::default::Default for &'a Distribution_ExplicitBuckets {
fn default() -> &'a Distribution_ExplicitBuckets {
<Distribution_ExplicitBuckets as ::protobuf::Message>::default_instance()
}
}
impl Distribution_ExplicitBuckets {
pub fn new() -> Distribution_ExplicitBuckets {
::std::default::Default::default()
}
pub fn get_bounds(&self) -> &[f64] {
&self.bounds
}
pub fn clear_bounds(&mut self) {
self.bounds.clear();
}
pub fn set_bounds(&mut self, v: ::std::vec::Vec<f64>) {
self.bounds = v;
}
pub fn mut_bounds(&mut self) -> &mut ::std::vec::Vec<f64> {
&mut self.bounds
}
pub fn take_bounds(&mut self) -> ::std::vec::Vec<f64> {
::std::mem::replace(&mut self.bounds, ::std::vec::Vec::new())
}
}
impl ::protobuf::Message for Distribution_ExplicitBuckets {
fn is_initialized(&self) -> bool {
true
}
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
while !is.eof()? {
let (field_number, wire_type) = is.read_tag_unpack()?;
match field_number {
1 => {
::protobuf::rt::read_repeated_double_into(wire_type, is, &mut self.bounds)?;
},
_ => {
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
},
};
}
::std::result::Result::Ok(())
}
#[allow(unused_variables)]
fn compute_size(&self) -> u32 {
let mut my_size = 0;
my_size += 9 * self.bounds.len() as u32;
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
self.cached_size.set(my_size);
my_size
}
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
for v in &self.bounds {
os.write_double(1, *v)?;
};
os.write_unknown_fields(self.get_unknown_fields())?;
::std::result::Result::Ok(())
}
fn get_cached_size(&self) -> u32 {
self.cached_size.get()
}
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
&self.unknown_fields
}
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
&mut self.unknown_fields
}
fn as_any(&self) -> &dyn (::std::any::Any) {
self as &dyn (::std::any::Any)
}
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
self as &mut dyn (::std::any::Any)
}
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
self
}
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
Self::descriptor_static()
}
fn new() -> Distribution_ExplicitBuckets {
Distribution_ExplicitBuckets::new()
}
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
descriptor.get(|| {
let mut fields = ::std::vec::Vec::new();
fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
"bounds",
|m: &Distribution_ExplicitBuckets| { &m.bounds },
|m: &mut Distribution_ExplicitBuckets| { &mut m.bounds },
));
::protobuf::reflect::MessageDescriptor::new_pb_name::<Distribution_ExplicitBuckets>(
"Distribution.ExplicitBuckets",
fields,
file_descriptor_proto()
)
})
}
fn default_instance() -> &'static Distribution_ExplicitBuckets {
static instance: ::protobuf::rt::LazyV2<Distribution_ExplicitBuckets> = ::protobuf::rt::LazyV2::INIT;
instance.get(Distribution_ExplicitBuckets::new)
}
}
impl ::protobuf::Clear for Distribution_ExplicitBuckets {
fn clear(&mut self) {
self.bounds.clear();
self.unknown_fields.clear();
}
}
impl ::std::fmt::Debug for Distribution_ExplicitBuckets {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
::protobuf::text_format::fmt(self, f)
}
}
impl ::protobuf::reflect::ProtobufValue for Distribution_ExplicitBuckets {
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
::protobuf::reflect::ReflectValueRef::Message(self)
}
}
static file_descriptor_proto_data: &'static [u8] = b"\
\n/google/api/servicecontrol/v1/distribution.proto\x12\x1cgoogle.api.ser\
vicecontrol.v1\"\xb0\x06\n\x0cDistribution\x12\x14\n\x05count\x18\x01\
\x20\x01(\x03R\x05count\x12\x12\n\x04mean\x18\x02\x20\x01(\x01R\x04mean\
\x12\x18\n\x07minimum\x18\x03\x20\x01(\x01R\x07minimum\x12\x18\n\x07maxi\
mum\x18\x04\x20\x01(\x01R\x07maximum\x127\n\x18sum_of_squared_deviation\
\x18\x05\x20\x01(\x01R\x15sumOfSquaredDeviation\x12#\n\rbucket_counts\
\x18\x06\x20\x03(\x03R\x0cbucketCounts\x12a\n\x0elinear_buckets\x18\x07\
\x20\x01(\x0b28.google.api.servicecontrol.v1.Distribution.LinearBucketsH\
\0R\rlinearBuckets\x12p\n\x13exponential_buckets\x18\x08\x20\x01(\x0b2=.\
google.api.servicecontrol.v1.Distribution.ExponentialBucketsH\0R\x12expo\
nentialBuckets\x12g\n\x10explicit_buckets\x18\t\x20\x01(\x0b2:.google.ap\
i.servicecontrol.v1.Distribution.ExplicitBucketsH\0R\x0fexplicitBuckets\
\x1ak\n\rLinearBuckets\x12,\n\x12num_finite_buckets\x18\x01\x20\x01(\x05\
R\x10numFiniteBuckets\x12\x14\n\x05width\x18\x02\x20\x01(\x01R\x05width\
\x12\x16\n\x06offset\x18\x03\x20\x01(\x01R\x06offset\x1a}\n\x12Exponenti\
alBuckets\x12,\n\x12num_finite_buckets\x18\x01\x20\x01(\x05R\x10numFinit\
eBuckets\x12#\n\rgrowth_factor\x18\x02\x20\x01(\x01R\x0cgrowthFactor\x12\
\x14\n\x05scale\x18\x03\x20\x01(\x01R\x05scale\x1a)\n\x0fExplicitBuckets\
\x12\x16\n\x06bounds\x18\x01\x20\x03(\x01R\x06boundsB\x0f\n\rbucket_opti\
onB\x86\x01\n\x20com.google.api.servicecontrol.v1B\x11DistributionProtoP\
\x01ZJgoogle.golang.org/genproto/googleapis/api/servicecontrol/v1;servic\
econtrol\xf8\x01\x01J\xf02\n\x07\x12\x05\x0e\0\x9d\x01\x01\n\xbd\x04\n\
\x01\x0c\x12\x03\x0e\0\x122\xb2\x04\x20Copyright\x202017\x20Google\x20In\
c.\n\n\x20Licensed\x20under\x20the\x20Apache\x20License,\x20Version\x202\
.0\x20(the\x20\"License\");\n\x20you\x20may\x20not\x20use\x20this\x20fil\
e\x20except\x20in\x20compliance\x20with\x20the\x20License.\n\x20You\x20m\
ay\x20obtain\x20a\x20copy\x20of\x20the\x20License\x20at\n\n\x20\x20\x20\
\x20\x20http://www.apache.org/licenses/LICENSE-2.0\n\n\x20Unless\x20requ\
ired\x20by\x20applicable\x20law\x20or\x20agreed\x20to\x20in\x20writing,\
\x20software\n\x20distributed\x20under\x20the\x20License\x20is\x20distri\
buted\x20on\x20an\x20\"AS\x20IS\"\x20BASIS,\n\x20WITHOUT\x20WARRANTIES\
\x20OR\x20CONDITIONS\x20OF\x20ANY\x20KIND,\x20either\x20express\x20or\
\x20implied.\n\x20See\x20the\x20License\x20for\x20the\x20specific\x20lan\
guage\x20governing\x20permissions\x20and\n\x20limitations\x20under\x20th\
e\x20License.\n\n\x08\n\x01\x02\x12\x03\x10\0%\n\x08\n\x01\x08\x12\x03\
\x12\0\x1f\n\t\n\x02\x08\x1f\x12\x03\x12\0\x1f\n\x08\n\x01\x08\x12\x03\
\x13\0a\n\t\n\x02\x08\x0b\x12\x03\x13\0a\n\x08\n\x01\x08\x12\x03\x14\0\"\
\n\t\n\x02\x08\n\x12\x03\x14\0\"\n\x08\n\x01\x08\x12\x03\x15\02\n\t\n\
\x02\x08\x08\x12\x03\x15\02\n\x08\n\x01\x08\x12\x03\x16\09\n\t\n\x02\x08\
\x01\x12\x03\x16\09\n\x91\x03\n\x02\x04\0\x12\x05\x20\0\x9d\x01\x01\x1a\
\x83\x03\x20Distribution\x20represents\x20a\x20frequency\x20distribution\
\x20of\x20double-valued\x20sample\n\x20points.\x20It\x20contains\x20the\
\x20size\x20of\x20the\x20population\x20of\x20sample\x20points\x20plus\n\
\x20additional\x20optional\x20information:\n\n\x20\x20\x20-\x20the\x20ar\
ithmetic\x20mean\x20of\x20the\x20samples\n\x20\x20\x20-\x20the\x20minimu\
m\x20and\x20maximum\x20of\x20the\x20samples\n\x20\x20\x20-\x20the\x20sum\
-squared-deviation\x20of\x20the\x20samples,\x20used\x20to\x20compute\x20\
variance\n\x20\x20\x20-\x20a\x20histogram\x20of\x20the\x20values\x20of\
\x20the\x20sample\x20points\n\n\n\n\x03\x04\0\x01\x12\x03\x20\x08\x14\n7\
\n\x04\x04\0\x03\0\x12\x04\"\x022\x03\x1a)\x20Describing\x20buckets\x20w\
ith\x20constant\x20width.\n\n\x0c\n\x05\x04\0\x03\0\x01\x12\x03\"\n\x17\
\n\xc1\x01\n\x06\x04\0\x03\0\x02\0\x12\x03&\x04!\x1a\xb1\x01\x20The\x20n\
umber\x20of\x20finite\x20buckets.\x20With\x20the\x20underflow\x20and\x20\
overflow\x20buckets,\n\x20the\x20total\x20number\x20of\x20buckets\x20is\
\x20`num_finite_buckets`\x20+\x202.\n\x20See\x20comments\x20on\x20`bucke\
t_options`\x20for\x20details.\n\n\x0e\n\x07\x04\0\x03\0\x02\0\x05\x12\
\x03&\x04\t\n\x0e\n\x07\x04\0\x03\0\x02\0\x01\x12\x03&\n\x1c\n\x0e\n\x07\
\x04\0\x03\0\x02\0\x03\x12\x03&\x1f\x20\n\xc1\x01\n\x06\x04\0\x03\0\x02\
\x01\x12\x03,\x04\x15\x1a\xb1\x01\x20The\x20i'th\x20linear\x20bucket\x20\
covers\x20the\x20interval\n\x20\x20\x20[offset\x20+\x20(i-1)\x20*\x20wid\
th,\x20offset\x20+\x20i\x20*\x20width)\n\x20where\x20i\x20ranges\x20from\
\x201\x20to\x20num_finite_buckets,\x20inclusive.\n\x20Must\x20be\x20stri\
ctly\x20positive.\n\n\x0e\n\x07\x04\0\x03\0\x02\x01\x05\x12\x03,\x04\n\n\
\x0e\n\x07\x04\0\x03\0\x02\x01\x01\x12\x03,\x0b\x10\n\x0e\n\x07\x04\0\
\x03\0\x02\x01\x03\x12\x03,\x13\x14\n\xa5\x01\n\x06\x04\0\x03\0\x02\x02\
\x12\x031\x04\x16\x1a\x95\x01\x20The\x20i'th\x20linear\x20bucket\x20cove\
rs\x20the\x20interval\n\x20\x20\x20[offset\x20+\x20(i-1)\x20*\x20width,\
\x20offset\x20+\x20i\x20*\x20width)\n\x20where\x20i\x20ranges\x20from\
\x201\x20to\x20num_finite_buckets,\x20inclusive.\n\n\x0e\n\x07\x04\0\x03\
\0\x02\x02\x05\x12\x031\x04\n\n\x0e\n\x07\x04\0\x03\0\x02\x02\x01\x12\
\x031\x0b\x11\n\x0e\n\x07\x04\0\x03\0\x02\x02\x03\x12\x031\x14\x15\nD\n\
\x04\x04\0\x03\x01\x12\x045\x02F\x03\x1a6\x20Describing\x20buckets\x20wi\
th\x20exponentially\x20growing\x20width.\n\n\x0c\n\x05\x04\0\x03\x01\x01\
\x12\x035\n\x1c\n\xc1\x01\n\x06\x04\0\x03\x01\x02\0\x12\x039\x04!\x1a\
\xb1\x01\x20The\x20number\x20of\x20finite\x20buckets.\x20With\x20the\x20\
underflow\x20and\x20overflow\x20buckets,\n\x20the\x20total\x20number\x20\
of\x20buckets\x20is\x20`num_finite_buckets`\x20+\x202.\n\x20See\x20comme\
nts\x20on\x20`bucket_options`\x20for\x20details.\n\n\x0e\n\x07\x04\0\x03\
\x01\x02\0\x05\x12\x039\x04\t\n\x0e\n\x07\x04\0\x03\x01\x02\0\x01\x12\
\x039\n\x1c\n\x0e\n\x07\x04\0\x03\x01\x02\0\x03\x12\x039\x1f\x20\n\xcd\
\x01\n\x06\x04\0\x03\x01\x02\x01\x12\x03?\x04\x1d\x1a\xbd\x01\x20The\x20\
i'th\x20exponential\x20bucket\x20covers\x20the\x20interval\n\x20\x20\x20\
[scale\x20*\x20growth_factor^(i-1),\x20scale\x20*\x20growth_factor^i)\n\
\x20where\x20i\x20ranges\x20from\x201\x20to\x20num_finite_buckets\x20inc\
lusive.\n\x20Must\x20be\x20larger\x20than\x201.0.\n\n\x0e\n\x07\x04\0\
\x03\x01\x02\x01\x05\x12\x03?\x04\n\n\x0e\n\x07\x04\0\x03\x01\x02\x01\
\x01\x12\x03?\x0b\x18\n\x0e\n\x07\x04\0\x03\x01\x02\x01\x03\x12\x03?\x1b\
\x1c\n\xc1\x01\n\x06\x04\0\x03\x01\x02\x02\x12\x03E\x04\x15\x1a\xb1\x01\
\x20The\x20i'th\x20exponential\x20bucket\x20covers\x20the\x20interval\n\
\x20\x20\x20[scale\x20*\x20growth_factor^(i-1),\x20scale\x20*\x20growth_\
factor^i)\n\x20where\x20i\x20ranges\x20from\x201\x20to\x20num_finite_buc\
kets\x20inclusive.\n\x20Must\x20be\x20>\x200.\n\n\x0e\n\x07\x04\0\x03\
\x01\x02\x02\x05\x12\x03E\x04\n\n\x0e\n\x07\x04\0\x03\x01\x02\x02\x01\
\x12\x03E\x0b\x10\n\x0e\n\x07\x04\0\x03\x01\x02\x02\x03\x12\x03E\x13\x14\
\nF\n\x04\x04\0\x03\x02\x12\x04I\x02Z\x03\x1a8\x20Describing\x20buckets\
\x20with\x20arbitrary\x20user-provided\x20width.\n\n\x0c\n\x05\x04\0\x03\
\x02\x01\x12\x03I\n\x19\n\xec\x05\n\x06\x04\0\x03\x02\x02\0\x12\x03Y\x04\
\x1f\x1a\xdc\x05\x20'bound'\x20is\x20a\x20list\x20of\x20strictly\x20incr\
easing\x20boundaries\x20between\n\x20buckets.\x20Note\x20that\x20a\x20li\
st\x20of\x20length\x20N-1\x20defines\x20N\x20buckets\x20because\n\x20of\
\x20fenceposting.\x20See\x20comments\x20on\x20`bucket_options`\x20for\
\x20details.\n\n\x20The\x20i'th\x20finite\x20bucket\x20covers\x20the\x20\
interval\n\x20\x20\x20[bound[i-1],\x20bound[i])\n\x20where\x20i\x20range\
s\x20from\x201\x20to\x20bound_size()\x20-\x201.\x20Note\x20that\x20there\
\x20are\x20no\n\x20finite\x20buckets\x20at\x20all\x20if\x20'bound'\x20on\
ly\x20contains\x20a\x20single\x20element;\x20in\n\x20that\x20special\x20\
case\x20the\x20single\x20bound\x20defines\x20the\x20boundary\x20between\
\x20the\n\x20underflow\x20and\x20overflow\x20buckets.\n\n\x20bucket\x20n\
umber\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20lower\x20bound\x20\x20\x20\x20upper\x20bound\n\x20\x20i\x20=\
=\x200\x20(underflow)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20-inf\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20bound[i]\n\x20\
\x200\x20<\x20i\x20<\x20bound_size()\x20\x20\x20\x20\x20\x20\x20\x20\x20\
\x20\x20\x20bound[i-1]\x20\x20\x20\x20\x20bound[i]\n\x20\x20i\x20==\x20b\
ound_size()\x20(overflow)\x20\x20\x20\x20bound[i-1]\x20\x20\x20\x20\x20+\
inf\n\n\x0e\n\x07\x04\0\x03\x02\x02\0\x04\x12\x03Y\x04\x0c\n\x0e\n\x07\
\x04\0\x03\x02\x02\0\x05\x12\x03Y\r\x13\n\x0e\n\x07\x04\0\x03\x02\x02\0\
\x01\x12\x03Y\x14\x1a\n\x0e\n\x07\x04\0\x03\x02\x02\0\x03\x12\x03Y\x1d\
\x1e\nM\n\x04\x04\0\x02\0\x12\x03]\x02\x12\x1a@\x20The\x20total\x20numbe\
r\x20of\x20samples\x20in\x20the\x20distribution.\x20Must\x20be\x20>=\x20\
0.\n\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03]\x02\x07\n\x0c\n\x05\x04\0\x02\
\0\x01\x12\x03]\x08\r\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03]\x10\x11\nx\n\
\x04\x04\0\x02\x01\x12\x03a\x02\x12\x1ak\x20The\x20arithmetic\x20mean\
\x20of\x20the\x20samples\x20in\x20the\x20distribution.\x20If\x20`count`\
\x20is\n\x20zero\x20then\x20this\x20field\x20must\x20be\x20zero.\n\n\x0c\
\n\x05\x04\0\x02\x01\x05\x12\x03a\x02\x08\n\x0c\n\x05\x04\0\x02\x01\x01\
\x12\x03a\t\r\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03a\x10\x11\nS\n\x04\
\x04\0\x02\x02\x12\x03d\x02\x15\x1aF\x20The\x20minimum\x20of\x20the\x20p\
opulation\x20of\x20values.\x20Ignored\x20if\x20`count`\x20is\x20zero.\n\
\n\x0c\n\x05\x04\0\x02\x02\x05\x12\x03d\x02\x08\n\x0c\n\x05\x04\0\x02\
\x02\x01\x12\x03d\t\x10\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03d\x13\x14\n\
S\n\x04\x04\0\x02\x03\x12\x03g\x02\x15\x1aF\x20The\x20maximum\x20of\x20t\
he\x20population\x20of\x20values.\x20Ignored\x20if\x20`count`\x20is\x20z\
ero.\n\n\x0c\n\x05\x04\0\x02\x03\x05\x12\x03g\x02\x08\n\x0c\n\x05\x04\0\
\x02\x03\x01\x12\x03g\t\x10\n\x0c\n\x05\x04\0\x02\x03\x03\x12\x03g\x13\
\x14\n\xe0\x01\n\x04\x04\0\x02\x04\x12\x03m\x02&\x1a\xd2\x01\x20The\x20s\
um\x20of\x20squared\x20deviations\x20from\x20the\x20mean:\n\x20\x20\x20S\
um[i=1..count]((x_i\x20-\x20mean)^2)\n\x20where\x20each\x20x_i\x20is\x20\
a\x20sample\x20values.\x20If\x20`count`\x20is\x20zero\x20then\x20this\
\x20field\n\x20must\x20be\x20zero,\x20otherwise\x20validation\x20of\x20t\
he\x20request\x20fails.\n\n\x0c\n\x05\x04\0\x02\x04\x05\x12\x03m\x02\x08\
\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03m\t!\n\x0c\n\x05\x04\0\x02\x04\x03\
\x12\x03m$%\n\xb8\x04\n\x04\x04\0\x02\x05\x12\x03z\x02#\x1a\xaa\x04\x20T\
he\x20number\x20of\x20samples\x20in\x20each\x20histogram\x20bucket.\x20`\
bucket_counts`\x20are\n\x20optional.\x20If\x20present,\x20they\x20must\
\x20sum\x20to\x20the\x20`count`\x20value.\n\n\x20The\x20buckets\x20are\
\x20defined\x20below\x20in\x20`bucket_option`.\x20There\x20are\x20N\x20b\
uckets.\n\x20`bucket_counts[0]`\x20is\x20the\x20number\x20of\x20samples\
\x20in\x20the\x20underflow\x20bucket.\n\x20`bucket_counts[1]`\x20to\x20`\
bucket_counts[N-1]`\x20are\x20the\x20numbers\x20of\x20samples\n\x20in\
\x20each\x20of\x20the\x20finite\x20buckets.\x20And\x20`bucket_counts[N]\
\x20is\x20the\x20number\n\x20of\x20samples\x20in\x20the\x20overflow\x20b\
ucket.\x20See\x20the\x20comments\x20of\x20`bucket_option`\n\x20below\x20\
for\x20more\x20details.\n\n\x20Any\x20suffix\x20of\x20trailing\x20zeros\
\x20may\x20be\x20omitted.\n\n\x0c\n\x05\x04\0\x02\x05\x04\x12\x03z\x02\n\
\n\x0c\n\x05\x04\0\x02\x05\x05\x12\x03z\x0b\x10\n\x0c\n\x05\x04\0\x02\
\x05\x01\x12\x03z\x11\x1e\n\x0c\n\x05\x04\0\x02\x05\x03\x12\x03z!\"\n\
\xf2\x08\n\x04\x04\0\x08\0\x12\x06\x93\x01\x02\x9c\x01\x03\x1a\xe1\x08\
\x20Defines\x20the\x20buckets\x20in\x20the\x20histogram.\x20`bucket_opti\
on`\x20and\x20`bucket_counts`\n\x20must\x20be\x20both\x20set,\x20or\x20b\
oth\x20unset.\n\n\x20Buckets\x20are\x20numbered\x20in\x20the\x20range\
\x20of\x20[0,\x20N],\x20with\x20a\x20total\x20of\x20N+1\x20buckets.\n\
\x20There\x20must\x20be\x20at\x20least\x20two\x20buckets\x20(a\x20single\
-bucket\x20histogram\x20gives\n\x20no\x20information\x20that\x20isn't\
\x20already\x20provided\x20by\x20`count`).\n\n\x20The\x20first\x20bucket\
\x20is\x20the\x20underflow\x20bucket\x20which\x20has\x20a\x20lower\x20bo\
und\n\x20of\x20-inf.\x20The\x20last\x20bucket\x20is\x20the\x20overflow\
\x20bucket\x20which\x20has\x20an\n\x20upper\x20bound\x20of\x20+inf.\x20A\
ll\x20other\x20buckets\x20(if\x20any)\x20are\x20called\x20\"finite\"\n\
\x20buckets\x20because\x20they\x20have\x20finite\x20lower\x20and\x20uppe\
r\x20bounds.\x20As\x20described\n\x20below,\x20there\x20are\x20three\x20\
ways\x20to\x20define\x20the\x20finite\x20buckets.\n\n\x20\x20\x20(1)\x20\
Buckets\x20with\x20constant\x20width.\n\x20\x20\x20(2)\x20Buckets\x20wit\
h\x20exponentially\x20growing\x20widths.\n\x20\x20\x20(3)\x20Buckets\x20\
with\x20arbitrary\x20user-provided\x20widths.\n\n\x20In\x20all\x20cases,\
\x20the\x20buckets\x20cover\x20the\x20entire\x20real\x20number\x20line\
\x20(-inf,\n\x20+inf).\x20Bucket\x20upper\x20bounds\x20are\x20exclusive\
\x20and\x20lower\x20bounds\x20are\n\x20inclusive.\x20The\x20upper\x20bou\
nd\x20of\x20the\x20underflow\x20bucket\x20is\x20equal\x20to\x20the\n\x20\
lower\x20bound\x20of\x20the\x20smallest\x20finite\x20bucket;\x20the\x20l\
ower\x20bound\x20of\x20the\n\x20overflow\x20bucket\x20is\x20equal\x20to\
\x20the\x20upper\x20bound\x20of\x20the\x20largest\x20finite\n\x20bucket.\
\n\n\r\n\x05\x04\0\x08\0\x01\x12\x04\x93\x01\x08\x15\n,\n\x04\x04\0\x02\
\x06\x12\x04\x95\x01\x04%\x1a\x1e\x20Buckets\x20with\x20constant\x20widt\
h.\n\n\r\n\x05\x04\0\x02\x06\x06\x12\x04\x95\x01\x04\x11\n\r\n\x05\x04\0\
\x02\x06\x01\x12\x04\x95\x01\x12\x20\n\r\n\x05\x04\0\x02\x06\x03\x12\x04\
\x95\x01#$\n9\n\x04\x04\0\x02\x07\x12\x04\x98\x01\x04/\x1a+\x20Buckets\
\x20with\x20exponentially\x20growing\x20width.\n\n\r\n\x05\x04\0\x02\x07\
\x06\x12\x04\x98\x01\x04\x16\n\r\n\x05\x04\0\x02\x07\x01\x12\x04\x98\x01\
\x17*\n\r\n\x05\x04\0\x02\x07\x03\x12\x04\x98\x01-.\n;\n\x04\x04\0\x02\
\x08\x12\x04\x9b\x01\x04)\x1a-\x20Buckets\x20with\x20arbitrary\x20user-p\
rovided\x20width.\n\n\r\n\x05\x04\0\x02\x08\x06\x12\x04\x9b\x01\x04\x13\
\n\r\n\x05\x04\0\x02\x08\x01\x12\x04\x9b\x01\x14$\n\r\n\x05\x04\0\x02\
\x08\x03\x12\x04\x9b\x01'(b\x06proto3\
";
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
}
pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
file_descriptor_proto_lazy.get(|| {
parse_descriptor_proto()
})
}