#![allow(unknown_lints)]
#![allow(clippy)]
#![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(unsafe_code)]
#![allow(unused_imports)]
#![allow(unused_results)]
use protobuf::Message as Message_imported_for_functions;
use protobuf::ProtobufEnum as ProtobufEnum_imported_for_functions;
#[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>,
unknown_fields: ::protobuf::UnknownFields,
cached_size: ::protobuf::CachedSize,
}
#[derive(Clone,PartialEq)]
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 clear_count(&mut self) {
self.count = 0;
}
pub fn set_count(&mut self, v: i64) {
self.count = v;
}
pub fn get_count(&self) -> i64 {
self.count
}
pub fn clear_mean(&mut self) {
self.mean = 0.;
}
pub fn set_mean(&mut self, v: f64) {
self.mean = v;
}
pub fn get_mean(&self) -> f64 {
self.mean
}
pub fn clear_minimum(&mut self) {
self.minimum = 0.;
}
pub fn set_minimum(&mut self, v: f64) {
self.minimum = v;
}
pub fn get_minimum(&self) -> f64 {
self.minimum
}
pub fn clear_maximum(&mut self) {
self.maximum = 0.;
}
pub fn set_maximum(&mut self, v: f64) {
self.maximum = v;
}
pub fn get_maximum(&self) -> f64 {
self.maximum
}
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_sum_of_squared_deviation(&self) -> f64 {
self.sum_of_squared_deviation
}
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_bucket_counts(&self) -> &[i64] {
&self.bucket_counts
}
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_linear_buckets(&self) -> &Distribution_LinearBuckets {
match self.bucket_option {
::std::option::Option::Some(Distribution_oneof_bucket_option::linear_buckets(ref v)) => v,
_ => Distribution_LinearBuckets::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_exponential_buckets(&self) -> &Distribution_ExponentialBuckets {
match self.bucket_option {
::std::option::Option::Some(Distribution_oneof_bucket_option::exponential_buckets(ref v)) => v,
_ => Distribution_ExponentialBuckets::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()
}
}
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::default_instance(),
}
}
}
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) -> &::std::any::Any {
self as &::std::any::Any
}
fn as_any_mut(&mut self) -> &mut ::std::any::Any {
self as &mut ::std::any::Any
}
fn into_any(self: Box<Self>) -> ::std::boxed::Box<::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 mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
};
unsafe {
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::<Distribution>(
"Distribution",
fields,
file_descriptor_proto()
)
})
}
}
fn default_instance() -> &'static Distribution {
static mut instance: ::protobuf::lazy::Lazy<Distribution> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const Distribution,
};
unsafe {
instance.get(Distribution::new)
}
}
}
impl ::protobuf::Clear for Distribution {
fn clear(&mut self) {
self.clear_count();
self.clear_mean();
self.clear_minimum();
self.clear_maximum();
self.clear_sum_of_squared_deviation();
self.clear_bucket_counts();
self.clear_linear_buckets();
self.clear_exponential_buckets();
self.clear_explicit_buckets();
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::ProtobufValueRef {
::protobuf::reflect::ProtobufValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct Distribution_LinearBuckets {
pub num_finite_buckets: i32,
pub width: f64,
pub offset: f64,
unknown_fields: ::protobuf::UnknownFields,
cached_size: ::protobuf::CachedSize,
}
impl Distribution_LinearBuckets {
pub fn new() -> Distribution_LinearBuckets {
::std::default::Default::default()
}
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_num_finite_buckets(&self) -> i32 {
self.num_finite_buckets
}
pub fn clear_width(&mut self) {
self.width = 0.;
}
pub fn set_width(&mut self, v: f64) {
self.width = v;
}
pub fn get_width(&self) -> f64 {
self.width
}
pub fn clear_offset(&mut self) {
self.offset = 0.;
}
pub fn set_offset(&mut self, v: f64) {
self.offset = v;
}
pub fn get_offset(&self) -> f64 {
self.offset
}
}
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) -> &::std::any::Any {
self as &::std::any::Any
}
fn as_any_mut(&mut self) -> &mut ::std::any::Any {
self as &mut ::std::any::Any
}
fn into_any(self: Box<Self>) -> ::std::boxed::Box<::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 mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
};
unsafe {
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::<Distribution_LinearBuckets>(
"Distribution_LinearBuckets",
fields,
file_descriptor_proto()
)
})
}
}
fn default_instance() -> &'static Distribution_LinearBuckets {
static mut instance: ::protobuf::lazy::Lazy<Distribution_LinearBuckets> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const Distribution_LinearBuckets,
};
unsafe {
instance.get(Distribution_LinearBuckets::new)
}
}
}
impl ::protobuf::Clear for Distribution_LinearBuckets {
fn clear(&mut self) {
self.clear_num_finite_buckets();
self.clear_width();
self.clear_offset();
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::ProtobufValueRef {
::protobuf::reflect::ProtobufValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct Distribution_ExponentialBuckets {
pub num_finite_buckets: i32,
pub growth_factor: f64,
pub scale: f64,
unknown_fields: ::protobuf::UnknownFields,
cached_size: ::protobuf::CachedSize,
}
impl Distribution_ExponentialBuckets {
pub fn new() -> Distribution_ExponentialBuckets {
::std::default::Default::default()
}
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_num_finite_buckets(&self) -> i32 {
self.num_finite_buckets
}
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_growth_factor(&self) -> f64 {
self.growth_factor
}
pub fn clear_scale(&mut self) {
self.scale = 0.;
}
pub fn set_scale(&mut self, v: f64) {
self.scale = v;
}
pub fn get_scale(&self) -> f64 {
self.scale
}
}
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) -> &::std::any::Any {
self as &::std::any::Any
}
fn as_any_mut(&mut self) -> &mut ::std::any::Any {
self as &mut ::std::any::Any
}
fn into_any(self: Box<Self>) -> ::std::boxed::Box<::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 mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
};
unsafe {
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::<Distribution_ExponentialBuckets>(
"Distribution_ExponentialBuckets",
fields,
file_descriptor_proto()
)
})
}
}
fn default_instance() -> &'static Distribution_ExponentialBuckets {
static mut instance: ::protobuf::lazy::Lazy<Distribution_ExponentialBuckets> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const Distribution_ExponentialBuckets,
};
unsafe {
instance.get(Distribution_ExponentialBuckets::new)
}
}
}
impl ::protobuf::Clear for Distribution_ExponentialBuckets {
fn clear(&mut self) {
self.clear_num_finite_buckets();
self.clear_growth_factor();
self.clear_scale();
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::ProtobufValueRef {
::protobuf::reflect::ProtobufValueRef::Message(self)
}
}
#[derive(PartialEq,Clone,Default)]
pub struct Distribution_ExplicitBuckets {
pub bounds: ::std::vec::Vec<f64>,
unknown_fields: ::protobuf::UnknownFields,
cached_size: ::protobuf::CachedSize,
}
impl Distribution_ExplicitBuckets {
pub fn new() -> Distribution_ExplicitBuckets {
::std::default::Default::default()
}
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())
}
pub fn get_bounds(&self) -> &[f64] {
&self.bounds
}
}
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) -> &::std::any::Any {
self as &::std::any::Any
}
fn as_any_mut(&mut self) -> &mut ::std::any::Any {
self as &mut ::std::any::Any
}
fn into_any(self: Box<Self>) -> ::std::boxed::Box<::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 mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
};
unsafe {
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::<Distribution_ExplicitBuckets>(
"Distribution_ExplicitBuckets",
fields,
file_descriptor_proto()
)
})
}
}
fn default_instance() -> &'static Distribution_ExplicitBuckets {
static mut instance: ::protobuf::lazy::Lazy<Distribution_ExplicitBuckets> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const Distribution_ExplicitBuckets,
};
unsafe {
instance.get(Distribution_ExplicitBuckets::new)
}
}
}
impl ::protobuf::Clear for Distribution_ExplicitBuckets {
fn clear(&mut self) {
self.clear_bounds();
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::ProtobufValueRef {
::protobuf::reflect::ProtobufValueRef::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\xd26\n\x07\x12\x05\x0e\0\x9e\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\x08$\n\x08\n\x01\x08\x12\x03\
\x12\0\x1f\n\x0b\n\x04\x08\xe7\x07\0\x12\x03\x12\0\x1f\n\x0c\n\x05\x08\
\xe7\x07\0\x02\x12\x03\x12\x07\x17\n\r\n\x06\x08\xe7\x07\0\x02\0\x12\x03\
\x12\x07\x17\n\x0e\n\x07\x08\xe7\x07\0\x02\0\x01\x12\x03\x12\x07\x17\n\
\x0c\n\x05\x08\xe7\x07\0\x03\x12\x03\x12\x1a\x1e\n\x08\n\x01\x08\x12\x03\
\x13\0a\n\x0b\n\x04\x08\xe7\x07\x01\x12\x03\x13\0a\n\x0c\n\x05\x08\xe7\
\x07\x01\x02\x12\x03\x13\x07\x11\n\r\n\x06\x08\xe7\x07\x01\x02\0\x12\x03\
\x13\x07\x11\n\x0e\n\x07\x08\xe7\x07\x01\x02\0\x01\x12\x03\x13\x07\x11\n\
\x0c\n\x05\x08\xe7\x07\x01\x07\x12\x03\x13\x14`\n\x08\n\x01\x08\x12\x03\
\x14\0\"\n\x0b\n\x04\x08\xe7\x07\x02\x12\x03\x14\0\"\n\x0c\n\x05\x08\xe7\
\x07\x02\x02\x12\x03\x14\x07\x1a\n\r\n\x06\x08\xe7\x07\x02\x02\0\x12\x03\
\x14\x07\x1a\n\x0e\n\x07\x08\xe7\x07\x02\x02\0\x01\x12\x03\x14\x07\x1a\n\
\x0c\n\x05\x08\xe7\x07\x02\x03\x12\x03\x14\x1d!\n\x08\n\x01\x08\x12\x03\
\x15\02\n\x0b\n\x04\x08\xe7\x07\x03\x12\x03\x15\02\n\x0c\n\x05\x08\xe7\
\x07\x03\x02\x12\x03\x15\x07\x1b\n\r\n\x06\x08\xe7\x07\x03\x02\0\x12\x03\
\x15\x07\x1b\n\x0e\n\x07\x08\xe7\x07\x03\x02\0\x01\x12\x03\x15\x07\x1b\n\
\x0c\n\x05\x08\xe7\x07\x03\x07\x12\x03\x15\x1e1\n\x08\n\x01\x08\x12\x03\
\x16\09\n\x0b\n\x04\x08\xe7\x07\x04\x12\x03\x16\09\n\x0c\n\x05\x08\xe7\
\x07\x04\x02\x12\x03\x16\x07\x13\n\r\n\x06\x08\xe7\x07\x04\x02\0\x12\x03\
\x16\x07\x13\n\x0e\n\x07\x08\xe7\x07\x04\x02\0\x01\x12\x03\x16\x07\x13\n\
\x0c\n\x05\x08\xe7\x07\x04\x07\x12\x03\x16\x168\n\x91\x03\n\x02\x04\0\
\x12\x05!\0\x9e\x01\x01\x1a\x83\x03\x20Distribution\x20represents\x20a\
\x20frequency\x20distribution\x20of\x20double-valued\x20sample\n\x20poin\
ts.\x20It\x20contains\x20the\x20size\x20of\x20the\x20population\x20of\
\x20sample\x20points\x20plus\n\x20additional\x20optional\x20information:\
\n\n\x20\x20\x20-\x20the\x20arithmetic\x20mean\x20of\x20the\x20samples\n\
\x20\x20\x20-\x20the\x20minimum\x20and\x20maximum\x20of\x20the\x20sample\
s\n\x20\x20\x20-\x20the\x20sum-squared-deviation\x20of\x20the\x20samples\
,\x20used\x20to\x20compute\x20variance\n\x20\x20\x20-\x20a\x20histogram\
\x20of\x20the\x20values\x20of\x20the\x20sample\x20points\n\n\n\n\x03\x04\
\0\x01\x12\x03!\x08\x14\n7\n\x04\x04\0\x03\0\x12\x04#\x023\x03\x1a)\x20D\
escribing\x20buckets\x20with\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\x20number\x20of\x20finite\x20buckets.\x20With\x20th\
e\x20underflow\x20and\x20overflow\x20buckets,\n\x20the\x20total\x20numbe\
r\x20of\x20buckets\x20is\x20`num_finite_buckets`\x20+\x202.\n\x20See\x20\
comments\x20on\x20`bucket_options`\x20for\x20details.\n\n\x0f\n\x07\x04\
\0\x03\0\x02\0\x04\x12\x04'\x04#\x19\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\
\x20covers\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\x20Must\x20be\
\x20strictly\x20positive.\n\n\x0f\n\x07\x04\0\x03\0\x02\x01\x04\x12\x04-\
\x04'!\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\x032\
\x04\x16\x1a\x95\x01\x20The\x20i'th\x20linear\x20bucket\x20covers\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\x0f\n\x07\x04\0\x03\0\x02\x02\
\x04\x12\x042\x04-\x15\n\x0e\n\x07\x04\0\x03\0\x02\x02\x05\x12\x032\x04\
\n\n\x0e\n\x07\x04\0\x03\0\x02\x02\x01\x12\x032\x0b\x11\n\x0e\n\x07\x04\
\0\x03\0\x02\x02\x03\x12\x032\x14\x15\nD\n\x04\x04\0\x03\x01\x12\x046\
\x02G\x03\x1a6\x20Describing\x20buckets\x20with\x20exponentially\x20grow\
ing\x20width.\n\n\x0c\n\x05\x04\0\x03\x01\x01\x12\x036\n\x1c\n\xc1\x01\n\
\x06\x04\0\x03\x01\x02\0\x12\x03:\x04!\x1a\xb1\x01\x20The\x20number\x20o\
f\x20finite\x20buckets.\x20With\x20the\x20underflow\x20and\x20overflow\
\x20buckets,\n\x20the\x20total\x20number\x20of\x20buckets\x20is\x20`num_\
finite_buckets`\x20+\x202.\n\x20See\x20comments\x20on\x20`bucket_options\
`\x20for\x20details.\n\n\x0f\n\x07\x04\0\x03\x01\x02\0\x04\x12\x04:\x046\
\x1e\n\x0e\n\x07\x04\0\x03\x01\x02\0\x05\x12\x03:\x04\t\n\x0e\n\x07\x04\
\0\x03\x01\x02\0\x01\x12\x03:\n\x1c\n\x0e\n\x07\x04\0\x03\x01\x02\0\x03\
\x12\x03:\x1f\x20\n\xcd\x01\n\x06\x04\0\x03\x01\x02\x01\x12\x03@\x04\x1d\
\x1a\xbd\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_buckets\x20inclusive.\n\x20Must\x20be\x20larger\x20than\
\x201.0.\n\n\x0f\n\x07\x04\0\x03\x01\x02\x01\x04\x12\x04@\x04:!\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\x03F\x04\x15\x1a\
\xb1\x01\x20The\x20i'th\x20exponential\x20bucket\x20covers\x20the\x20int\
erval\n\x20\x20\x20[scale\x20*\x20growth_factor^(i-1),\x20scale\x20*\x20\
growth_factor^i)\n\x20where\x20i\x20ranges\x20from\x201\x20to\x20num_fin\
ite_buckets\x20inclusive.\n\x20Must\x20be\x20>\x200.\n\n\x0f\n\x07\x04\0\
\x03\x01\x02\x02\x04\x12\x04F\x04@\x1d\n\x0e\n\x07\x04\0\x03\x01\x02\x02\
\x05\x12\x03F\x04\n\n\x0e\n\x07\x04\0\x03\x01\x02\x02\x01\x12\x03F\x0b\
\x10\n\x0e\n\x07\x04\0\x03\x01\x02\x02\x03\x12\x03F\x13\x14\nF\n\x04\x04\
\0\x03\x02\x12\x04J\x02[\x03\x1a8\x20Describing\x20buckets\x20with\x20ar\
bitrary\x20user-provided\x20width.\n\n\x0c\n\x05\x04\0\x03\x02\x01\x12\
\x03J\n\x19\n\xec\x05\n\x06\x04\0\x03\x02\x02\0\x12\x03Z\x04\x1f\x1a\xdc\
\x05\x20'bound'\x20is\x20a\x20list\x20of\x20strictly\x20increasing\x20bo\
undaries\x20between\n\x20buckets.\x20Note\x20that\x20a\x20list\x20of\x20\
length\x20N-1\x20defines\x20N\x20buckets\x20because\n\x20of\x20fencepost\
ing.\x20See\x20comments\x20on\x20`bucket_options`\x20for\x20details.\n\n\
\x20The\x20i'th\x20finite\x20bucket\x20covers\x20the\x20interval\n\x20\
\x20\x20[bound[i-1],\x20bound[i])\n\x20where\x20i\x20ranges\x20from\x201\
\x20to\x20bound_size()\x20-\x201.\x20Note\x20that\x20there\x20are\x20no\
\n\x20finite\x20buckets\x20at\x20all\x20if\x20'bound'\x20only\x20contain\
s\x20a\x20single\x20element;\x20in\n\x20that\x20special\x20case\x20the\
\x20single\x20bound\x20defines\x20the\x20boundary\x20between\x20the\n\
\x20underflow\x20and\x20overflow\x20buckets.\n\n\x20bucket\x20number\x20\
\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
lower\x20bound\x20\x20\x20\x20upper\x20bound\n\x20\x20i\x20==\x200\x20(u\
nderflow)\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<\x20\
i\x20<\x20bound_size()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20bo\
und[i-1]\x20\x20\x20\x20\x20bound[i]\n\x20\x20i\x20==\x20bound_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\x03Z\x04\x0c\n\x0e\n\x07\x04\0\x03\
\x02\x02\0\x05\x12\x03Z\r\x13\n\x0e\n\x07\x04\0\x03\x02\x02\0\x01\x12\
\x03Z\x14\x1a\n\x0e\n\x07\x04\0\x03\x02\x02\0\x03\x12\x03Z\x1d\x1e\nM\n\
\x04\x04\0\x02\0\x12\x03^\x02\x12\x1a@\x20The\x20total\x20number\x20of\
\x20samples\x20in\x20the\x20distribution.\x20Must\x20be\x20>=\x200.\n\n\
\r\n\x05\x04\0\x02\0\x04\x12\x04^\x02[\x03\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\x03b\x02\
\x12\x1ak\x20The\x20arithmetic\x20mean\x20of\x20the\x20samples\x20in\x20\
the\x20distribution.\x20If\x20`count`\x20is\n\x20zero\x20then\x20this\
\x20field\x20must\x20be\x20zero.\n\n\r\n\x05\x04\0\x02\x01\x04\x12\x04b\
\x02^\x12\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03b\x02\x08\n\x0c\n\x05\x04\
\0\x02\x01\x01\x12\x03b\t\r\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03b\x10\
\x11\nS\n\x04\x04\0\x02\x02\x12\x03e\x02\x15\x1aF\x20The\x20minimum\x20o\
f\x20the\x20population\x20of\x20values.\x20Ignored\x20if\x20`count`\x20i\
s\x20zero.\n\n\r\n\x05\x04\0\x02\x02\x04\x12\x04e\x02b\x12\n\x0c\n\x05\
\x04\0\x02\x02\x05\x12\x03e\x02\x08\n\x0c\n\x05\x04\0\x02\x02\x01\x12\
\x03e\t\x10\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03e\x13\x14\nS\n\x04\x04\
\0\x02\x03\x12\x03h\x02\x15\x1aF\x20The\x20maximum\x20of\x20the\x20popul\
ation\x20of\x20values.\x20Ignored\x20if\x20`count`\x20is\x20zero.\n\n\r\
\n\x05\x04\0\x02\x03\x04\x12\x04h\x02e\x15\n\x0c\n\x05\x04\0\x02\x03\x05\
\x12\x03h\x02\x08\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03h\t\x10\n\x0c\n\
\x05\x04\0\x02\x03\x03\x12\x03h\x13\x14\n\xe0\x01\n\x04\x04\0\x02\x04\
\x12\x03n\x02&\x1a\xd2\x01\x20The\x20sum\x20of\x20squared\x20deviations\
\x20from\x20the\x20mean:\n\x20\x20\x20Sum[i=1..count]((x_i\x20-\x20mean)\
^2)\n\x20where\x20each\x20x_i\x20is\x20a\x20sample\x20values.\x20If\x20`\
count`\x20is\x20zero\x20then\x20this\x20field\n\x20must\x20be\x20zero,\
\x20otherwise\x20validation\x20of\x20the\x20request\x20fails.\n\n\r\n\
\x05\x04\0\x02\x04\x04\x12\x04n\x02h\x15\n\x0c\n\x05\x04\0\x02\x04\x05\
\x12\x03n\x02\x08\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03n\t!\n\x0c\n\x05\
\x04\0\x02\x04\x03\x12\x03n$%\n\xb8\x04\n\x04\x04\0\x02\x05\x12\x03{\x02\
#\x1a\xaa\x04\x20The\x20number\x20of\x20samples\x20in\x20each\x20histogr\
am\x20bucket.\x20`bucket_counts`\x20are\n\x20optional.\x20If\x20present,\
\x20they\x20must\x20sum\x20to\x20the\x20`count`\x20value.\n\n\x20The\x20\
buckets\x20are\x20defined\x20below\x20in\x20`bucket_option`.\x20There\
\x20are\x20N\x20buckets.\n\x20`bucket_counts[0]`\x20is\x20the\x20number\
\x20of\x20samples\x20in\x20the\x20underflow\x20bucket.\n\x20`bucket_coun\
ts[1]`\x20to\x20`bucket_counts[N-1]`\x20are\x20the\x20numbers\x20of\x20s\
amples\n\x20in\x20each\x20of\x20the\x20finite\x20buckets.\x20And\x20`buc\
ket_counts[N]\x20is\x20the\x20number\n\x20of\x20samples\x20in\x20the\x20\
overflow\x20bucket.\x20See\x20the\x20comments\x20of\x20`bucket_option`\n\
\x20below\x20for\x20more\x20details.\n\n\x20Any\x20suffix\x20of\x20trail\
ing\x20zeros\x20may\x20be\x20omitted.\n\n\x0c\n\x05\x04\0\x02\x05\x04\
\x12\x03{\x02\n\n\x0c\n\x05\x04\0\x02\x05\x05\x12\x03{\x0b\x10\n\x0c\n\
\x05\x04\0\x02\x05\x01\x12\x03{\x11\x1e\n\x0c\n\x05\x04\0\x02\x05\x03\
\x12\x03{!\"\n\xf2\x08\n\x04\x04\0\x08\0\x12\x06\x94\x01\x02\x9d\x01\x03\
\x1a\xe1\x08\x20Defines\x20the\x20buckets\x20in\x20the\x20histogram.\x20\
`bucket_option`\x20and\x20`bucket_counts`\n\x20must\x20be\x20both\x20set\
,\x20or\x20both\x20unset.\n\n\x20Buckets\x20are\x20numbered\x20in\x20the\
\x20range\x20of\x20[0,\x20N],\x20with\x20a\x20total\x20of\x20N+1\x20buck\
ets.\n\x20There\x20must\x20be\x20at\x20least\x20two\x20buckets\x20(a\x20\
single-bucket\x20histogram\x20gives\n\x20no\x20information\x20that\x20is\
n't\x20already\x20provided\x20by\x20`count`).\n\n\x20The\x20first\x20buc\
ket\x20is\x20the\x20underflow\x20bucket\x20which\x20has\x20a\x20lower\
\x20bound\n\x20of\x20-inf.\x20The\x20last\x20bucket\x20is\x20the\x20over\
flow\x20bucket\x20which\x20has\x20an\n\x20upper\x20bound\x20of\x20+inf.\
\x20All\x20other\x20buckets\x20(if\x20any)\x20are\x20called\x20\"finite\
\"\n\x20buckets\x20because\x20they\x20have\x20finite\x20lower\x20and\x20\
upper\x20bounds.\x20As\x20described\n\x20below,\x20there\x20are\x20three\
\x20ways\x20to\x20define\x20the\x20finite\x20buckets.\n\n\x20\x20\x20(1)\
\x20Buckets\x20with\x20constant\x20width.\n\x20\x20\x20(2)\x20Buckets\
\x20with\x20exponentially\x20growing\x20widths.\n\x20\x20\x20(3)\x20Buck\
ets\x20with\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\x20ex\
clusive\x20and\x20lower\x20bounds\x20are\n\x20inclusive.\x20The\x20upper\
\x20bound\x20of\x20the\x20underflow\x20bucket\x20is\x20equal\x20to\x20th\
e\n\x20lower\x20bound\x20of\x20the\x20smallest\x20finite\x20bucket;\x20t\
he\x20lower\x20bound\x20of\x20the\n\x20overflow\x20bucket\x20is\x20equal\
\x20to\x20the\x20upper\x20bound\x20of\x20the\x20largest\x20finite\n\x20b\
ucket.\n\n\r\n\x05\x04\0\x08\0\x01\x12\x04\x94\x01\x08\x15\n,\n\x04\x04\
\0\x02\x06\x12\x04\x96\x01\x04%\x1a\x1e\x20Buckets\x20with\x20constant\
\x20width.\n\n\r\n\x05\x04\0\x02\x06\x06\x12\x04\x96\x01\x04\x11\n\r\n\
\x05\x04\0\x02\x06\x01\x12\x04\x96\x01\x12\x20\n\r\n\x05\x04\0\x02\x06\
\x03\x12\x04\x96\x01#$\n9\n\x04\x04\0\x02\x07\x12\x04\x99\x01\x04/\x1a+\
\x20Buckets\x20with\x20exponentially\x20growing\x20width.\n\n\r\n\x05\
\x04\0\x02\x07\x06\x12\x04\x99\x01\x04\x16\n\r\n\x05\x04\0\x02\x07\x01\
\x12\x04\x99\x01\x17*\n\r\n\x05\x04\0\x02\x07\x03\x12\x04\x99\x01-.\n;\n\
\x04\x04\0\x02\x08\x12\x04\x9c\x01\x04)\x1a-\x20Buckets\x20with\x20arbit\
rary\x20user-provided\x20width.\n\n\r\n\x05\x04\0\x02\x08\x06\x12\x04\
\x9c\x01\x04\x13\n\r\n\x05\x04\0\x02\x08\x01\x12\x04\x9c\x01\x14$\n\r\n\
\x05\x04\0\x02\x08\x03\x12\x04\x9c\x01'(b\x06proto3\
";
static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy {
lock: ::protobuf::lazy::ONCE_INIT,
ptr: 0 as *const ::protobuf::descriptor::FileDescriptorProto,
};
fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap()
}
pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
unsafe {
file_descriptor_proto_lazy.get(|| {
parse_descriptor_proto()
})
}
}