Builds a PDF resume from a json file
at main 1.4 kB view raw
1use serde::{Deserialize, Serialize}; 2 3#[derive(Serialize, Deserialize, Debug)] 4enum PositionType { 5 FullTime, 6 PartTime, 7 Seasonal, 8 Contractor, 9} 10 11#[derive(Serialize, Deserialize, Debug)] 12struct Experience { 13 place_of_work: String, 14 position_type: PositionType, 15 start_date: chrono::DateTime<chrono::Utc>, 16 end_date: Option<chrono::DateTime<chrono::Utc>>, 17 job_title: String, 18 skills: Option<Vec<String>>, 19} 20 21#[derive(Serialize, Deserialize, Debug)] 22struct Education { 23 level: String, 24 school_name: String, 25 major: Option<String>, 26 minor: Option<String>, 27 start_date: chrono::DateTime<chrono::Utc>, 28 end_date: Option<chrono::DateTime<chrono::Utc>>, 29} 30 31#[derive(Serialize, Deserialize, Debug)] 32struct Certification { 33 name: String, 34 link: Option<String>, 35 description: String, 36} 37 38#[derive(Serialize, Deserialize, Debug)] 39struct Config { 40 full_name: String, 41 website: Option<String>, 42 email: Option<String>, 43 phone: Option<String>, 44 summary: Option<String>, 45 skills: Option<Vec<String>>, 46 experience: Option<Vec<Experience>>, 47 education: Option<Vec<Education>>, 48 certifications: Option<Vec<Certification>>, 49} 50 51fn main() { 52 let config_path = std::env::var("RB_CONFIG_PATH").unwrap(); 53 let config_file = std::fs::read(config_path).unwrap(); 54 let config: Config = serde_json::from_slice(&config_file).unwrap(); 55 56 println!("{config:#?}"); 57}