// This file is generated by rust-protobuf 2.14.0. Do not edit
// @generated

// https://github.com/rust-lang/rust-clippy/issues/702
#![allow(unknown_lints)]
#![allow(clippy::all)]

#![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)]
//! Generated file from `sparse_stream.proto`

use protobuf::Message as Message_imported_for_functions;
use protobuf::ProtobufEnum as ProtobufEnum_imported_for_functions;

/// Generated files are compatible only with the same version
/// of protobuf runtime.
// const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_14_0;

#[derive(PartialEq,Clone,Default)]
pub struct SparseStreamMeta {
    // message fields
    pub size: u64,
    pub channels: u32,
    pub sample_rate: f64,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a SparseStreamMeta {
    fn default() -> &'a SparseStreamMeta {
        <SparseStreamMeta as ::protobuf::Message>::default_instance()
    }
}

impl SparseStreamMeta {
    pub fn new() -> SparseStreamMeta {
        ::std::default::Default::default()
    }

    // uint64 size = 1;


    pub fn get_size(&self) -> u64 {
        self.size
    }
    pub fn clear_size(&mut self) {
        self.size = 0;
    }

    // Param is passed by value, moved
    pub fn set_size(&mut self, v: u64) {
        self.size = v;
    }

    // uint32 channels = 2;


    pub fn get_channels(&self) -> u32 {
        self.channels
    }
    pub fn clear_channels(&mut self) {
        self.channels = 0;
    }

    // Param is passed by value, moved
    pub fn set_channels(&mut self, v: u32) {
        self.channels = v;
    }

    // double sample_rate = 3;


    pub fn get_sample_rate(&self) -> f64 {
        self.sample_rate
    }
    pub fn clear_sample_rate(&mut self) {
        self.sample_rate = 0.;
    }

    // Param is passed by value, moved
    pub fn set_sample_rate(&mut self, v: f64) {
        self.sample_rate = v;
    }
}

impl ::protobuf::Message for SparseStreamMeta {
    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_uint64()?;
                    self.size = tmp;
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    let tmp = is.read_uint32()?;
                    self.channels = 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.sample_rate = tmp;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if self.size != 0 {
            my_size += ::protobuf::rt::value_size(1, self.size, ::protobuf::wire_format::WireTypeVarint);
        }
        if self.channels != 0 {
            my_size += ::protobuf::rt::value_size(2, self.channels, ::protobuf::wire_format::WireTypeVarint);
        }
        if self.sample_rate != 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.size != 0 {
            os.write_uint64(1, self.size)?;
        }
        if self.channels != 0 {
            os.write_uint32(2, self.channels)?;
        }
        if self.sample_rate != 0. {
            os.write_double(3, self.sample_rate)?;
        }
        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: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> SparseStreamMeta {
        SparseStreamMeta::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                    "size",
                    |m: &SparseStreamMeta| { &m.size },
                    |m: &mut SparseStreamMeta| { &mut m.size },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeUint32>(
                    "channels",
                    |m: &SparseStreamMeta| { &m.channels },
                    |m: &mut SparseStreamMeta| { &mut m.channels },
                ));
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
                    "sample_rate",
                    |m: &SparseStreamMeta| { &m.sample_rate },
                    |m: &mut SparseStreamMeta| { &mut m.sample_rate },
                ));
                ::protobuf::reflect::MessageDescriptor::new_pb_name::<SparseStreamMeta>(
                    "SparseStreamMeta",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static SparseStreamMeta {
        static mut instance: ::protobuf::lazy::Lazy<SparseStreamMeta> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            instance.get(SparseStreamMeta::new)
        }
    }
}

