From 5741abdfe2dfa6a93e7d71c39ecedadbff9b65ee Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Sat, 2 May 2020 14:33:07 +0200 Subject: update README --- README.md | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e910f2f..c68be25 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,44 @@ evtclib ======= +[![Latest Version](https://img.shields.io/crates/v/evtclib.svg)](https://crates.io/crates/evtclib) +[![Rust Documentation](https://img.shields.io/badge/api-rustdoc-blue.svg)](https://docs.rs/evtclib) + `evtclib` is a Rust library that allows you to parse `.evtc` files, as generated by the [arcdps addon](https://www.deltaconnected.com/arcdps/) for the Guild Wars 2 video game. -It supports a low-level parsing interface and a higher-level interface which -interprets some of the data and converts it to a more appropriate interface. +Features: -`evtclib` uses `cargo` as its build tool and as such can be included as a -dependency in other Rust projects. API docs can be generated locally by running -`cargo doc`. +* A low-level parsing interface with structs mimicking the arcdps C structs. +* A high-level interface, intended for consumption within Rust applications. +* Support for reading zipped evtc files (`.evtc.zip` or `.zevtc`). +* Backwards compatible for older revisions of the evtc format. `evtclib` is currently in beta-stage. Not all evtc events are supported, and the API is not yet set in stone. +Example +------- + +```rust +use std::fs::File; + +fn main() -> Result<(), Box> { + // Open a file for processing + let mut file = File::open("Skorvald/20200421-183243.evtc")?; + // Parse the raw content of the file + let raw_log = evtclib::raw::parse_file(&mut file)?; + // Process the file to do the nitty-gritty low-level stuff done + let log = evtclib::process(&raw_log)?; + // Do work on the log + for player in log.players() { + println!("Player {} participated!", player.account_name()); + } + Ok(()) +} +``` + License ------- -- cgit v1.2.3