pub struct Replay {
pub notes: Vec<ReplayNote>,
}Expand description
Replay data, contains ReplayNote
Some replays don’t have tick information. Some replays have neither tick nor note type information. Some replays have neither tick nor note type nor lane information.
There are some guarantees (judging after expirementation with EO):
- If one replay note has a certain piece of data, all other replay notes in that replay will will also have that piece of data.
- If a replay has note type information, it will definitely also have lane information.
If a replay has tick information, it will definitely also have both note type and lane information.
Fields§
§notes: Vec<ReplayNote>Implementations§
Source§impl Replay
impl Replay
Sourcepub fn split_into_lanes(&self) -> Option<[NoteAndHitSeconds; 4]>
pub fn split_into_lanes(&self) -> Option<[NoteAndHitSeconds; 4]>
Splits the replay into arrays that contain the note and hit seconds, respectively. Note: if a note was missed, it has no entry in the hit seconds vector - logically, because there was no hit, hence the miss. A consequence of this is that the nth note second array will probably not have the same length as the nth hit second array.
Also, this function will discard anything not related to straight tapping, that is, mines, lifts… Also, everything above 4k will be discarded as well.
If this replay file adheres to the usual Etterna replay ordering, the second lists (hits) will be sorted ascendingly.
If this replay doesn’t have lane and note_type information, None is returned.
Sourcepub fn split_into_notes_and_hits(&self) -> Option<NoteAndHitSeconds>
pub fn split_into_notes_and_hits(&self) -> Option<NoteAndHitSeconds>
Like Self::split_into_lanes, but it doesn’t split by lane. Instead, everything is put
into one big vector instead.
Even non-4k notes are included in this function’s result!
If this replay doesn’t have note type information, None is returned.
Trait Implementations§
Source§impl SimpleReplay for Replay
impl SimpleReplay for Replay
fn iter_hits(&self) -> Box<dyn Iterator<Item = Hit> + '_>
Source§fn longest_combo(&self, hit_filter: impl FnMut(Hit) -> bool) -> u32
fn longest_combo(&self, hit_filter: impl FnMut(Hit) -> bool) -> u32
Source§fn tap_judgements(&self, judge: &Judge) -> TapJudgements
fn tap_judgements(&self, judge: &Judge) -> TapJudgements
crate::TapJudgements instance of this replay