Replace `map().unwrap_or()` with `map_or()`

Use a `map_or` instead of a `map().unwrap_or()` chain.
This commit is contained in:
Chris Copeland 2022-07-20 01:24:27 -07:00 committed by GitHub
parent 2a676dfad8
commit 48454c0047
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 15 additions and 14 deletions

View File

@ -412,7 +412,7 @@ fn hyperlink_at<T>(term: &Term<T>, point: Point) -> Option<(Hyperlink, Match)> {
// the hyperlink we've found at original `point`.
let line_contains_hyperlink = grid[next_line]
.into_iter()
.any(|cell| cell.hyperlink().map(|h| h == hyperlink).unwrap_or(false));
.any(|cell| cell.hyperlink().map_or(false, |h| h == hyperlink));
// There's no hyperlink on the next line, break.
if !line_contains_hyperlink {
@ -428,7 +428,7 @@ fn hyperlink_at<T>(term: &Term<T>, point: Point) -> Option<(Hyperlink, Match)> {
let line_contains_hyperlink = grid[next_line]
.into_iter()
.any(|cell| cell.hyperlink().map(|h| h == hyperlink).unwrap_or(false));
.any(|cell| cell.hyperlink().map_or(false, |h| h == hyperlink));
if !line_contains_hyperlink {
break;

View File

@ -403,7 +403,7 @@ impl Display {
// Guess scale_factor based on first monitor. On Wayland the initial frame always renders at
// a scale factor of 1.
let estimated_scale_factor = if cfg!(any(target_os = "macos", windows)) || is_x11 {
event_loop.available_monitors().next().map(|m| m.scale_factor()).unwrap_or(1.)
event_loop.available_monitors().next().map_or(1., |m| m.scale_factor())
} else {
1.
};
@ -628,7 +628,7 @@ impl Display {
// Update number of column/lines in the viewport.
let message_bar_lines =
message_buffer.message().map(|m| m.text(&self.size_info).len()).unwrap_or(0);
message_buffer.message().map_or(0, |m| m.text(&self.size_info).len());
let search_lines = if search_active { 1 } else { 0 };
self.size_info.reserve_lines(message_bar_lines + search_lines);
@ -997,7 +997,7 @@ impl Display {
if highlighted_hint.is_some() {
// If mouse changed the line, we should update the hyperlink preview, since the
// highlighted hint could be disrupted by the old preview.
dirty = self.hint_mouse_point.map(|p| p.line != point.line).unwrap_or(false);
dirty = self.hint_mouse_point.map_or(false, |p| p.line != point.line);
self.hint_mouse_point = Some(point);
self.window.set_mouse_cursor(CursorIcon::Hand);
} else if self.highlighted_hint.is_some() {

View File

@ -254,7 +254,7 @@ impl<'a, N: Notify + 'a, T: EventListener> input::ActionContext<T> for ActionCon
}
fn selection_is_empty(&self) -> bool {
self.terminal.selection.as_ref().map(Selection::is_empty).unwrap_or(true)
self.terminal.selection.as_ref().map_or(true, Selection::is_empty)
}
fn clear_selection(&mut self) {
@ -546,7 +546,7 @@ impl<'a, N: Notify + 'a, T: EventListener> input::ActionContext<T> for ActionCon
fn search_pop_word(&mut self) {
if let Some(regex) = self.search_state.regex_mut() {
*regex = regex.trim_end().to_owned();
regex.truncate(regex.rfind(' ').map(|i| i + 1).unwrap_or(0));
regex.truncate(regex.rfind(' ').map_or(0, |i| i + 1));
self.update_search();
}
}

View File

@ -717,13 +717,13 @@ impl<T: EventListener, A: ActionContext<T>> Processor<T, A> {
{
let size = self.ctx.size_info();
let current_lines = self.ctx.message().map(|m| m.text(&size).len()).unwrap_or(0);
let current_lines = self.ctx.message().map_or(0, |m| m.text(&size).len());
self.ctx.clear_selection();
self.ctx.pop_message();
// Reset cursor when message bar height changed or all messages are gone.
let new_lines = self.ctx.message().map(|m| m.text(&size).len()).unwrap_or(0);
let new_lines = self.ctx.message().map_or(0, |m| m.text(&size).len());
let new_icon = match current_lines.cmp(&new_lines) {
Ordering::Less => CursorIcon::Default,

View File

@ -90,7 +90,7 @@ impl<'a> StrShortener<'a> {
}
// Consume the iterator to count the number of characters in it.
let num_chars = iter.last().map(|(idx, _)| idx + 1).unwrap_or(offset);
let num_chars = iter.last().map_or(offset, |(idx, _)| idx + 1);
let skip_chars = num_chars - offset;
let text_action = if num_chars <= max_width || shortener.is_none() {

View File

@ -1155,8 +1155,9 @@ where
let mut params_iter = params.iter();
let handler = &mut self.handler;
let mut next_param_or = |default: u16| {
params_iter.next().map(|param| param[0]).filter(|&param| param != 0).unwrap_or(default)
let mut next_param_or = |default: u16| match params_iter.next() {
Some(&[param, ..]) if param != 0 => param,
_ => default,
};
match (action, intermediates) {

View File

@ -76,7 +76,7 @@ impl<T: Clone + Default> Row<T> {
// Split off cells for a new row.
let mut new_row = self.inner.split_off(columns);
let index = new_row.iter().rposition(|c| !c.is_empty()).map(|i| i + 1).unwrap_or(0);
let index = new_row.iter().rposition(|c| !c.is_empty()).map_or(0, |i| i + 1);
new_row.truncate(index);
self.occ = min(self.occ, columns);

View File

@ -173,7 +173,7 @@ pub fn new(config: &PtyConfig, window_size: WindowSize, window_id: Option<usize>
// Set $SHELL environment variable on macOS, since login does not do it for us.
#[cfg(target_os = "macos")]
builder.env("SHELL", config.shell.as_ref().map(|sh| sh.program()).unwrap_or(pw.shell));
builder.env("SHELL", config.shell.as_ref().map_or(pw.shell, Program::program));
if let Some(window_id) = window_id {
builder.env("WINDOWID", format!("{}", window_id));