···6666 }
67676868 pub fn paint_all_objects(&mut self, fill: Fill) {
6969- for (_id, obj) in &mut self.objects {
6969+ for obj in self.objects.values_mut() {
7070 obj.fill = Some(fill);
7171 }
7272 self.flush();
7373 }
74747575 pub fn filter_all_objects(&mut self, filter: Filter) {
7676- for (_id, obj) in &mut self.objects {
7676+ for obj in self.objects.values_mut() {
7777 obj.filters.push(filter)
7878 }
7979 self.flush();
···8686 self.flush();
8787 }
88888989- pub fn add_object<'a, N: Display>(&mut self, name: N, object: ColoredObject) {
8989+ pub fn add_object<N: Display>(&mut self, name: N, object: ColoredObject) {
9090 let name_str = format!("{}", name);
91919292 if self.objects.contains_key(&name_str) {
···9696 self.set_object(name_str, object);
9797 }
98989999- pub fn set_object<'a, N: Display>(&mut self, name: N, object: ColoredObject) {
9999+ pub fn set_object<N: Display>(&mut self, name: N, object: ColoredObject) {
100100 let name_str = format!("{}", name);
101101102102 self.objects.insert(name_str, object);
+4-4
src/lib.rs
···88pub mod examples;
99pub mod fill;
1010pub mod filter;
1111+pub mod fonts;
1112pub mod layer;
1213pub mod midi;
1314pub mod objects;
···1718pub mod transform;
1819pub mod ui;
1920pub mod video;
2020-pub mod web;
2121pub mod vst;
2222-pub mod fonts;
2222+pub mod web;
2323pub use animation::*;
2424use anyhow::Result;
2525pub use audio::*;
···3636pub use sync::Syncable;
3737pub use transform::*;
3838pub use video::*;
3939-pub use web::log;
4039pub use vst::*;
4040+pub use web::log;
41414242use nanoid::nanoid;
4343use std::fs::{self};
···5858 pub duration_override: Option<usize>,
5959}
60606161-impl<'a, C> Context<'a, C> {
6161+impl<C> Context<'_, C> {
6262 pub fn stem(&self, name: &str) -> StemAtInstant {
6363 let stems = &self.syncdata.stems;
6464 if !stems.contains_key(name) {
···139139 }
140140}
141141142142-fn load_notes<'a>(
142142+fn load_notes(
143143 source: &PathBuf,
144144 progressbar: Option<&ProgressBar>,
145145) -> (Now, HashMap<String, Vec<Note>>) {
···152152 }
153153154154 let raw = std::fs::read(source)
155155- .expect(format!("Failed to read MIDI file {}", source.to_str().unwrap()).as_str());
155155+ .unwrap_or_else(|_| panic!("Failed to read MIDI file {}", source.to_str().unwrap()));
156156 let midifile = midly::Smf::parse(&raw).unwrap();
157157158158 let mut timeline = Timeline::new();
···224224 let mut absolute_tick_to_ms = HashMap::<u32, usize>::new();
225225 let mut last_tick = 0;
226226 for (tick, tracks) in timeline.iter().sorted_by_key(|(tick, _)| *tick) {
227227- for (_, event) in tracks {
228228- match event.kind {
229229- TrackEventKind::Meta(MetaMessage::Tempo(tempo)) => {
230230- now.tempo = tempo.as_int() as usize;
231231- }
232232- _ => {}
227227+ for event in tracks.values() {
228228+ if let TrackEventKind::Meta(MetaMessage::Tempo(tempo)) = event.kind {
229229+ now.tempo = tempo.as_int() as usize;
233230 }
234231 }
235232 let delta = tick - last_tick;
···249246 let mut stem_notes = StemNotes::new();
250247 for (tick, tracks) in timeline.iter().sorted_by_key(|(tick, _)| *tick) {
251248 for (track_name, event) in tracks {
252252- match event.kind {
253253- TrackEventKind::Midi {
254254- channel: _,
255255- message,
256256- } => match message {
249249+ if let TrackEventKind::Midi {
250250+ channel: _,
251251+ message,
252252+ } = event.kind
253253+ {
254254+ match message {
257255 MidiMessage::NoteOn { key, vel } | MidiMessage::NoteOff { key, vel } => {
258256 stem_notes
259257 .entry(absolute_tick_to_ms[tick] as u32)
···273271 );
274272 }
275273 _ => {}
276276- },
277277- _ => {}
274274+ }
278275 }
279276 progressbar.inc(1)
280277 }
+1-1
src/region.rs
···124124#[test]
125125fn test_sub_and_transate_coherence() {
126126 let a = Region::from_origin(Point(3, 3)).unwrap();
127127- let mut b = a.clone();
127127+ let mut b = a;
128128 b.translate(2, 3);
129129130130 assert_eq!(b - a, (2, 3));