Skip to content

Commit 21c17cc

Browse files
authored
Dispatcher::handle_message does not need Result anymore (#365)
* Dispatcher::handle_message does not need Result anymore (1) Callers can get rid of result handling, too. * Dispatcher::handle_message does not need Result anymore (2) * Dispatcher::handle_message does not need Result anymore (3) cargo fmt
1 parent a6c57be commit 21c17cc

File tree

4 files changed

+93
-102
lines changed

4 files changed

+93
-102
lines changed

editor/src/communication/dispatcher.rs

Lines changed: 37 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::{message_prelude::*, EditorError};
1+
use crate::message_prelude::*;
22

33
pub use crate::document::DocumentsMessageHandler;
44
pub use crate::input::{InputMapper, InputPreprocessor};
@@ -26,7 +26,7 @@ const GROUP_MESSAGES: &[MessageDiscriminant] = &[
2626
];
2727

2828
impl Dispatcher {
29-
pub fn handle_message<T: Into<Message>>(&mut self, message: T) -> Result<(), EditorError> {
29+
pub fn handle_message<T: Into<Message>>(&mut self, message: T) {
3030
self.messages.push_back(message.into());
3131

3232
use Message::*;
@@ -50,7 +50,6 @@ impl Dispatcher {
5050
}
5151
}
5252
}
53-
Ok(())
5453
}
5554

5655
pub fn collect_actions(&self) -> ActionList {
@@ -126,8 +125,8 @@ mod test {
126125
let mut editor = create_editor_with_three_layers();
127126

128127
let document_before_copy = editor.dispatcher.documents_message_handler.active_document().document.clone();
129-
editor.handle_message(DocumentsMessage::Copy).unwrap();
130-
editor.handle_message(DocumentsMessage::PasteIntoFolder { path: vec![], insert_index: -1 }).unwrap();
128+
editor.handle_message(DocumentsMessage::Copy);
129+
editor.handle_message(DocumentsMessage::PasteIntoFolder { path: vec![], insert_index: -1 });
131130
let document_after_copy = editor.dispatcher.documents_message_handler.active_document().document.clone();
132131

133132
let layers_before_copy = document_before_copy.root.as_folder().unwrap().layers();
@@ -158,9 +157,9 @@ mod test {
158157
let document_before_copy = editor.dispatcher.documents_message_handler.active_document().document.clone();
159158
let shape_id = document_before_copy.root.as_folder().unwrap().layer_ids[1];
160159

161-
editor.handle_message(DocumentMessage::SetSelectedLayers(vec![vec![shape_id]])).unwrap();
162-
editor.handle_message(DocumentsMessage::Copy).unwrap();
163-
editor.handle_message(DocumentsMessage::PasteIntoFolder { path: vec![], insert_index: -1 }).unwrap();
160+
editor.handle_message(DocumentMessage::SetSelectedLayers(vec![vec![shape_id]]));
161+
editor.handle_message(DocumentsMessage::Copy);
162+
editor.handle_message(DocumentsMessage::PasteIntoFolder { path: vec![], insert_index: -1 });
164163

165164
let document_after_copy = editor.dispatcher.documents_message_handler.active_document().document.clone();
166165

@@ -192,40 +191,36 @@ mod test {
192191
const LINE_INDEX: usize = 0;
193192
const PEN_INDEX: usize = 1;
194193

195-
editor.handle_message(DocumentMessage::CreateFolder(vec![])).unwrap();
194+
editor.handle_message(DocumentMessage::CreateFolder(vec![]));
196195

197196
let document_before_added_shapes = editor.dispatcher.documents_message_handler.active_document().document.clone();
198197
let folder_id = document_before_added_shapes.root.as_folder().unwrap().layer_ids[FOLDER_INDEX];
199198

200199
// TODO: This adding of a Line and Pen should be rewritten using the corresponding functions in EditorTestUtils.
201200
// This has not been done yet as the line and pen tool are not yet able to add layers to the currently selected folder
202-
editor
203-
.handle_message(Operation::AddLine {
204-
path: vec![folder_id, LINE_INDEX as u64],
205-
insert_index: 0,
206-
transform: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
207-
style: Default::default(),
208-
})
209-
.unwrap();
210-
211-
editor
212-
.handle_message(Operation::AddPen {
213-
path: vec![folder_id, PEN_INDEX as u64],
214-
insert_index: 0,
215-
transform: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
216-
style: Default::default(),
217-
points: vec![(10.0, 20.0), (30.0, 40.0)],
218-
})
219-
.unwrap();
220-
221-
editor.handle_message(DocumentMessage::SetSelectedLayers(vec![vec![folder_id]])).unwrap();
201+
editor.handle_message(Operation::AddLine {
202+
path: vec![folder_id, LINE_INDEX as u64],
203+
insert_index: 0,
204+
transform: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
205+
style: Default::default(),
206+
});
207+
208+
editor.handle_message(Operation::AddPen {
209+
path: vec![folder_id, PEN_INDEX as u64],
210+
insert_index: 0,
211+
transform: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
212+
style: Default::default(),
213+
points: vec![(10.0, 20.0), (30.0, 40.0)],
214+
});
215+
216+
editor.handle_message(DocumentMessage::SetSelectedLayers(vec![vec![folder_id]]));
222217

223218
let document_before_copy = editor.dispatcher.documents_message_handler.active_document().document.clone();
224219

225-
editor.handle_message(DocumentsMessage::Copy).unwrap();
226-
editor.handle_message(DocumentMessage::DeleteSelectedLayers).unwrap();
227-
editor.handle_message(DocumentsMessage::PasteIntoFolder { path: vec![], insert_index: -1 }).unwrap();
228-
editor.handle_message(DocumentsMessage::PasteIntoFolder { path: vec![], insert_index: -1 }).unwrap();
220+
editor.handle_message(DocumentsMessage::Copy);
221+
editor.handle_message(DocumentMessage::DeleteSelectedLayers);
222+
editor.handle_message(DocumentsMessage::PasteIntoFolder { path: vec![], insert_index: -1 });
223+
editor.handle_message(DocumentsMessage::PasteIntoFolder { path: vec![], insert_index: -1 });
229224

230225
let document_after_copy = editor.dispatcher.documents_message_handler.active_document().document.clone();
231226

@@ -282,12 +277,12 @@ mod test {
282277
let rect_id = document_before_copy.root.as_folder().unwrap().layer_ids[RECT_INDEX];
283278
let ellipse_id = document_before_copy.root.as_folder().unwrap().layer_ids[ELLIPSE_INDEX];
284279

285-
editor.handle_message(DocumentMessage::SetSelectedLayers(vec![vec![rect_id], vec![ellipse_id]])).unwrap();
286-
editor.handle_message(DocumentsMessage::Copy).unwrap();
287-
editor.handle_message(DocumentMessage::DeleteSelectedLayers).unwrap();
280+
editor.handle_message(DocumentMessage::SetSelectedLayers(vec![vec![rect_id], vec![ellipse_id]]));
281+
editor.handle_message(DocumentsMessage::Copy);
282+
editor.handle_message(DocumentMessage::DeleteSelectedLayers);
288283
editor.draw_rect(0., 800., 12., 200.);
289-
editor.handle_message(DocumentsMessage::PasteIntoFolder { path: vec![], insert_index: -1 }).unwrap();
290-
editor.handle_message(DocumentsMessage::PasteIntoFolder { path: vec![], insert_index: -1 }).unwrap();
284+
editor.handle_message(DocumentsMessage::PasteIntoFolder { path: vec![], insert_index: -1 });
285+
editor.handle_message(DocumentsMessage::PasteIntoFolder { path: vec![], insert_index: -1 });
291286

292287
let document_after_copy = editor.dispatcher.documents_message_handler.active_document().document.clone();
293288

@@ -316,17 +311,17 @@ mod test {
316311

317312
let verify_order = |handler: &mut DocumentMessageHandler| (handler.all_layers_sorted(), handler.non_selected_layers_sorted(), handler.selected_layers_sorted());
318313

319-
editor.handle_message(DocumentMessage::SetSelectedLayers(vec![vec![0], vec![2]])).unwrap();
314+
editor.handle_message(DocumentMessage::SetSelectedLayers(vec![vec![0], vec![2]]));
320315

321-
editor.handle_message(DocumentMessage::ReorderSelectedLayers(1)).unwrap();
316+
editor.handle_message(DocumentMessage::ReorderSelectedLayers(1));
322317
let (all, non_selected, selected) = verify_order(&mut editor.dispatcher.documents_message_handler.active_document_mut());
323318
assert_eq!(all, non_selected.into_iter().chain(selected.into_iter()).collect::<Vec<_>>());
324319

325-
editor.handle_message(DocumentMessage::ReorderSelectedLayers(-1)).unwrap();
320+
editor.handle_message(DocumentMessage::ReorderSelectedLayers(-1));
326321
let (all, non_selected, selected) = verify_order(&mut editor.dispatcher.documents_message_handler.active_document_mut());
327322
assert_eq!(all, selected.into_iter().chain(non_selected.into_iter()).collect::<Vec<_>>());
328323

329-
editor.handle_message(DocumentMessage::ReorderSelectedLayers(i32::MAX)).unwrap();
324+
editor.handle_message(DocumentMessage::ReorderSelectedLayers(i32::MAX));
330325
let (all, non_selected, selected) = verify_order(&mut editor.dispatcher.documents_message_handler.active_document_mut());
331326
assert_eq!(all, non_selected.into_iter().chain(selected.into_iter()).collect::<Vec<_>>());
332327
}

editor/src/lib.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,11 @@ impl Editor {
3939
Self { dispatcher: Dispatcher::new() }
4040
}
4141

42-
pub fn handle_message<T: Into<Message>>(&mut self, message: T) -> Result<Vec<FrontendMessage>, EditorError> {
43-
self.dispatcher.handle_message(message).map(|_| {
44-
let mut responses = Vec::new();
45-
std::mem::swap(&mut responses, &mut self.dispatcher.responses);
46-
responses
47-
})
42+
pub fn handle_message<T: Into<Message>>(&mut self, message: T) -> Vec<FrontendMessage> {
43+
self.dispatcher.handle_message(message);
44+
let mut responses = Vec::new();
45+
std::mem::swap(&mut responses, &mut self.dispatcher.responses);
46+
responses
4847
}
4948
}
5049

editor/src/misc/test_utils.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ impl EditorTestUtils for Editor {
6262
}
6363

6464
fn mouseup(&mut self, state: EditorMouseState) {
65-
self.handle_message(InputPreprocessorMessage::MouseUp(state, ModifierKeys::default())).unwrap();
65+
self.handle_message(InputPreprocessorMessage::MouseUp(state, ModifierKeys::default()));
6666
}
6767

6868
fn lmb_mousedown(&mut self, x: f64, y: f64) {
@@ -74,14 +74,14 @@ impl EditorTestUtils for Editor {
7474
}
7575

7676
fn input(&mut self, message: InputPreprocessorMessage) {
77-
self.handle_message(Message::InputPreprocessor(message)).unwrap();
77+
self.handle_message(Message::InputPreprocessor(message));
7878
}
7979

8080
fn select_tool(&mut self, typ: ToolType) {
81-
self.handle_message(Message::Tool(ToolMessage::ActivateTool(typ))).unwrap();
81+
self.handle_message(Message::Tool(ToolMessage::ActivateTool(typ)));
8282
}
8383

8484
fn select_primary_color(&mut self, color: Color) {
85-
self.handle_message(Message::Tool(ToolMessage::SelectPrimaryColor(color))).unwrap();
85+
self.handle_message(Message::Tool(ToolMessage::SelectPrimaryColor(color)));
8686
}
8787
}

0 commit comments

Comments
 (0)