diff options
author | Daniel Schadt <kingdread@gmx.de> | 2018-04-23 16:36:26 +0200 |
---|---|---|
committer | Daniel Schadt <kingdread@gmx.de> | 2018-04-23 16:36:26 +0200 |
commit | 6165bf6e4cfde199c3bc8bd0b862eb7de309aec3 (patch) | |
tree | 5f8f369ba841e424a69d89e9cddcd5e9a12214e0 /src/raw/parser.rs | |
parent | 647137cdb0a02f242d5fa0e5e8df208be9411bf0 (diff) | |
download | evtclib-6165bf6e4cfde199c3bc8bd0b862eb7de309aec3.tar.gz evtclib-6165bf6e4cfde199c3bc8bd0b862eb7de309aec3.tar.bz2 evtclib-6165bf6e4cfde199c3bc8bd0b862eb7de309aec3.zip |
add a bit more documentation
Diffstat (limited to 'src/raw/parser.rs')
-rw-r--r-- | src/raw/parser.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/raw/parser.rs b/src/raw/parser.rs index 11e892b..8e931a2 100644 --- a/src/raw/parser.rs +++ b/src/raw/parser.rs @@ -43,6 +43,25 @@ //! we can use those values instead of some other garbage. The other enums //! already have the `None` variant, and the corresponding byte is zeroed, so //! there's no problem with those. +//! +//! # Buffering +//! +//! Parsing the `evtc` file does many small reads. If you supply a raw reader, +//! each read requires a system call, and the overhead will be massive. It is +//! advised that you wrap the readers in a `BufReader`, if the underlying reader +//! does not do buffering on its own: +//! +//! ```no_run +//! use std::io::BufReader; +//! use std::fs::File; +//! let mut input = BufReader::new(File::open("log.evtc").unwrap()); +//! let parsed = evtclib::raw::parse_file(&mut input); +//! ``` +//! +//! ```raw +//! buffered: cargo run --release 0.22s user 0.04s system 94% cpu 0.275 total +//! raw file: cargo run --release 0.79s user 1.47s system 98% cpu 2.279 total +//! ``` use byteorder::{LittleEndian, ReadBytesExt, LE}; use num_traits::FromPrimitive; |