Builds a PDF resume from a json file
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}