Skip to content

Commit

Permalink
Remove closure requirement for select
Browse files Browse the repository at this point in the history
  • Loading branch information
MitMaro committed Feb 20, 2024
1 parent 954f097 commit ea756cf
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 29 deletions.
4 changes: 2 additions & 2 deletions src/components/help.rs
Original file line number Diff line number Diff line change
Expand Up @@ -91,14 +91,14 @@ impl Help {
pub(crate) fn handle_event(&mut self, event: Event, view_state: &crate::view::State) -> Option<Results> {
self.is_active().then(|| {
select!(
default || {
default {
match event {
Event::Key(_) | Event::Standard(StandardEvent::Help) => self.active = false,
_ => {},
}
Results::new()
},
|| handle_view_data_scroll(event, view_state)
handle_view_data_scroll(event, view_state)
)
})
}
Expand Down
4 changes: 2 additions & 2 deletions src/modules/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,14 @@ impl Module for Error {

fn handle_event(&mut self, event: Event, view_state: &crate::view::State) -> Results {
select!(
default || {
default {
let mut results = Results::new();
if let Event::Key(_) = event {
results.state(self.return_state);
}
results
},
|| handle_view_data_scroll(event, view_state)
handle_view_data_scroll(event, view_state)
)
}

Expand Down
28 changes: 14 additions & 14 deletions src/modules/list.rs
Original file line number Diff line number Diff line change
Expand Up @@ -110,36 +110,36 @@ impl Module for List {

fn handle_event(&mut self, event: Event, view_state: &crate::view::State) -> Results {
select!(
default || {
default {
match self.state {
ListState::Normal => self.handle_normal_mode_event(event, view_state),
ListState::Visual => self.handle_visual_mode_input(event, view_state),
ListState::Edit => self.handle_edit_mode_input(event),
}
},
|| self.normal_mode_help.handle_event(event, view_state),
|| self.visual_mode_help.handle_event(event, view_state),
|| self.handle_search_input(event)
self.normal_mode_help.handle_event(event, view_state),
self.visual_mode_help.handle_event(event, view_state),
self.handle_search_input(event)
)
}

fn input_options(&self) -> &InputOptions {
select!(
default || &INPUT_OPTIONS,
|| (self.state == ListState::Edit).then(|| self.edit.input_options()),
|| self.normal_mode_help.input_options(),
|| self.visual_mode_help.input_options(),
|| self.search_bar.input_options()
default & INPUT_OPTIONS,
(self.state == ListState::Edit).then(|| self.edit.input_options()),
self.normal_mode_help.input_options(),
self.visual_mode_help.input_options(),
self.search_bar.input_options()
)
}

fn read_event(&self, event: Event, key_bindings: &KeyBindings) -> Event {
select!(
default || self.read_event_default(event, key_bindings),
|| (self.state == ListState::Edit).then_some(event),
|| self.normal_mode_help.read_event(event),
|| self.visual_mode_help.read_event(event),
|| self.search_bar.read_event(event)
default self.read_event_default(event, key_bindings),
(self.state == ListState::Edit).then_some(event),
self.normal_mode_help.read_event(event),
self.visual_mode_help.read_event(event),
self.search_bar.read_event(event)
)
}
}
Expand Down
12 changes: 6 additions & 6 deletions src/modules/show_commit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -119,25 +119,25 @@ impl Module for ShowCommit {
}

fn input_options(&self) -> &InputOptions {
select!(default || &INPUT_OPTIONS, || self.help.input_options())
select!(default & INPUT_OPTIONS, self.help.input_options())
}

fn read_event(&self, event: Event, key_bindings: &KeyBindings) -> Event {
select!(
default || {
default {
key_bindings
.show_diff
.contains(&event)
.then(|| Event::from(StandardEvent::ShowDiff))
.unwrap_or(event)
},
|| { self.help.read_event(event) }
self.help.read_event(event)
)
}

fn handle_event(&mut self, event: Event, view_state: &crate::view::State) -> Results {
select!(
default || {
default {
let mut results = Results::new();

let active_view_data = match self.state {
Expand Down Expand Up @@ -168,8 +168,8 @@ impl Module for ShowCommit {
}
results
},
|| self.help.handle_event(event, view_state),
|| handle_view_data_scroll(event, view_state)
self.help.handle_event(event, view_state),
handle_view_data_scroll(event, view_state)
)
}
}
Expand Down
10 changes: 5 additions & 5 deletions src/util.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,22 @@ use crate::{
#[macro_export]
macro_rules! select {
(default $default: expr, $first: expr) => {
if let Some(value) = $first() {
if let Some(value) = $first {
value
}
else {
$default()
$default
}
};
(default $default: expr, $first: expr, $($arg:expr),*) => {
if let Some(value) = $first() {
if let Some(value) = $first {
value
}
$(else if let Some(value) = $arg() {
$(else if let Some(value) = $arg {
value
})*
else {
$default()
$default
}
};
}
Expand Down

0 comments on commit ea756cf

Please sign in to comment.