choose_your_bed 69.0.38

High-quality integration for https://supermaker.ai/blog/how-to-make-the-viral-choose-your-bed-videos-with-ai/
Documentation
use choose_your_bed::{Bed, Bedding, ComfortLevel, SizeRecommendation};

fn main() {
    // Example 1: Basic bed selection based on preferences.
    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!();

    // Example 2: Bed selection with a stricter budget.
    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!();

    // Example 3: No matching beds.
    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!();

    // Example 4: Choosing the cheapest bed
    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!();

    // Example 5: Comfort level doesn't match anything
    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/");
}