async fn cli(
            c: Chan<greetings::Client, (), DynMessage>,
            timeout: Duration,
        ) -> SessionResult<()> {
            let c = c.send(Hail("Punter".into()))?;
            let (c, Greetings(_)) = c.recv(timeout).await?;
            let c = c.enter();
            let (c, AddResponse(_)) = c
                .sel2()
                .sel1()
                .send(AddRequest(1))?
                .send(AddRequest(2))?
                .recv(timeout)
                .await?;

            c.zero()?.sel2().sel2().send(Quit)?.close()
        }
// Act as session server in the test. Start the clients in the background.
Act as session server in the test. Start the clients in the background.
Act as session server in the test . Start the clients in the background .
async fn cli(
            c: Chan<greetings::Client, (), DynMessage>,
            timeout: Duration,
        ) -> SessionResult<()> {
            let c = c.send(Hail("Punter".into()))?;
            let (c, Greetings(_)) = c.recv(timeout).await?;
            let c = c.enter();
            let (c, AddResponse(_)) = c
                .sel2()
                .sel1()
                .send(AddRequest(1))?
                .send(AddRequest(2))?
                .recv(timeout)
                .await?;
            c.zero()?.sel2().sel2().send(Quit)?.close()
        }
async fn cli ( c : Chan < greetings :: Client , ( ) , DynMessage > , timeout : Duration , ) -> SessionResult < ( ) > { let c = c . send ( Hail ( " " . into ( ) ) ) ? ; let ( c , Greetings ( _ ) ) = c . recv ( timeout ) . await ? ; let c = c . enter ( ) ; let ( c , AddResponse ( _ ) ) = c . sel2 ( ) . sel1 ( ) . send ( AddRequest ( 1 ) ) ? . send ( AddRequest ( 2 ) ) ? . recv ( timeout ) . await ? ; c . zero ( ) ? . sel2 ( ) . sel2 ( ) . send ( Quit ) ? . close ( ) }
Act as session server in the test.
Act as session server in the test .
c
Chan<greetings::Client, (), DynMessage>
timeout
Duration