From 3b4d962c91299924353b7ea907226435291c8fd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20=E2=80=9Cpep=E2=80=9D=20Buquet?= Date: Sun, 28 Jun 2020 22:16:41 +0200 Subject: [PATCH] savestate: add example reader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maxime “pep” Buquet --- savestate/Cargo.toml | 3 +++ savestate/examples/savestate.rs | 37 +++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 savestate/examples/savestate.rs diff --git a/savestate/Cargo.toml b/savestate/Cargo.toml index a4302a1..3f73dd4 100644 --- a/savestate/Cargo.toml +++ b/savestate/Cargo.toml @@ -7,3 +7,6 @@ license = "AGPL-3.0-or-later" [dependencies] lazy_static = "1.4" + +[dev-dependencies] +structopt = "0.3" diff --git a/savestate/examples/savestate.rs b/savestate/examples/savestate.rs new file mode 100644 index 0000000..b908696 --- /dev/null +++ b/savestate/examples/savestate.rs @@ -0,0 +1,37 @@ +// Copyright (C) 2020 "Maxime “pep” Buquet " +// +// This program is free software: you can redistribute it and/or modify it +// under the terms of the GNU Affero General Public License as published by the +// Free Software Foundation, either version 3 of the License, or (at your +// option) any later version. +// +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License +// for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +use std::fs; +use std::convert::TryFrom; +use savestate::SaveState; + +use std::path::PathBuf; +use structopt::StructOpt; + +#[derive(Debug, StructOpt)] +#[structopt(name = "savestate", about = "An example of savestate usage")] +struct Opt { + #[structopt(parse(from_os_str), long, short)] + files: Vec, +} + +fn main() { + let opt = Opt::from_args(); + + for file in opt.files { + let data: Vec = fs::read(file).unwrap(); + println!("{:#?}\n", SaveState::try_from(data).unwrap()); + } +}