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() + } +}