use choose_your_bed::{Bed, Bedding, ComfortLevel, SizeRecommendation};
fn main() {
println!("--- Example 1: Basic Bed Selection ---");
let preferences = Bedding {
comfort: ComfortLevel::Medium,
size: SizeRecommendation::Queen,
material: "Memory Foam".to_string(),
budget: 1000.0,
};
let bed1 = Bed::new("CloudDream Queen", ComfortLevel::Medium, SizeRecommendation::Queen, 800.0, "Memory Foam".to_string());
let bed2 = Bed::new("FirmSleeper Queen", ComfortLevel::Firm, SizeRecommendation::Queen, 900.0, "Latex".to_string());
let bed3 = Bed::new("SoftHaven Queen", ComfortLevel::Soft, SizeRecommendation::Queen, 700.0, "Hybrid".to_string());
let beds = vec![bed1, bed2, bed3];
let best_bed = choose_your_bed::choose_bed(&preferences, &beds);
match best_bed {
Some(bed) => println!("Recommended bed: {}", bed.name),
None => println!("No suitable bed found based on your preferences."),
}
println!();
println!("--- Example 2: Bed Selection with Strict Budget ---");
let preferences2 = Bedding {
comfort: ComfortLevel::Soft,
size: SizeRecommendation::Twin,
material: "Innerspring".to_string(),
budget: 500.0,
};
let bed4 = Bed::new("BudgetDream Twin", ComfortLevel::Soft, SizeRecommendation::Twin, 450.0, "Innerspring".to_string());
let bed5 = Bed::new("ExpensiveCloud Twin", ComfortLevel::Soft, SizeRecommendation::Twin, 600.0, "Memory Foam".to_string());
let bed6 = Bed::new("MediumFirm Twin", ComfortLevel::Medium, SizeRecommendation::Twin, 500.0, "Hybrid".to_string());
let beds2 = vec![bed4, bed5, bed6];
let best_bed2 = choose_your_bed::choose_bed(&preferences2, &beds2);
match best_bed2 {
Some(bed) => println!("Recommended bed: {}", bed.name),
None => println!("No suitable bed found based on your preferences."),
}
println!();
println!("--- Example 3: No Matching Beds ---");
let preferences3 = Bedding {
comfort: ComfortLevel::Firm,
size: SizeRecommendation::King,
material: "Waterbed".to_string(),
budget: 1500.0,
};
let bed7 = Bed::new("LuxuryKing", ComfortLevel::Medium, SizeRecommendation::King, 1400.0, "Memory Foam".to_string());
let bed8 = Bed::new("FirmKing", ComfortLevel::Firm, SizeRecommendation::King, 1600.0, "Latex".to_string());
let beds3 = vec![bed7, bed8];
let best_bed3 = choose_your_bed::choose_bed(&preferences3, &beds3);
match best_bed3 {
Some(bed) => println!("Recommended bed: {}", bed.name),
None => println!("No suitable bed found based on your preferences."),
}
println!();
println!("--- Example 4: Choosing the Cheapest Bed ---");
let preferences4 = Bedding {
comfort: ComfortLevel::Medium,
size: SizeRecommendation::Full,
material: "Hybrid".to_string(),
budget: 700.0,
};
let bed9 = Bed::new("FullDream", ComfortLevel::Medium, SizeRecommendation::Full, 650.0, "Hybrid".to_string());
let bed10 = Bed::new("FullCloud", ComfortLevel::Medium, SizeRecommendation::Full, 600.0, "Hybrid".to_string());
let bed11 = Bed::new("FullRest", ComfortLevel::Medium, SizeRecommendation::Full, 700.0, "Hybrid".to_string());
let beds4 = vec![bed9, bed10, bed11];
let best_bed4 = choose_your_bed::choose_bed(&preferences4, &beds4);
match best_bed4 {
Some(bed) => println!("Recommended bed: {}", bed.name),
None => println!("No suitable bed found based on your preferences."),
}
println!();
println!("--- Example 5: Comfort level doesn't match anything ---");
let preferences5 = Bedding {
comfort: ComfortLevel::Firm,
size: SizeRecommendation::Twin,
material: "Innerspring".to_string(),
budget: 500.0,
};
let bed12 = Bed::new("BudgetDream Twin", ComfortLevel::Soft, SizeRecommendation::Twin, 450.0, "Innerspring".to_string());
let bed13 = Bed::new("ExpensiveCloud Twin", ComfortLevel::Medium, SizeRecommendation::Twin, 600.0, "Memory Foam".to_string());
let bed14 = Bed::new("MediumFirm Twin", ComfortLevel::Medium, SizeRecommendation::Twin, 500.0, "Hybrid".to_string());
let beds5 = vec![bed12, bed13, bed14];
let best_bed5 = choose_your_bed::choose_bed(&preferences5, &beds5);
match best_bed5 {
Some(bed) => println!("Recommended bed: {}", bed.name),
None => println!("No suitable bed found based on your preferences."),
}
println!();
println!("For more features and information on creating your own 'Choose Your Bed' content, visit https://supermaker.ai/blog/how-to-make-the-viral-choose-your-bed-videos-with-ai/");
}