use miette::{Context, IntoDiagnostic, Result};
use serde::Deserialize;
use std::env::args;
use std::fs::read_to_string;
use vdf_reader::from_str;
#[derive(Debug, Deserialize)]
#[allow(dead_code)]
enum Material {
LightmappedGeneric {
#[serde(rename = "$baseTexture")]
base_texture: String,
#[serde(rename = "$bumpmap")]
bumpmap: String,
#[serde(rename = "$ssbump")]
ssbump: bool,
#[serde(rename = "%keywords")]
keywords: String,
#[serde(rename = "$detail")]
detail: String,
#[serde(rename = "$detailscale")]
detailscale: f32,
#[serde(rename = "$detailblendmode")]
detailblendmode: i32,
#[serde(rename = "$detailblendfactor")]
detailblendfactor: f32,
},
}
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 material: Material = from_str(&raw)?;
dbg!(material);
Ok(())
}