diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/event.rs | 5 | ||||
| -rw-r--r-- | src/lib.rs | 5 | 
2 files changed, 9 insertions, 1 deletions
| 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, @@ -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) | 
