Skip to content

Commit

Permalink
Deprecate Router::add_route
Browse files Browse the repository at this point in the history
Signed-off-by: Simon Wülker <[email protected]>
  • Loading branch information
simonwuelker committed Oct 15, 2024
1 parent 7f5ce56 commit 6371549
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 10 deletions.
6 changes: 6 additions & 0 deletions src/router.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ impl RouterProxy {

/// Add a new (receiver, callback) pair to the router, and send a wakeup message
/// to the router.
///
/// Consider using [add_typed_route](Self::add_typed_route) instead, which prevents
/// mismatches between the receiver and callback types.
#[deprecated(since = "0.19", note = "please use 'add_typed_route' instead")]
pub fn add_route(&self, receiver: OpaqueIpcReceiver, callback: RouterHandler) {
let comm = self.comm.lock().unwrap();

Expand Down Expand Up @@ -86,6 +90,8 @@ impl RouterProxy {
let typed_message = msg.to::<T>();
callback(typed_message)
};

#[allow(deprecated)]
self.add_route(receiver.to_opaque(), Box::new(modified_callback));
}

Expand Down
21 changes: 11 additions & 10 deletions src/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,7 @@ fn router_simple_global() {
tx.send(person.clone()).unwrap();

let (callback_fired_sender, callback_fired_receiver) = crossbeam_channel::unbounded::<Person>();
#[allow(deprecated)]
ROUTER.add_route(
rx.to_opaque(),
Box::new(move |person| {
Expand Down Expand Up @@ -308,10 +309,10 @@ fn router_simple_global() {
tx.send(person.clone()).unwrap();

let (callback_fired_sender, callback_fired_receiver) = crossbeam_channel::unbounded::<Person>();
ROUTER.add_route(
rx.to_opaque(),
ROUTER.add_typed_route(
rx,
Box::new(move |person| {
callback_fired_sender.send(person.to().unwrap()).unwrap();
callback_fired_sender.send(person.unwrap()).unwrap();
}),
);

Expand Down Expand Up @@ -389,8 +390,8 @@ fn router_drops_callbacks_on_sender_shutdown() {
let dropper = Dropper { sender: drop_tx };

let router = RouterProxy::new();
router.add_route(
rx0.to_opaque(),
router.add_typed_route(
rx0,
Box::new(move |_| {
let _ = &dropper;
}),
Expand All @@ -416,8 +417,8 @@ fn router_drops_callbacks_on_cloned_sender_shutdown() {
let dropper = Dropper { sender: drop_tx };

let router = RouterProxy::new();
router.add_route(
rx0.to_opaque(),
router.add_typed_route(
rx0,
Box::new(move |_| {
let _ = &dropper;
}),
Expand All @@ -441,9 +442,9 @@ fn router_big_data() {
let (callback_fired_sender, callback_fired_receiver) =
crossbeam_channel::unbounded::<Vec<Person>>();
let router = RouterProxy::new();
router.add_route(
rx.to_opaque(),
Box::new(move |people| callback_fired_sender.send(people.to().unwrap()).unwrap()),
router.add_typed_route(
rx,
Box::new(move |people| callback_fired_sender.send(people.unwrap()).unwrap()),
);
let received_people = callback_fired_receiver.recv().unwrap();
assert_eq!(received_people, people);
Expand Down

0 comments on commit 6371549

Please sign in to comment.