Rust Bidirectional channels