3 use oneshot::{channel, Receiver, Sender};
7 let (sender, receiver) = channel::<u32>();
8 let raw = sender.into_raw();
9 let recreated = unsafe { Sender::<u32>::from_raw(raw) };
12 .unwrap_or_else(|e| panic!("error sending after into_raw/from_raw roundtrip: {e}"));
13 assert_eq!(receiver.try_recv(), Ok(100))
17 fn test_raw_receiver() {
18 let (sender, receiver) = channel::<u32>();
19 let raw = receiver.into_raw();
20 sender.send(100).unwrap();
21 let recreated = unsafe { Receiver::<u32>::from_raw(raw) };
25 .unwrap_or_else(|e| panic!("error receiving after into_raw/from_raw roundtrip: {e}")),
31 fn test_raw_sender_and_receiver() {
32 let (sender, receiver) = channel::<u32>();
33 let raw_receiver = receiver.into_raw();
34 let raw_sender = sender.into_raw();
36 let recreated_sender = unsafe { Sender::<u32>::from_raw(raw_sender) };
37 recreated_sender.send(100).unwrap();
39 let recreated_receiver = unsafe { Receiver::<u32>::from_raw(raw_receiver) };
43 .unwrap_or_else(|e| panic!("error receiving after into_raw/from_raw roundtrip: {e}")),