aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md2
-rw-r--r--src/event.rs5
-rw-r--r--src/lib.rs5
3 files changed, 11 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5701aa7..92c594b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,8 @@ All notable changes to this project will be documented in this file.
- Boss and encounter definitions for the training golems (`StandardKittyGolem`,
`MediumKittyGolem`, `LargeKittyGolem`)
- `Log::is_generic` to check whether a log is generic (WvW)
+- `FromRawEventError::UnknownLanguage` has been added to deal with an invalid
+ language byte.
### Fixed
- `evtclib` will no longer choke on WvW logs where player names might not contain the expected
diff --git a/src/event.rs b/src/event.rs
index 4d02fe7..ee561f8 100644
--- a/src/event.rs
+++ b/src/event.rs
@@ -19,6 +19,8 @@ pub enum FromRawEventError {
UnknownStateChange(raw::CbtStateChange),
#[error("event contains an unknown damage event")]
UnknownDamageEvent,
+ #[error("an unknown language byte was found")]
+ UnknownLanguage,
#[error("the event contains invalid text")]
InvalidText,
#[error("an unexpected REPLINFO was found")]
@@ -338,7 +340,8 @@ impl TryFrom<&raw::CbtEvent> for Event {
agent_addr: raw_event.src_agent,
},
CbtStateChange::Language => EventKind::Language {
- language: raw::Language::from_u64(raw_event.src_agent).unwrap(),
+ language: raw::Language::from_u64(raw_event.src_agent)
+ .ok_or(FromRawEventError::UnknownLanguage)?,
},
CbtStateChange::GwBuild => EventKind::Build {
build: raw_event.src_agent,
diff --git a/src/lib.rs b/src/lib.rs
index 60f4903..823cd71 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -188,6 +188,11 @@ impl Log {
///
/// Be careful with encounters that have multiple boss agents, such as Trio
/// and Xera.
+ ///
+ /// # Panics
+ ///
+ /// This function will panic if the boss agent cannot be found. For a more failsafe version,
+ /// see [`Log::boss_agents`].
pub fn boss(&self) -> &Agent {
self.characters()
.find(|c| c.character().id() == self.boss_id)