From fb29cd9584cfc74ed79ffa44e5a6b1aa04e1cfe7 Mon Sep 17 00:00:00 2001 From: ranfdev Date: Fri, 27 Oct 2023 18:33:13 +0200 Subject: [PATCH] update capnp --- Cargo.lock | 35 ++++++++++++++++++++++--------- Cargo.toml | 4 ++-- ntfy-daemon/Cargo.toml | 4 ++-- ntfy-daemon/src/system_client.rs | 24 ++++++++++----------- ntfy-daemon/src/topic_listener.rs | 2 +- src/subscription.rs | 14 ++++++------- src/widgets/window.rs | 9 ++++---- 7 files changed, 53 insertions(+), 39 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e006a81..37a8c74 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -437,22 +437,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95e65021d89250bbfe7c2791789ced2c4bdc21b0e8bb59c64f3fd6145a5fd678" [[package]] -name = "capnp-futures" -version = "0.17.0" +name = "capnp" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d520e0af228b92de357f230f4987ee4f9786f2b8aa24b9cfe53f5b11c17198" +checksum = "499cea1db22c19b7a823fa4876330700077b388cc7de2c5477028df00bcb4ae4" dependencies = [ - "capnp", + "embedded-io", +] + +[[package]] +name = "capnp-futures" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d131190ee8454d1c3ccdd81b454805c7fa7d350fc3a343e7c5be285bf411a8af" +dependencies = [ + "capnp 0.18.3", "futures", ] [[package]] name = "capnp-rpc" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ab8e869783e491cbcc350427a5e775aa4d8a1deaa5198d74332957cfa430779" +checksum = "94b87a9e0f74600628e227d39b79ef8652c558a408999ac46ba22b19dbad0010" dependencies = [ - "capnp", + "capnp 0.18.3", "capnp-futures", "futures", ] @@ -463,7 +472,7 @@ version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbbc3763fb3e6635188e9cc51ee11a26f8777c553ca377430818dbebaaf6042b" dependencies = [ - "capnp", + "capnp 0.17.2", ] [[package]] @@ -634,6 +643,12 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "embedded-io" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658bbadc628dc286b9ae02f0cb0f5411c056eb7487b72f0083203f115de94060" + [[package]] name = "encoding_rs" version = "0.8.33" @@ -1645,7 +1660,7 @@ version = "0.1.1" dependencies = [ "anyhow", "ashpd", - "capnp", + "capnp 0.18.3", "capnp-rpc", "chrono", "futures", @@ -1670,7 +1685,7 @@ version = "0.1.0" dependencies = [ "anyhow", "ashpd", - "capnp", + "capnp 0.18.3", "capnp-rpc", "capnpc", "clap", diff --git a/Cargo.toml b/Cargo.toml index ce9ebb7..b28a55d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,8 +23,8 @@ tracing-subscriber = "0.3" adw = { version = "0.5", package = "libadwaita", features = ["v1_4"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -capnp = "0.17.2" -capnp-rpc = "0.17.0" +capnp = "0.18.0" +capnp-rpc = "0.18.0" anyhow = "1.0.71" chrono = "0.4.26" rand = "0.8.5" diff --git a/ntfy-daemon/Cargo.toml b/ntfy-daemon/Cargo.toml index cc0f459..f934069 100644 --- a/ntfy-daemon/Cargo.toml +++ b/ntfy-daemon/Cargo.toml @@ -12,8 +12,8 @@ capnpc = "0.17.2" [dependencies] serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -capnp = "0.17.2" -capnp-rpc = "0.17.0" +capnp = "0.18.0" +capnp-rpc = "0.18.0" futures = "0.3.0" tokio = { version = "1.0.0", features = ["net", "rt", "macros", "parking_lot"]} tokio-util = { version = "0.7.4", features = ["compat", "io"] } diff --git a/ntfy-daemon/src/system_client.rs b/ntfy-daemon/src/system_client.rs index 97fb17e..587be84 100644 --- a/ntfy-daemon/src/system_client.rs +++ b/ntfy-daemon/src/system_client.rs @@ -57,7 +57,7 @@ impl output_channel::Server for NotifyForwarder { _results: output_channel::SendMessageResults, ) -> capnp::capability::Promise<(), capnp::Error> { let request = pry!(params.get()); - let message = pry!(request.get_message()); + let message = pry!(pry!(request.get_message()).to_str()); // Store in database let already_stored: bool = { @@ -104,7 +104,7 @@ impl output_channel::Server for NotifyForwarder { let watching = watching.borrow(); let futs = watching.iter().map(|(_id, w)| { let mut req = w.send_message_request(); - req.get().set_message(message); + req.get().set_message(message.into()); async move { if let Err(e) = req.send().promise.await { error!(error = ?e, "Error forwarding"); @@ -241,7 +241,7 @@ impl subscription::Server for SubscriptionImpl { let futs = msgs.into_iter().map(move |msg| { let mut req = watcher.send_message_request(); - req.get().set_message(&msg); + req.get().set_message(msg.as_str().into()); req.send().promise }); @@ -268,7 +268,7 @@ impl subscription::Server for SubscriptionImpl { params: subscription::PublishParams, _results: subscription::PublishResults, ) -> capnp::capability::Promise<(), capnp::Error> { - let msg = pry!(pry!(params.get()).get_message()); + let msg = pry!(pry!(pry!(params.get()).get_message()).to_str()); let fut = self._publish(msg); Promise::from_future(async move { @@ -283,9 +283,9 @@ impl subscription::Server for SubscriptionImpl { ) -> capnp::capability::Promise<(), capnp::Error> { let mut res = results.get(); let model = self.model.borrow(); - res.set_server(&model.server); - res.set_display_name(&model.display_name); - res.set_topic(&model.topic); + res.set_server(model.server.as_str().into()); + res.set_display_name(model.display_name.as_str().into()); + res.set_topic(model.topic.as_str().into()); res.set_muted(model.muted); res.set_read_until(model.read_until); Promise::ok(()) @@ -297,7 +297,7 @@ impl subscription::Server for SubscriptionImpl { ) -> capnp::capability::Promise<(), capnp::Error> { let info = pry!(pry!(params.get()).get_value()); let mut model = self.model.borrow_mut(); - model.display_name = pry!(info.get_display_name()).to_string(); + model.display_name = pry!(pry!(info.get_display_name()).to_string()); model.muted = info.get_muted(); model.read_until = info.get_read_until(); pry!(self.env.db.update_subscription(model.clone())); @@ -395,8 +395,8 @@ impl system_notifier::Server for SystemNotifier { params: system_notifier::SubscribeParams, mut results: system_notifier::SubscribeResults, ) -> capnp::capability::Promise<(), capnp::Error> { - let topic = pry!(pry!(params.get()).get_topic()); - let server: &str = pry!(pry!(params.get()).get_server()); + let topic = pry!(pry!(pry!(params.get()).get_topic()).to_str()); + let server: &str = pry!(pry!(pry!(params.get()).get_server()).to_str()); let subscription = pry!(models::Subscription::builder(topic.to_owned()) .server(server.to_string()) @@ -419,8 +419,8 @@ impl system_notifier::Server for SystemNotifier { params: system_notifier::UnsubscribeParams, _results: system_notifier::UnsubscribeResults, ) -> capnp::capability::Promise<(), capnp::Error> { - let topic = pry!(pry!(params.get()).get_topic()); - let server = pry!(pry!(params.get()).get_server()); + let topic = pry!(pry!(pry!(params.get()).get_topic()).to_str()); + let server = pry!(pry!(pry!(params.get()).get_server()).to_str()); { self.watching.borrow_mut().remove(&WatchKey { server: server.to_string(), diff --git a/ntfy-daemon/src/topic_listener.rs b/ntfy-daemon/src/topic_listener.rs index 4bec7cf..d2c955f 100644 --- a/ntfy-daemon/src/topic_listener.rs +++ b/ntfy-daemon/src/topic_listener.rs @@ -194,7 +194,7 @@ impl TopicListener { Event::Message { .. } => { debug!("message event"); let mut req = self.output_channel.send_message_request(); - req.get().set_message(&msg); + req.get().set_message(msg.as_str().into()); req.send().promise.await?; } Event::KeepAlive { .. } => { diff --git a/src/subscription.rs b/src/subscription.rs index f218f80..dc93170 100644 --- a/src/subscription.rs +++ b/src/subscription.rs @@ -22,9 +22,9 @@ impl output_channel::Server for TopicWatcher { ) -> capnp::capability::Promise<(), capnp::Error> { if let Some(sub) = self.sub.upgrade() { let request = pry!(params.get()); - let message = pry!(request.get_message()); + let message = pry!(pry!(request.get_message()).to_str()); - let msg: models::Message = serde_json::from_str(&message).unwrap(); + let msg: models::Message = serde_json::from_str(message).unwrap(); sub.imp().messages.append(&glib::BoxedAnyObject::new(msg)); sub.update_unread_count(); Promise::ok(()) @@ -175,11 +175,11 @@ impl Subscription { let info = req_info.send().promise.await?; let info = info.get()?; this.init_info( - info.get_topic()?, - info.get_server()?, + info.get_topic()?.to_str()?, + info.get_server()?.to_str()?, info.get_muted(), info.get_read_until(), - info.get_display_name()?, + info.get_display_name()?.to_str()?, ); let message_stream = req_messages.send().promise.await?; @@ -214,7 +214,7 @@ impl Subscription { let mut req = imp.client.get().unwrap().update_info_request(); let mut val = pry!(req.get().get_value()); val.set_muted(imp.muted.get()); - val.set_display_name(&*imp.display_name.borrow()); + val.set_display_name(imp.display_name.borrow().as_str().into()); val.set_read_until(imp.read_until.get()); Promise::from_future(async move { debug!("sending update_info"); @@ -275,7 +275,7 @@ impl Subscription { serde_json::to_string(&msg).map_err(|e| capnp::Error::failed(e.to_string())) }; let mut req = imp.client.get().unwrap().publish_request(); - req.get().set_message(&pry!(json)); + req.get().set_message(pry!(json).as_str().into()); Promise::from_future(async move { debug!("sending publish"); diff --git a/src/widgets/window.rs b/src/widgets/window.rs index ae9faa7..38e694b 100644 --- a/src/widgets/window.rs +++ b/src/widgets/window.rs @@ -288,8 +288,8 @@ impl NotifyWindow { fn add_subscription(&self, sub: models::Subscription) { let mut req = self.notifier().subscribe_request(); - req.get().set_server(&sub.server); - req.get().set_topic(&sub.topic); + req.get().set_server(sub.server.as_str().into()); + req.get().set_topic(sub.topic.as_str().into()); let res = req.send(); let this = self.clone(); self.spawn_with_near_toast(async move { @@ -310,11 +310,10 @@ impl NotifyWindow { fn unsubscribe(&self) { let mut req = self.notifier().unsubscribe_request(); - let sub = self.selected_subscription().unwrap(); - req.get().set_server(&sub.server()); - req.get().set_topic(&sub.topic()); + req.get().set_server(sub.server().as_str().into()); + req.get().set_topic(sub.topic().as_str().into()); let res = req.send(); let this = self.clone();