diff options
| author | Sophie Forrest <git@sophieforrest.com> | 2024-09-10 12:41:44 +1200 |
|---|---|---|
| committer | Sophie Forrest <git@sophieforrest.com> | 2024-09-10 12:41:44 +1200 |
| commit | c37c398a30f42da130142f0b2271d74b2c0465e1 (patch) | |
| tree | 74c716dac8db7dc6d64d389097fefa0dcc076544 /src/lib.rs | |
| parent | e8406706852969e8e6a3194efb4c069b5ffdbe21 (diff) | |
feat: downloading
Downloading is now done with reqwest.
Diffstat (limited to '')
| -rw-r--r-- | src/lib.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/lib.rs b/src/lib.rs index d156c42..1246a76 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,10 +5,7 @@ //! This is a simple program capable of parsing VUWs courses from the registry. It cannot correctly //! parse prerequisites, however. -use std::{ - collections::{HashMap, HashSet}, - fmt, -}; +use std::collections::{HashMap, HashSet}; use scraper::{CaseSensitivity, ElementRef, Html, Selector}; use serde::{Deserialize, Serialize}; @@ -28,7 +25,7 @@ pub struct Course<'a> { pub offered: bool, /// Amount of points this course is worth. - pub points: u8, + pub points: f32, /// Courses that must be taken before this course. pub prerequisites: Vec<&'a str>, @@ -100,7 +97,7 @@ impl<'a> Course<'a> { info!("{:?}", points_slice); let points = points_slice - .parse::<u8>() + .parse::<f32>() .expect("should correctly parse points"); info!("{:?}", points); @@ -169,6 +166,9 @@ impl<'a> Course<'a> { .expect("course reference number should exist") .get(4..) .expect("course reference number digits should start at this indice") + .split_whitespace() + .next() + .expect("course reference number should exist") .parse::<u16>() .expect("course reference number should be parseable"), Trimester::try_from( @@ -189,7 +189,7 @@ impl Default for Course<'_> { Self { description: Option::default(), offered: true, - points: u8::default(), + points: f32::default(), prerequisites: Vec::default(), restrictions: Vec::default(), subject_areas: HashSet::default(), @@ -266,7 +266,7 @@ impl TryFrom<&str> for Trimester { "1+2/3" => Ok(Self::OneTwo), "2+3/3" => Ok(Self::TwoThree), "3+1/3" => Ok(Self::ThreeOne), - "1+2+3/3" => Ok(Self::FullYear), + "1+2+3/3" | "2+3+1/3" | "full year" => Ok(Self::FullYear), _ => Err(String::from("Invalid trimester.")), } } |