impl ::protobuf::Clear for SparseStreamMeta {
    fn clear(&mut self) {
        self.size = 0;
        self.channels = 0;
        self.sample_rate = 0.;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for SparseStreamMeta {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for SparseStreamMeta {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct F32SparsePoint {
    // message fields
    pub index: u64,
    pub values: ::std::vec::Vec<f32>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a F32SparsePoint {
    fn default() -> &'a F32SparsePoint {
        <F32SparsePoint as ::protobuf::Message>::default_instance()
    }
}

impl F32SparsePoint {
    pub fn new() -> F32SparsePoint {
        ::std::default::Default::default()
    }

    // uint64 index = 1;


    pub fn get_index(&self) -> u64 {
        self.index
    }
    pub fn clear_index(&mut self) {
        self.index = 0;
    }

    // Param is passed by value, moved
    pub fn set_index(&mut self, v: u64) {
        self.index = v;
    }

    // repeated float values = 2;


    pub fn get_values(&self) -> &[f32] {
        &self.values
    }
    pub fn clear_values(&mut self) {
        self.values.clear();
    }

    // Param is passed by value, moved
    pub fn set_values(&mut self, v: ::std::vec::Vec<f32>) {
        self.values = v;
    }

    // Mutable pointer to the field.
    pub fn mut_values(&mut self) -> &mut ::std::vec::Vec<f32> {
        &mut self.values
    }

    // Take field
    pub fn take_values(&mut self) -> ::std::vec::Vec<f32> {
        ::std::mem::replace(&mut self.values, ::std::vec::Vec::new())
    }
}

impl ::protobuf::Message for F32SparsePoint {
    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_uint64()?;
                    self.index = tmp;
                },
                2 => {
                    ::protobuf::rt::read_repeated_float_into(wire_type, is, &mut self.values)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if self.index != 0 {
            my_size += ::protobuf::rt::value_size(1, self.index, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += 5 * self.values.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<()> {
        if self.index != 0 {
            os.write_uint64(1, self.index)?;
        }
        for v in &self.values {
            os.write_float(2, *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: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> F32SparsePoint {
        F32SparsePoint::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                    "index",
                    |m: &F32SparsePoint| { &m.index },
                    |m: &mut F32SparsePoint| { &mut m.index },
                ));
                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeFloat>(
                    "values",
                    |m: &F32SparsePoint| { &m.values },
                    |m: &mut F32SparsePoint| { &mut m.values },
                ));
                ::protobuf::reflect::MessageDescriptor::new_pb_name::<F32SparsePoint>(
                    "F32SparsePoint",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static F32SparsePoint {
        static mut instance: ::protobuf::lazy::Lazy<F32SparsePoint> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            instance.get(F32SparsePoint::new)
        }
    }
}

impl ::protobuf::Clear for F32SparsePoint {
    fn clear(&mut self) {
        self.index = 0;
        self.values.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for F32SparsePoint {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for F32SparsePoint {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct F64SparsePoint {
    // message fields
    pub index: u64,
    pub values: ::std::vec::Vec<f64>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a F64SparsePoint {
    fn default() -> &'a F64SparsePoint {
        <F64SparsePoint as ::protobuf::Message>::default_instance()
    }
}

impl F64SparsePoint {
    pub fn new() -> F64SparsePoint {
        ::std::default::Default::default()
    }

    // uint64 index = 1;


    pub fn get_index(&self) -> u64 {
        self.index
    }
    pub fn clear_index(&mut self) {
        self.index = 0;
    }

    // Param is passed by value, moved
    pub fn set_index(&mut self, v: u64) {
        self.index = v;
    }

    // repeated double values = 2;


    pub fn get_values(&self) -> &[f64] {
        &self.values
    }
    pub fn clear_values(&mut self) {
        self.values.clear();
    }

    // Param is passed by value, moved
    pub fn set_values(&mut self, v: ::std::vec::Vec<f64>) {
        self.values = v;
    }

    // Mutable pointer to the field.
    pub fn mut_values(&mut self) -> &mut ::std::vec::Vec<f64> {
        &mut self.values
    }

    // Take field
    pub fn take_values(&mut self) -> ::std::vec::Vec<f64> {
        ::std::mem::replace(&mut self.values, ::std::vec::Vec::new())
    }
}

impl ::protobuf::Message for F64SparsePoint {
    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_uint64()?;
                    self.index = tmp;
                },
                2 => {
                    ::protobuf::rt::read_repeated_double_into(wire_type, is, &mut self.values)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if self.index != 0 {
            my_size += ::protobuf::rt::value_size(1, self.index, ::protobuf::wire_format::WireTypeVarint);
        }
        my_size += 9 * self.values.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<()> {
        if self.index != 0 {
            os.write_uint64(1, self.index)?;
        }
        for v in &self.values {
            os.write_double(2, *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: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> F64SparsePoint {
        F64SparsePoint::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeUint64>(
                    "index",
                    |m: &F64SparsePoint| { &m.index },
                    |m: &mut F64SparsePoint| { &mut m.index },
                ));
                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeDouble>(
                    "values",
                    |m: &F64SparsePoint| { &m.values },
                    |m: &mut F64SparsePoint| { &mut m.values },
                ));
                ::protobuf::reflect::MessageDescriptor::new_pb_name::<F64SparsePoint>(
                    "F64SparsePoint",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static F64SparsePoint {
        static mut instance: ::protobuf::lazy::Lazy<F64SparsePoint> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            instance.get(F64SparsePoint::new)
        }
    }
}

impl ::protobuf::Clear for F64SparsePoint {
    fn clear(&mut self) {
        self.index = 0;
        self.values.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for F64SparsePoint {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for F64SparsePoint {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct F32SparseStream {
    // message fields
    pub points: ::protobuf::RepeatedField<F32SparsePoint>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a F32SparseStream {
    fn default() -> &'a F32SparseStream {
        <F32SparseStream as ::protobuf::Message>::default_instance()
    }
}

impl F32SparseStream {
    pub fn new() -> F32SparseStream {
        ::std::default::Default::default()
    }

    // repeated .F32SparsePoint points = 1;


    pub fn get_points(&self) -> &[F32SparsePoint] {
        &self.points
    }
    pub fn clear_points(&mut self) {
        self.points.clear();
    }

    // Param is passed by value, moved
    pub fn set_points(&mut self, v: ::protobuf::RepeatedField<F32SparsePoint>) {
        self.points = v;
    }

    // Mutable pointer to the field.
    pub fn mut_points(&mut self) -> &mut ::protobuf::RepeatedField<F32SparsePoint> {
        &mut self.points
    }

    // Take field
    pub fn take_points(&mut self) -> ::protobuf::RepeatedField<F32SparsePoint> {
        ::std::mem::replace(&mut self.points, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for F32SparseStream {
    fn is_initialized(&self) -> bool {
        for v in &self.points {
            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 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.points)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        for value in &self.points {
            let len = value.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<()> {
        for v in &self.points {
            os.write_tag(1, ::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: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> F32SparseStream {
        F32SparseStream::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<F32SparsePoint>>(
                    "points",
                    |m: &F32SparseStream| { &m.points },
                    |m: &mut F32SparseStream| { &mut m.points },
                ));
                ::protobuf::reflect::MessageDescriptor::new_pb_name::<F32SparseStream>(
                    "F32SparseStream",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static F32SparseStream {
        static mut instance: ::protobuf::lazy::Lazy<F32SparseStream> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            instance.get(F32SparseStream::new)
        }
    }
}

impl ::protobuf::Clear for F32SparseStream {
    fn clear(&mut self) {
        self.points.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for F32SparseStream {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for F32SparseStream {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct F64SparseStream {
    // message fields
    pub points: ::protobuf::RepeatedField<F64SparsePoint>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a F64SparseStream {
    fn default() -> &'a F64SparseStream {
        <F64SparseStream as ::protobuf::Message>::default_instance()
    }
}

impl F64SparseStream {
    pub fn new() -> F64SparseStream {
        ::std::default::Default::default()
    }

    // repeated .F64SparsePoint points = 1;


    pub fn get_points(&self) -> &[F64SparsePoint] {
        &self.points
    }
    pub fn clear_points(&mut self) {
        self.points.clear();
    }

    // Param is passed by value, moved
    pub fn set_points(&mut self, v: ::protobuf::RepeatedField<F64SparsePoint>) {
        self.points = v;
    }

    // Mutable pointer to the field.
    pub fn mut_points(&mut self) -> &mut ::protobuf::RepeatedField<F64SparsePoint> {
        &mut self.points
    }

    // Take field
    pub fn take_points(&mut self) -> ::protobuf::RepeatedField<F64SparsePoint> {
        ::std::mem::replace(&mut self.points, ::protobuf::RepeatedField::new())
    }
}

impl ::protobuf::Message for F64SparseStream {
    fn is_initialized(&self) -> bool {
        for v in &self.points {
            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 => {
                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.points)?;
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        for value in &self.points {
            let len = value.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<()> {
        for v in &self.points {
            os.write_tag(1, ::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: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> F64SparseStream {
        F64SparseStream::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<F64SparsePoint>>(
                    "points",
                    |m: &F64SparseStream| { &m.points },
                    |m: &mut F64SparseStream| { &mut m.points },
                ));
                ::protobuf::reflect::MessageDescriptor::new_pb_name::<F64SparseStream>(
                    "F64SparseStream",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static F64SparseStream {
        static mut instance: ::protobuf::lazy::Lazy<F64SparseStream> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            instance.get(F64SparseStream::new)
        }
    }
}

impl ::protobuf::Clear for F64SparseStream {
    fn clear(&mut self) {
        self.points.clear();
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for F64SparseStream {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for F64SparseStream {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

#[derive(PartialEq,Clone,Default)]
pub struct SparseStream {
    // message fields
    pub meta: ::protobuf::SingularPtrField<SparseStreamMeta>,
    // message oneof groups
    pub stream: ::std::option::Option<SparseStream_oneof_stream>,
    // special fields
    pub unknown_fields: ::protobuf::UnknownFields,
    pub cached_size: ::protobuf::CachedSize,
}

impl<'a> ::std::default::Default for &'a SparseStream {
    fn default() -> &'a SparseStream {
        <SparseStream as ::protobuf::Message>::default_instance()
    }
}

#[derive(Clone,PartialEq,Debug)]
pub enum SparseStream_oneof_stream {
    f32_stream(F32SparseStream),
    f64_stream(F64SparseStream),
}

impl SparseStream {
    pub fn new() -> SparseStream {
        ::std::default::Default::default()
    }

    // .SparseStreamMeta meta = 1;


    pub fn get_meta(&self) -> &SparseStreamMeta {
        self.meta.as_ref().unwrap_or_else(|| SparseStreamMeta::default_instance())
    }
    pub fn clear_meta(&mut self) {
        self.meta.clear();
    }

    pub fn has_meta(&self) -> bool {
        self.meta.is_some()
    }

    // Param is passed by value, moved
    pub fn set_meta(&mut self, v: SparseStreamMeta) {
        self.meta = ::protobuf::SingularPtrField::some(v);
    }

    // Mutable pointer to the field.
    // If field is not initialized, it is initialized with default value first.
    pub fn mut_meta(&mut self) -> &mut SparseStreamMeta {
        if self.meta.is_none() {
            self.meta.set_default();
        }
        self.meta.as_mut().unwrap()
    }

    // Take field
    pub fn take_meta(&mut self) -> SparseStreamMeta {
        self.meta.take().unwrap_or_else(|| SparseStreamMeta::new())
    }

    // .F32SparseStream f32_stream = 2;


    pub fn get_f32_stream(&self) -> &F32SparseStream {
        match self.stream {
            ::std::option::Option::Some(SparseStream_oneof_stream::f32_stream(ref v)) => v,
            _ => F32SparseStream::default_instance(),
        }
    }
    pub fn clear_f32_stream(&mut self) {
        self.stream = ::std::option::Option::None;
    }

    pub fn has_f32_stream(&self) -> bool {
        match self.stream {
            ::std::option::Option::Some(SparseStream_oneof_stream::f32_stream(..)) => true,
            _ => false,
        }
    }

    // Param is passed by value, moved
    pub fn set_f32_stream(&mut self, v: F32SparseStream) {
        self.stream = ::std::option::Option::Some(SparseStream_oneof_stream::f32_stream(v))
    }

    // Mutable pointer to the field.
    pub fn mut_f32_stream(&mut self) -> &mut F32SparseStream {
        if let ::std::option::Option::Some(SparseStream_oneof_stream::f32_stream(_)) = self.stream {
        } else {
            self.stream = ::std::option::Option::Some(SparseStream_oneof_stream::f32_stream(F32SparseStream::new()));
        }
        match self.stream {
            ::std::option::Option::Some(SparseStream_oneof_stream::f32_stream(ref mut v)) => v,
            _ => panic!(),
        }
    }

    // Take field
    pub fn take_f32_stream(&mut self) -> F32SparseStream {
        if self.has_f32_stream() {
            match self.stream.take() {
                ::std::option::Option::Some(SparseStream_oneof_stream::f32_stream(v)) => v,
                _ => panic!(),
            }
        } else {
            F32SparseStream::new()
        }
    }

    // .F64SparseStream f64_stream = 3;


    pub fn get_f64_stream(&self) -> &F64SparseStream {
        match self.stream {
            ::std::option::Option::Some(SparseStream_oneof_stream::f64_stream(ref v)) => v,
            _ => F64SparseStream::default_instance(),
        }
    }
    pub fn clear_f64_stream(&mut self) {
        self.stream = ::std::option::Option::None;
    }

    pub fn has_f64_stream(&self) -> bool {
        match self.stream {
            ::std::option::Option::Some(SparseStream_oneof_stream::f64_stream(..)) => true,
            _ => false,
        }
    }

    // Param is passed by value, moved
    pub fn set_f64_stream(&mut self, v: F64SparseStream) {
        self.stream = ::std::option::Option::Some(SparseStream_oneof_stream::f64_stream(v))
    }

    // Mutable pointer to the field.
    pub fn mut_f64_stream(&mut self) -> &mut F64SparseStream {
        if let ::std::option::Option::Some(SparseStream_oneof_stream::f64_stream(_)) = self.stream {
        } else {
            self.stream = ::std::option::Option::Some(SparseStream_oneof_stream::f64_stream(F64SparseStream::new()));
        }
        match self.stream {
            ::std::option::Option::Some(SparseStream_oneof_stream::f64_stream(ref mut v)) => v,
            _ => panic!(),
        }
    }

    // Take field
    pub fn take_f64_stream(&mut self) -> F64SparseStream {
        if self.has_f64_stream() {
            match self.stream.take() {
                ::std::option::Option::Some(SparseStream_oneof_stream::f64_stream(v)) => v,
                _ => panic!(),
            }
        } else {
            F64SparseStream::new()
        }
    }
}

impl ::protobuf::Message for SparseStream {
    fn is_initialized(&self) -> bool {
        for v in &self.meta {
            if !v.is_initialized() {
                return false;
            }
        };
        if let Some(SparseStream_oneof_stream::f32_stream(ref v)) = self.stream {
            if !v.is_initialized() {
                return false;
            }
        }
        if let Some(SparseStream_oneof_stream::f64_stream(ref v)) = self.stream {
            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 => {
                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.meta)?;
                },
                2 => {
                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    self.stream = ::std::option::Option::Some(SparseStream_oneof_stream::f32_stream(is.read_message()?));
                },
                3 => {
                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
                    }
                    self.stream = ::std::option::Option::Some(SparseStream_oneof_stream::f64_stream(is.read_message()?));
                },
                _ => {
                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
                },
            };
        }
        ::std::result::Result::Ok(())
    }

    // Compute sizes of nested messages
    #[allow(unused_variables)]
    fn compute_size(&self) -> u32 {
        let mut my_size = 0;
        if let Some(ref v) = self.meta.as_ref() {
            let len = v.compute_size();
            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
        }
        if let ::std::option::Option::Some(ref v) = self.stream {
            match v {
                &SparseStream_oneof_stream::f32_stream(ref v) => {
                    let len = v.compute_size();
                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
                },
                &SparseStream_oneof_stream::f64_stream(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 let Some(ref v) = self.meta.as_ref() {
            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
            os.write_raw_varint32(v.get_cached_size())?;
            v.write_to_with_cached_sizes(os)?;
        }
        if let ::std::option::Option::Some(ref v) = self.stream {
            match v {
                &SparseStream_oneof_stream::f32_stream(ref v) => {
                    os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
                    os.write_raw_varint32(v.get_cached_size())?;
                    v.write_to_with_cached_sizes(os)?;
                },
                &SparseStream_oneof_stream::f64_stream(ref v) => {
                    os.write_tag(3, ::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: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
        self
    }

    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
        Self::descriptor_static()
    }

    fn new() -> SparseStream {
        SparseStream::new()
    }

    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            descriptor.get(|| {
                let mut fields = ::std::vec::Vec::new();
                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<SparseStreamMeta>>(
                    "meta",
                    |m: &SparseStream| { &m.meta },
                    |m: &mut SparseStream| { &mut m.meta },
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, F32SparseStream>(
                    "f32_stream",
                    SparseStream::has_f32_stream,
                    SparseStream::get_f32_stream,
                ));
                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, F64SparseStream>(
                    "f64_stream",
                    SparseStream::has_f64_stream,
                    SparseStream::get_f64_stream,
                ));
                ::protobuf::reflect::MessageDescriptor::new_pb_name::<SparseStream>(
                    "SparseStream",
                    fields,
                    file_descriptor_proto()
                )
            })
        }
    }

    fn default_instance() -> &'static SparseStream {
        static mut instance: ::protobuf::lazy::Lazy<SparseStream> = ::protobuf::lazy::Lazy::INIT;
        unsafe {
            instance.get(SparseStream::new)
        }
    }
}

impl ::protobuf::Clear for SparseStream {
    fn clear(&mut self) {
        self.meta.clear();
        self.stream = ::std::option::Option::None;
        self.stream = ::std::option::Option::None;
        self.unknown_fields.clear();
    }
}

impl ::std::fmt::Debug for SparseStream {
    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
        ::protobuf::text_format::fmt(self, f)
    }
}

impl ::protobuf::reflect::ProtobufValue for SparseStream {
    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
        ::protobuf::reflect::ReflectValueRef::Message(self)
    }
}

static file_descriptor_proto_data: &'static [u8] = b"\
    \n\x13sparse_stream.proto\x12\0\"O\n\x10SparseStreamMeta\x12\x0e\n\x04si\
    ze\x18\x01\x20\x01(\x04B\0\x12\x12\n\x08channels\x18\x02\x20\x01(\rB\0\
    \x12\x15\n\x0bsample_rate\x18\x03\x20\x01(\x01B\0:\0\"5\n\x0eF32SparsePo\
    int\x12\x0f\n\x05index\x18\x01\x20\x01(\x04B\0\x12\x10\n\x06values\x18\
    \x02\x20\x03(\x02B\0:\0\"5\n\x0eF64SparsePoint\x12\x0f\n\x05index\x18\
    \x01\x20\x01(\x04B\0\x12\x10\n\x06values\x18\x02\x20\x03(\x01B\0:\0\"6\n\
    \x0fF32SparseStream\x12!\n\x06points\x18\x01\x20\x03(\x0b2\x0f.F32Sparse\
    PointB\0:\0\"6\n\x0fF64SparseStream\x12!\n\x06points\x18\x01\x20\x03(\
    \x0b2\x0f.F64SparsePointB\0:\0\"\x91\x01\n\x0cSparseStream\x12!\n\x04met\
    a\x18\x01\x20\x01(\x0b2\x11.SparseStreamMetaB\0\x12(\n\nf32_stream\x18\
    \x02\x20\x01(\x0b2\x10.F32SparseStreamH\0B\0\x12(\n\nf64_stream\x18\x03\
    \x20\x01(\x0b2\x10.F64SparseStreamH\0B\0B\x08\n\x06stream:\0B\0b\x06prot\
    o3\
";

static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy::INIT;

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()
        })
    }
}
