diff options
| -rw-r--r-- | CHANGELOG.md | 3 | ||||
| -rw-r--r-- | examples/loginfo.rs | 4 | ||||
| -rw-r--r-- | src/lib.rs | 16 | 
3 files changed, 23 insertions, 0 deletions
| diff --git a/CHANGELOG.md b/CHANGELOG.md index c7c6b4b..3450b48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@  All notable changes to this project will be documented in this file.  ## Unreleased +### Added +- `Log::errors` as a convenience function. +  ### Fixed  - Fixed the conversion from `CBTS_ERROR` to `EventKind::Error` not having the    correct text. diff --git a/examples/loginfo.rs b/examples/loginfo.rs index 927ff52..978fede 100644 --- a/examples/loginfo.rs +++ b/examples/loginfo.rs @@ -36,4 +36,8 @@ fn main() {      }      println!("Number of recorded events: {}", log.events().len()); + +    for error in log.errors() { +        println!("Error in log: {}", error); +    }  } @@ -897,4 +897,20 @@ impl Log {              }          })      } + +    /// Returns all error strings that were captured. +    /// +    /// If no errors were encountered, an empty vec is returned. +    /// +    /// Note that those are errors reported verbatim by arcdps, nothing that evtclib +    /// produces/interprets. +    pub fn errors(&self) -> Vec<&str> { +        self.events().iter().filter_map(|e| { +            if let EventKind::Error { ref text } = e.kind() { +                Some(text as &str) +            } else { +                None +            } +        }).collect() +    }  } | 
