Expand description

Traits and structures to analyze fights.

Fights need different logic in order to determine specific data, for example each fight has a different way to determine whether or not the Challenge Mote was activated, whether or not the fight was successful, …

This module aims to unify that logic by providing the Analyzer trait, which provides a unified interface to query this information. You can use Log::analyzer or for_log to obtain an analyzer fitting for the encounter that is represented by the log.

Most of the time, you will be dealing with a dynamically dispatched version of Analyzer, that is either &dyn Analyzer or Box<dyn Analyzer>. Also keep in mind that an analyzer keeps a reference to the log that it is analyzing, which can be accessed through Analyzer::log.

The implementation of the different analyzers is split off in different submodules:

  • raids for the raid-related encounters.
  • fractals for the fractal-specific encounters.
  • strikes for the strike-mission specific encounters.

Note that you should not create concrete analyzers on your own, as the behaviour is not specified when you use a wrong analyzer for the given log. Rely only on Log::analyzer (or for_log) and the methods defined in Analyzer.

Modules

Analyzers for (challenge mote) fractal encounters.

This module contains helper methods that are used in different analyzers.

Analyzers for raid logs.

Analyzers for Strike Mission logs.

Enums

The outcome of a fight.

Traits

An Analyzer is something that implements fight-dependent analyzing of the log.

Functions

Returns the correct Analyzer for the given log file.