Browse Source

Merge pull request #251 from ashthespy/master

Update protobuf
Sasha Hilton 5 years ago
parent
commit
d12640fb47

+ 60 - 4
Cargo.lock

@@ -427,7 +427,7 @@ dependencies = [
  "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
  "mdns 0.2.0 (git+https://github.com/plietar/rust-mdns)",
  "num-bigint 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
- "protobuf 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protobuf 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
  "rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
  "serde 0.9.15 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -456,7 +456,7 @@ dependencies = [
  "num-bigint 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
  "num-integer 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)",
  "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
- "protobuf 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protobuf 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
  "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
  "rpassword 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
  "rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -480,7 +480,7 @@ dependencies = [
  "librespot-core 0.1.0",
  "librespot-protocol 0.1.0",
  "linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "protobuf 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protobuf 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -504,7 +504,8 @@ dependencies = [
 name = "librespot-protocol"
 version = "0.1.0"
 dependencies = [
- "protobuf 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protobuf 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protoc-rust 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
 [[package]]
@@ -763,6 +764,38 @@ name = "protobuf"
 version = "1.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
+[[package]]
+name = "protobuf"
+version = "2.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "protobuf-codegen"
+version = "2.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "protobuf 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "protoc"
+version = "2.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "protoc-rust"
+version = "2.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "protobuf 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protobuf-codegen 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protoc 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
 [[package]]
 name = "quick-error"
 version = "1.2.1"
@@ -834,6 +867,14 @@ dependencies = [
  "futures 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
 ]
 
+[[package]]
+name = "remove_dir_all"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
 [[package]]
 name = "rpassword"
 version = "0.3.1"
@@ -1045,6 +1086,15 @@ name = "take"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 
+[[package]]
+name = "tempdir"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
 [[package]]
 name = "tempfile"
 version = "2.2.0"
@@ -1536,6 +1586,10 @@ dependencies = [
 "checksum portaudio-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5194a4fa953b4ffd851c320ef6f0484cd7278cb7169ea9d6c433e49b23f7b7f5"
 "checksum proc-macro2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1b06e2f335f48d24442b35a19df506a835fb3547bc3c06ef27340da9acf5cae7"
 "checksum protobuf 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "40e2484e639dcae0985fc483ad76ce7ad78ee5aa092751d7d538f0b20d76486b"
+"checksum protobuf 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c72f6663900752624f6b9b78d16abfc014caaa17d0002ff991274533cdc06c62"
+"checksum protobuf-codegen 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3b3aabdbe464662cbdf305a7db531fa059aa4368e2dc3a80be3796fcc2f931a6"
+"checksum protoc 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2c5b7410824a538229987eced0fd09e20562a10f16fe345a866765e9a598c3fd"
+"checksum protoc-rust 2.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "81899fad644d227d07370922d3f80afaf574252137e0cf696961661303c279c0"
 "checksum quick-error 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "eda5fe9b71976e62bc81b781206aaa076401769b2143379d3eb2118388babac4"
 "checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
 "checksum quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9949cfe66888ffe1d53e6ec9d9f3b70714083854be20fd5e271b232a017401e8"
@@ -1545,6 +1599,7 @@ dependencies = [
 "checksum regex 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "aec3f58d903a7d2a9dc2bf0e41a746f4530e0cab6b615494e058f67a3ef947fb"
 "checksum regex-syntax 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "bd90079345f4a4c3409214734ae220fd773c6f2e8a543d07370c6c1c369cfbfb"
 "checksum relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a"
+"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
 "checksum rpassword 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ec4bdede957362ec6fdd550f7e79c6d14cad2bc26b2d062786234c6ee0cb27bb"
 "checksum rust-crypto 0.2.36 (git+https://github.com/awmath/rust-crypto.git?branch=avx2)" = "<none>"
 "checksum rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a"
@@ -1572,6 +1627,7 @@ dependencies = [
 "checksum syn 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90d5efaad92a0f96c629ae16302cc9591915930fd49ff0dcc6b4cde146782397"
 "checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
 "checksum take 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b157868d8ac1f56b64604539990685fa7611d8fa9e5476cf0c02cf34d32917c5"
+"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
 "checksum tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "11ce2fe9db64b842314052e2421ac61a73ce41b898dc8e3750398b219c5fc1e0"
 "checksum termios 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d5d9cf598a6d7ce700a4e6a9199da127e6819a61e64b68609683cc9a01b5683a"
 "checksum thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "279ef31c19ededf577bfd12dfae728040a21f635b06a24cd670ff510edd38963"

+ 1 - 1
connect/Cargo.toml

@@ -16,7 +16,7 @@ futures = "0.1.8"
 hyper = "0.11.2"
 log = "0.3.5"
 num-bigint = "0.1.35"
-protobuf = "1.1"
+protobuf = "2.0.5"
 rand = "0.3.13"
 rust-crypto = "0.2.36"
 serde = "0.9.6"

+ 1 - 1
core/Cargo.toml

@@ -22,7 +22,7 @@ log = "0.3.5"
 num-bigint = "0.1.35"
 num-integer = "0.1.32"
 num-traits = "0.1.36"
-protobuf = "1.1"
+protobuf = "2.0.5"
 rand = "0.3.13"
 rpassword = "0.3.0"
 rust-crypto = "0.2.36"

+ 4 - 4
core/src/connection/handshake.rs

@@ -3,7 +3,7 @@ use crypto::hmac::Hmac;
 use crypto::mac::Mac;
 use crypto::sha1::Sha1;
 use futures::{Async, Future, Poll};
-use protobuf::{self, Message, MessageStatic};
+use protobuf::{self, Message};
 use rand::thread_rng;
 use std::io::{self, Read};
 use std::marker::PhantomData;
@@ -126,7 +126,7 @@ fn client_response<T: AsyncWrite>(connection: T, challenge: Vec<u8>) -> WriteAll
     write_all(connection, buffer)
 }
 
-enum RecvPacket<T, M: MessageStatic> {
+enum RecvPacket<T, M: Message> {
     Header(ReadExact<T, Window<Vec<u8>>>, PhantomData<M>),
     Body(ReadExact<T, Window<Vec<u8>>>, PhantomData<M>),
 }
@@ -134,7 +134,7 @@ enum RecvPacket<T, M: MessageStatic> {
 fn recv_packet<T: AsyncRead, M>(connection: T, acc: Vec<u8>) -> RecvPacket<T, M>
 where
     T: Read,
-    M: MessageStatic,
+    M: Message,
 {
     RecvPacket::Header(read_into_accumulator(connection, 4, acc), PhantomData)
 }
@@ -142,7 +142,7 @@ where
 impl<T: AsyncRead, M> Future for RecvPacket<T, M>
 where
     T: Read,
-    M: MessageStatic,
+    M: Message,
 {
     type Item = (T, M, Vec<u8>);
     type Error = io::Error;

+ 1 - 1
metadata/Cargo.toml

@@ -7,7 +7,7 @@ authors = ["Paul Lietar <paul@lietar.net>"]
 byteorder = "1.0"
 futures = "0.1.8"
 linear-map = "1.0"
-protobuf = "1.1"
+protobuf = "2.0.5"
 
 [dependencies.librespot-core]
 path = "../core"

+ 1 - 1
metadata/src/lib.rs

@@ -53,7 +53,7 @@ where
 }
 
 pub trait Metadata: Send + Sized + 'static {
-    type Message: protobuf::MessageStatic;
+    type Message: protobuf::Message;
 
     fn base_url() -> &'static str;
     fn parse(msg: &Self::Message, session: &Session) -> Self;

+ 4 - 1
protocol/Cargo.toml

@@ -5,4 +5,7 @@ authors = ["Paul Liétar <paul@lietar.net>"]
 build = "build.rs"
 
 [dependencies]
-protobuf = "1.0.10"
+protobuf = "2.0.5"
+
+[build-dependencies]
+protoc-rust = "2.0.5"

+ 22 - 1
protocol/build.rs

@@ -1,15 +1,36 @@
+extern crate protoc_rust;
+use protoc_rust::Customize;
 use std::fs::File;
 use std::io::prelude::*;
 
 mod files;
 
 fn main() {
+    let mut changed = false;
+    let mut file = File::open("files.rs").unwrap();
+    let mut f_str = String::new();
+    file.read_to_string(&mut f_str).unwrap();
+    drop(file);
     for &(path, expected_checksum) in files::FILES {
         let actual = cksum_file(path).unwrap();
         if expected_checksum != actual {
-            panic!("Checksum for {:?} does not match. Try running build.sh", path);
+            protoc_rust::run(protoc_rust::Args {
+                out_dir: "src",
+                input: &[path],
+                includes: &["proto"],
+                customize: Customize { ..Default::default() },
+            }).expect("protoc");
+            let new_checksum = cksum_file(path).unwrap();
+            f_str = f_str.replace(&expected_checksum.to_string(), &new_checksum.to_string());
+            changed = true;
         }
     }
+    if changed {
+        // Write new checksums to file
+        let mut file = File::create("files.rs").unwrap();
+        println!("f_str: {:?}",f_str);
+        file.write_all(f_str.as_bytes()).unwrap();
+    }
 }
 
 fn cksum_file<T: AsRef<std::path::Path>>(path: T) -> std::io::Result<u32> {

+ 2 - 2
protocol/files.rs

@@ -1,4 +1,4 @@
-// Autogenerated by build.sh
+// Autogenerated by build.rs
 
 pub const FILES: &'static [(&'static str, u32)] = &[
     ("proto/authentication.proto", 2098196376),
@@ -6,5 +6,5 @@ pub const FILES: &'static [(&'static str, u32)] = &[
     ("proto/mercury.proto", 709993906),
     ("proto/metadata.proto", 2474472423),
     ("proto/pubsub.proto", 2686584829),
-    ("proto/spirc.proto", 2406852191),
+    ("proto/spirc.proto", 1587493382),
 ];

+ 1 - 1
protocol/proto/spirc.proto

@@ -76,7 +76,7 @@ enum CapabilityType {
     kSupportsRename = 0xb;
     kHidden = 0xc;
     kSupportsPlaylistV2 = 0xd;
-    kUnknown = 0xe;
+    kSupportsExternalEpisodes = 0xe;
 }
 
 message Goodbye {

File diff suppressed because it is too large
+ 181 - 299
protocol/src/authentication.rs


File diff suppressed because it is too large
+ 157 - 306
protocol/src/keyexchange.rs


File diff suppressed because it is too large
+ 158 - 324
protocol/src/mercury.rs


File diff suppressed because it is too large
+ 186 - 328
protocol/src/metadata.rs


+ 35 - 84
protocol/src/pubsub.rs

@@ -1,4 +1,4 @@
-// This file is generated. Do not edit
+// This file is generated by rust-protobuf 2.0.5. Do not edit
 // @generated
 
 // https://github.com/Manishearth/rust-clippy/issues/702
@@ -32,24 +32,11 @@ pub struct Subscription {
     cached_size: ::protobuf::CachedSize,
 }
 
-// see codegen.rs for the explanation why impl Sync explicitly
-unsafe impl ::std::marker::Sync for Subscription {}
-
 impl Subscription {
     pub fn new() -> Subscription {
         ::std::default::Default::default()
     }
 
-    pub fn default_instance() -> &'static Subscription {
-        static mut instance: ::protobuf::lazy::Lazy<Subscription> = ::protobuf::lazy::Lazy {
-            lock: ::protobuf::lazy::ONCE_INIT,
-            ptr: 0 as *const Subscription,
-        };
-        unsafe {
-            instance.get(Subscription::new)
-        }
-    }
-
     // optional string uri = 1;
 
     pub fn clear_uri(&mut self) {
@@ -70,7 +57,7 @@ impl Subscription {
     pub fn mut_uri(&mut self) -> &mut ::std::string::String {
         if self.uri.is_none() {
             self.uri.set_default();
-        };
+        }
         self.uri.as_mut().unwrap()
     }
 
@@ -86,14 +73,6 @@ impl Subscription {
         }
     }
 
-    fn get_uri_for_reflect(&self) -> &::protobuf::SingularField<::std::string::String> {
-        &self.uri
-    }
-
-    fn mut_uri_for_reflect(&mut self) -> &mut ::protobuf::SingularField<::std::string::String> {
-        &mut self.uri
-    }
-
     // optional int32 expiry = 2;
 
     pub fn clear_expiry(&mut self) {
@@ -113,14 +92,6 @@ impl Subscription {
         self.expiry.unwrap_or(0)
     }
 
-    fn get_expiry_for_reflect(&self) -> &::std::option::Option<i32> {
-        &self.expiry
-    }
-
-    fn mut_expiry_for_reflect(&mut self) -> &mut ::std::option::Option<i32> {
-        &mut self.expiry
-    }
-
     // optional int32 status_code = 3;
 
     pub fn clear_status_code(&mut self) {
@@ -139,14 +110,6 @@ impl Subscription {
     pub fn get_status_code(&self) -> i32 {
         self.status_code.unwrap_or(0)
     }
-
-    fn get_status_code_for_reflect(&self) -> &::std::option::Option<i32> {
-        &self.status_code
-    }
-
-    fn mut_status_code_for_reflect(&mut self) -> &mut ::std::option::Option<i32> {
-        &mut self.status_code
-    }
 }
 
 impl ::protobuf::Message for Subscription {
@@ -164,14 +127,14 @@ impl ::protobuf::Message for Subscription {
                 2 => {
                     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.expiry = ::std::option::Option::Some(tmp);
                 },
                 3 => {
                     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.status_code = ::std::option::Option::Some(tmp);
                 },
@@ -187,30 +150,30 @@ impl ::protobuf::Message for Subscription {
     #[allow(unused_variables)]
     fn compute_size(&self) -> u32 {
         let mut my_size = 0;
-        if let Some(v) = self.uri.as_ref() {
+        if let Some(ref v) = self.uri.as_ref() {
             my_size += ::protobuf::rt::string_size(1, &v);
-        };
+        }
         if let Some(v) = self.expiry {
             my_size += ::protobuf::rt::value_size(2, v, ::protobuf::wire_format::WireTypeVarint);
-        };
+        }
         if let Some(v) = self.status_code {
             my_size += ::protobuf::rt::value_size(3, v, ::protobuf::wire_format::WireTypeVarint);
-        };
+        }
         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(v) = self.uri.as_ref() {
+        if let Some(ref v) = self.uri.as_ref() {
             os.write_string(1, &v)?;
-        };
+        }
         if let Some(v) = self.expiry {
             os.write_int32(2, v)?;
-        };
+        }
         if let Some(v) = self.status_code {
             os.write_int32(3, v)?;
-        };
+        }
         os.write_unknown_fields(self.get_unknown_fields())?;
         ::std::result::Result::Ok(())
     }
@@ -238,16 +201,14 @@ impl ::protobuf::Message for Subscription {
     }
 
     fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
-        ::protobuf::MessageStatic::descriptor_static(None::<Self>)
+        Self::descriptor_static()
     }
-}
 
-impl ::protobuf::MessageStatic for Subscription {
     fn new() -> Subscription {
         Subscription::new()
     }
 
-    fn descriptor_static(_: ::std::option::Option<Subscription>) -> &'static ::protobuf::reflect::MessageDescriptor {
+    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,
@@ -257,18 +218,18 @@ impl ::protobuf::MessageStatic for Subscription {
                 let mut fields = ::std::vec::Vec::new();
                 fields.push(::protobuf::reflect::accessor::make_singular_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
                     "uri",
-                    Subscription::get_uri_for_reflect,
-                    Subscription::mut_uri_for_reflect,
+                    |m: &Subscription| { &m.uri },
+                    |m: &mut Subscription| { &mut m.uri },
                 ));
                 fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
                     "expiry",
-                    Subscription::get_expiry_for_reflect,
-                    Subscription::mut_expiry_for_reflect,
+                    |m: &Subscription| { &m.expiry },
+                    |m: &mut Subscription| { &mut m.expiry },
                 ));
                 fields.push(::protobuf::reflect::accessor::make_option_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
                     "status_code",
-                    Subscription::get_status_code_for_reflect,
-                    Subscription::mut_status_code_for_reflect,
+                    |m: &Subscription| { &m.status_code },
+                    |m: &mut Subscription| { &mut m.status_code },
                 ));
                 ::protobuf::reflect::MessageDescriptor::new::<Subscription>(
                     "Subscription",
@@ -278,6 +239,16 @@ impl ::protobuf::MessageStatic for Subscription {
             })
         }
     }
+
+    fn default_instance() -> &'static Subscription {
+        static mut instance: ::protobuf::lazy::Lazy<Subscription> = ::protobuf::lazy::Lazy {
+            lock: ::protobuf::lazy::ONCE_INIT,
+            ptr: 0 as *const Subscription,
+        };
+        unsafe {
+            instance.get(Subscription::new)
+        }
+    }
 }
 
 impl ::protobuf::Clear for Subscription {
@@ -301,31 +272,11 @@ impl ::protobuf::reflect::ProtobufValue for Subscription {
     }
 }
 
