From ab65a8b52d0f1f99fbe0b2a076460cbc448ba59d Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 26 Jan 2021 23:17:26 +0000 Subject: [PATCH] wdt: Provide game_spec_data No caller yet. Signed-off-by: Ian Jackson --- Cargo.lock.example | 1 + wdriver.rs | 12 ++++++++++++ wdriver/Cargo.toml | 1 + 3 files changed, 14 insertions(+) diff --git a/Cargo.lock.example b/Cargo.lock.example index 44a3d31d..5d7d391e 100644 --- a/Cargo.lock.example +++ b/Cargo.lock.example @@ -1743,6 +1743,7 @@ dependencies = [ "structopt", "strum", "thirtyfour_sync", + "toml 0.5.8", "void", "x11rb", ] diff --git a/wdriver.rs b/wdriver.rs index b2370e34..69a6615d 100644 --- a/wdriver.rs +++ b/wdriver.rs @@ -643,6 +643,18 @@ impl DirSubst { pub fn game_spec_path(&self) -> String { self.subst("@specs@/demo.game.toml")? } + + #[throws(AE)] + pub fn game_spec_data(&self) -> otter::spec::GameSpec { + let path = self.game_spec_path()?; + (||{ + let data = fs::read(&path).context("read")?; + let data = toml::de::from_slice(&data).context("parse")?; + Ok::<_,AE>(data) + })() + .context(path) + .context("game spec")? + } } #[throws(AE)] diff --git a/wdriver/Cargo.toml b/wdriver/Cargo.toml index e0a2b8cb..1f2d3f8f 100644 --- a/wdriver/Cargo.toml +++ b/wdriver/Cargo.toml @@ -34,6 +34,7 @@ serde_json = "1" structopt = "0.3" strum = { version = "0.20", features = ['derive'] } thirtyfour_sync = "0.22" +toml = "0.5" void = "1" x11rb = "0.8" -- 2.30.2