use miette::{Context, IntoDiagnostic, Result};
use serde::Deserialize;
use std::collections::HashMap;
use std::env::args;
use std::fs::read_to_string;
use vdf_reader::from_str;
#[derive(Debug, Deserialize)]
#[allow(dead_code)]
struct LibraryFolders {
#[serde(rename = "libraryfolders")]
folders: Vec<LibraryFolder>,
}
#[derive(Debug, Deserialize)]
#[allow(dead_code)]
struct LibraryFolder {
path: String,
label: String,
#[serde(rename = "contentid")]
content_id: i64,
#[serde(rename = "totalsize")]
total_size: u64,
update_clean_bytes_tally: u64,
time_last_update_verified: u64,
apps: HashMap<u64, u64>,
}
fn main() -> Result<()> {
let path = args().nth(1).expect("no path provided");
let raw = read_to_string(path)
.into_diagnostic()
.wrap_err("failed to read input")?;
let folders: LibraryFolders = from_str(&raw)?;
dbg!(folders);
Ok(())
}