use rust_ai_core::{get_device, warn_if_cpu, DeviceConfig, Result};
fn main() -> Result<()> {
println!("=== Device Selection Example ===\n");
println!("1. Default configuration:");
let config = DeviceConfig::default();
let device = get_device(&config)?;
println!(" Device: {device:?}\n");
println!("2. Builder pattern:");
let config = DeviceConfig::new()
.with_cuda_device(0)
.with_crate_name("my-app");
let device = get_device(&config)?;
println!(" Device: {device:?}\n");
println!("3. From environment (check RUST_AI_FORCE_CPU, RUST_AI_CUDA_DEVICE):");
let config = DeviceConfig::from_env();
println!(" force_cpu: {}", config.force_cpu);
println!(" cuda_device: {}", config.cuda_device);
let device = get_device(&config)?;
println!(" Device: {device:?}\n");
println!("4. Force CPU (for testing):");
let config = DeviceConfig::new().with_force_cpu(true);
let device = get_device(&config)?;
println!(" Device: {device:?}\n");
println!("5. Warning on CPU usage:");
warn_if_cpu(&device, "example-app");
warn_if_cpu(&device, "example-app"); println!(" (Warning printed only once)\n");
println!("=== Example Complete ===");
Ok(())
}