fn basic()

in src/queues/src/lib.rs [281:368]


    fn basic() {
        let poll = Poll::new().expect("failed to create event loop");
        let waker = Arc::new(Waker::from(
            MioWaker::new(poll.registry(), WAKER_TOKEN).expect("failed to create waker"),
        ));

        let a_wakers = vec![waker.clone()];
        let b_wakers = vec![waker];

        let (mut a, mut b) = Queues::<usize, String>::new(&a_wakers, &b_wakers, 1024);
        let mut a = a.remove(0);
        let mut b = b.remove(0);

        // queues are empty
        assert!(a.try_recv().is_none());
        assert!(b.try_recv().is_none());

        // send a usize from A -> B using a targeted send
        a.try_send_to(0, 1).expect("failed to send");
        assert!(a.try_recv().is_none());
        assert_eq!(
            b.try_recv().map(|v| (v.sender(), v.into_inner())),
            Some((0, 1))
        );

        // queues are empty
        assert!(a.try_recv().is_none());
        assert!(b.try_recv().is_none());

        // send a usize from A -> B using a non-targeted (any) send
        a.try_send_any(2).expect("failed to send");
        assert!(a.try_recv().is_none());
        assert_eq!(
            b.try_recv().map(|v| (v.sender(), v.into_inner())),
            Some((0, 2))
        );

        // queues are empty
        assert!(a.try_recv().is_none());
        assert!(b.try_recv().is_none());

        // send a usize from A -> B using a broadcast send
        a.try_send_all(3).expect("failed to send");
        assert!(a.try_recv().is_none());
        assert_eq!(
            b.try_recv().map(|v| (v.sender(), v.into_inner())),
            Some((0, 3))
        );

        // queues are empty
        assert!(a.try_recv().is_none());
        assert!(b.try_recv().is_none());

        // send a String from B -> A using a targeted send
        b.try_send_to(0, "apple".to_string())
            .expect("failed to send");
        assert!(b.try_recv().is_none());
        assert_eq!(
            a.try_recv().map(|v| (v.sender(), v.into_inner())),
            Some((0, "apple".to_string()))
        );

        // queues are empty
        assert!(a.try_recv().is_none());
        assert!(b.try_recv().is_none());

        // send a usize from A -> B using a non-targeted (any) send
        b.try_send_any("banana".to_string())
            .expect("failed to send");
        assert!(b.try_recv().is_none());
        assert_eq!(
            a.try_recv().map(|v| (v.sender(), v.into_inner())),
            Some((0, "banana".to_string()))
        );

        // queues are empty
        assert!(a.try_recv().is_none());
        assert!(b.try_recv().is_none());

        // send a usize from A -> B using a broadcast send
        b.try_send_all("orange".to_string())
            .expect("failed to send");
        assert!(b.try_recv().is_none());
        assert_eq!(
            a.try_recv().map(|v| (v.sender(), v.into_inner())),
            Some((0, "orange".to_string()))
        );
    }