vdf-reader 0.3.3

Rust parser for valve vdf files.
Documentation
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(())
}