-static file_descriptor_proto_data: &'static [u8] = &[
-    0x0a, 0x0c, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x59,
-    0x0a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10,
-    0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69,
-    0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
-    0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74,
-    0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73,
-    0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x4a, 0xf9, 0x01, 0x0a, 0x06, 0x12, 0x04,
-    0x00, 0x00, 0x06, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x0a,
-    0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, 0x02, 0x00, 0x06, 0x01, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00,
-    0x01, 0x12, 0x03, 0x02, 0x08, 0x14, 0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03,
-    0x03, 0x04, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x04, 0x12, 0x03, 0x03, 0x04,
-    0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, 0x03, 0x03, 0x0d, 0x13, 0x0a,
-    0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x03, 0x14, 0x17, 0x0a, 0x0c, 0x0a,
-    0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x03, 0x1a, 0x1d, 0x0a, 0x0b, 0x0a, 0x04, 0x04,
-    0x00, 0x02, 0x01, 0x12, 0x03, 0x04, 0x04, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01,
-    0x04, 0x12, 0x03, 0x04, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12,
-    0x03, 0x04, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x04,
-    0x13, 0x19, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x04, 0x1c, 0x1f,
-    0x0a, 0x0b, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x05, 0x04, 0x25, 0x0a, 0x0c, 0x0a,
-    0x05, 0x04, 0x00, 0x02, 0x02, 0x04, 0x12, 0x03, 0x05, 0x04, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04,
-    0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x05, 0x0d, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02,
-    0x02, 0x01, 0x12, 0x03, 0x05, 0x13, 0x1e, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03,
-    0x12, 0x03, 0x05, 0x21, 0x24,
-];
+static file_descriptor_proto_data: &'static [u8] = b"\
+    \n\x0cpubsub.proto\"Y\n\x0cSubscription\x12\x10\n\x03uri\x18\x01\x20\x01\
+    (\tR\x03uri\x12\x16\n\x06expiry\x18\x02\x20\x01(\x05R\x06expiry\x12\x1f\
+    \n\x0bstatus_code\x18\x03\x20\x01(\x05R\nstatusCode\
+";
 
 static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy {
     lock: ::protobuf::lazy::ONCE_INIT,

File diff suppressed because it is too large
+ 153 - 353
protocol/src/spirc.rs


Some files were not shown because too many files changed in this diff