Tokio select! and features

⚓ Rust    📅 2025-07-11    👤 surdeus    👁️ 3      

surdeus

Info

This post is auto-generated from RSS feed The Rust Programming Language Forum - Latest topics. Source: Tokio select! and features

Hello,

In my task, I have a tokio select!. It is simple and look like this (simplified):

let subscriber1 = create_subscriber1();
let subscriber2 = create_subscriber2();
let subscriber3 = create_subscriber3();

loop {
    select! {
           sample = subscriber1.recv_async() => {
                 // Do something
           }
           sample = subscriber2.recv_async() => {
                 // Do something
           }
           sample = subscriber3.recv_async() => {
                 // Do something
           }
    }
}

How can I completely remove/add subscriberX with a feature flag?
Of course, this does not work, the select! macro doesn't like this:

let subscriber1 = create_subscriber1();
#[cfg(feature = "my_feature")]
let subscriber2 = create_subscriber2();
let subscriber3 = create_subscriber3();

loop {
    select! {
           sample = subscriber1.recv_async() => {
                 // Do something
           }
           #[cfg(feature = "my_feature")]
           sample = subscriber2.recv_async() => {
                 // Do something
           }
           sample = subscriber3.recv_async() => {
                 // Do something
           }
    }
}

1 post - 1 participant

Read full topic

🏷️ rust_feed