From 494b38a89b67bb450ecea1f5dc888e03048b8408 Mon Sep 17 00:00:00 2001 From: Maddox Werts Date: Fri, 1 Aug 2025 13:53:52 -0400 Subject: [PATCH] Created simple backend with hard-coded prices --- project/src/backend.rs | 50 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/project/src/backend.rs b/project/src/backend.rs index e69de29..fd729a1 100644 --- a/project/src/backend.rs +++ b/project/src/backend.rs @@ -0,0 +1,50 @@ +// Libraries +use std::io::Result; + +// Structures +pub struct Backend { + memberships: Vec, +} + +// Implementations +impl Backend { + // Constructors + /// Creates a new Backend + /// + /// # Arguments + /// * `fetch` - Uses the **Internet** to fetch the latest prices for memberships. + /// + /// # Examples + /// ```rs + /// let backend = Backend::new(true)?; + /// ``` + pub fn new(fetch: bool) -> Result { + // Did we want to fetch our prices? + let memberships: Vec = if fetch { + // Use Internet to get prices + unimplemented!("TODO: Implement online Membership Price Fetching"); + } else { + // Manually creating our prices + vec![ + "Super ($41.99)".to_string(), + "Deluxe ($36.99)".to_string(), + "Standard ($31.99)".to_string(), + "Basic ($26.99)".to_string(), + ] + }; + + // Return Self + Ok(Self { memberships }) + } + + // Functions + /// Gets the list of current memberships + /// + /// # Examples + /// ```rs + /// app.set_membership_names(backend.get_memberships()); + /// ``` + pub fn get_memberships(&self) -> Vec { + self.memberships.clone() + } +}