use openrgb2::{Color, OpenRgbClient, OpenRgbResult};
#[tokio::main]
async fn main() -> OpenRgbResult<()> {
let client = OpenRgbClient::connect().await?;
let controllers = client.get_all_controllers().await?;
let controller = controllers
.iter()
.next()
.expect("Must have at least one controller");
controller.init().await?;
println!("Performing example on {}", controller.name());
let mut cmd = controller.cmd();
cmd.set_leds(vec![Color::new(255, 0, 0); controller.num_leds()])?;
cmd.set_zone_leds(
0,
vec![Color::new(0, 255, 0); controller.get_zone(0)?.num_leds() / 2],
)?;
cmd.set_led(0, Color::new(0, 0, 255))?;
cmd.execute().await?;
Ok(())
}