refactor: remove some unnecessary clones
This commit is contained in:
parent
2ae63f0018
commit
35f4c55bf4
@ -70,8 +70,8 @@ use crate::rewrite::{Rewrite, RewriteContext};
|
||||
use crate::shape::Shape;
|
||||
use crate::source_map::SpanUtils;
|
||||
use crate::utils::{
|
||||
self, first_line_width, last_line_extendable, last_line_width, mk_sp, rewrite_ident,
|
||||
trimmed_last_line_width, wrap_str,
|
||||
self, filtered_str_fits, first_line_width, last_line_extendable, last_line_width, mk_sp,
|
||||
rewrite_ident, trimmed_last_line_width, wrap_str,
|
||||
};
|
||||
|
||||
pub(crate) fn rewrite_chain(
|
||||
@ -810,15 +810,14 @@ impl<'a> ChainFormatter for ChainFormatterVisual<'a> {
|
||||
.visual_indent(self.offset)
|
||||
.sub_width(self.offset)?;
|
||||
let rewrite = item.rewrite(context, child_shape)?;
|
||||
match wrap_str(rewrite, context.config.max_width(), shape) {
|
||||
Some(rewrite) => root_rewrite.push_str(&rewrite),
|
||||
None => {
|
||||
// We couldn't fit in at the visual indent, try the last
|
||||
// indent.
|
||||
let rewrite = item.rewrite(context, parent_shape)?;
|
||||
root_rewrite.push_str(&rewrite);
|
||||
self.offset = 0;
|
||||
}
|
||||
if filtered_str_fits(&rewrite, context.config.max_width(), shape) {
|
||||
root_rewrite.push_str(&rewrite);
|
||||
} else {
|
||||
// We couldn't fit in at the visual indent, try the last
|
||||
// indent.
|
||||
let rewrite = item.rewrite(context, parent_shape)?;
|
||||
root_rewrite.push_str(&rewrite);
|
||||
self.offset = 0;
|
||||
}
|
||||
|
||||
self.shared.children = &self.shared.children[1..];
|
||||
|
@ -29,9 +29,9 @@ use crate::spanned::Spanned;
|
||||
use crate::string::{rewrite_string, StringFormat};
|
||||
use crate::types::{rewrite_path, PathContext};
|
||||
use crate::utils::{
|
||||
colon_spaces, contains_skip, count_newlines, first_line_ends_with, inner_attributes,
|
||||
last_line_extendable, last_line_width, mk_sp, outer_attributes, semicolon_for_expr,
|
||||
unicode_str_width, wrap_str,
|
||||
colon_spaces, contains_skip, count_newlines, filtered_str_fits, first_line_ends_with,
|
||||
inner_attributes, last_line_extendable, last_line_width, mk_sp, outer_attributes,
|
||||
semicolon_for_expr, unicode_str_width, wrap_str,
|
||||
};
|
||||
use crate::vertical::rewrite_with_alignment;
|
||||
use crate::visitor::FmtVisitor;
|
||||
@ -2037,8 +2037,7 @@ fn choose_rhs<R: Rewrite>(
|
||||
|
||||
match (orig_rhs, new_rhs) {
|
||||
(Some(ref orig_rhs), Some(ref new_rhs))
|
||||
if wrap_str(new_rhs.clone(), context.config.max_width(), new_shape)
|
||||
.is_none() =>
|
||||
if !filtered_str_fits(&new_rhs, context.config.max_width(), new_shape) =>
|
||||
{
|
||||
Some(format!("{}{}", before_space_str, orig_rhs))
|
||||
}
|
||||
|
@ -35,8 +35,8 @@ use crate::shape::{Indent, Shape};
|
||||
use crate::source_map::SpanUtils;
|
||||
use crate::spanned::Spanned;
|
||||
use crate::utils::{
|
||||
format_visibility, indent_next_line, is_empty_line, mk_sp, remove_trailing_white_spaces,
|
||||
rewrite_ident, trim_left_preserve_layout, wrap_str, NodeIdExt,
|
||||
filtered_str_fits, format_visibility, indent_next_line, is_empty_line, mk_sp,
|
||||
remove_trailing_white_spaces, rewrite_ident, trim_left_preserve_layout, NodeIdExt,
|
||||
};
|
||||
use crate::visitor::FmtVisitor;
|
||||
|
||||
@ -1241,15 +1241,14 @@ impl MacroBranch {
|
||||
}
|
||||
}
|
||||
};
|
||||
let new_body = wrap_str(
|
||||
new_body_snippet.snippet.to_string(),
|
||||
config.max_width(),
|
||||
shape,
|
||||
)?;
|
||||
|
||||
if !filtered_str_fits(&new_body_snippet.snippet, config.max_width(), shape) {
|
||||
return None;
|
||||
}
|
||||
|
||||
// Indent the body since it is in a block.
|
||||
let indent_str = body_indent.to_string(&config);
|
||||
let mut new_body = LineClasses::new(new_body.trim_end())
|
||||
let mut new_body = LineClasses::new(new_body_snippet.snippet.trim_end())
|
||||
.enumerate()
|
||||
.fold(
|
||||
(String::new(), true),
|
||||
|
@ -384,14 +384,15 @@ macro_rules! skip_out_of_file_lines_range_visitor {
|
||||
// Wraps String in an Option. Returns Some when the string adheres to the
|
||||
// Rewrite constraints defined for the Rewrite trait and None otherwise.
|
||||
pub(crate) fn wrap_str(s: String, max_width: usize, shape: Shape) -> Option<String> {
|
||||
if is_valid_str(&filter_normal_code(&s), max_width, shape) {
|
||||
if filtered_str_fits(&s, max_width, shape) {
|
||||
Some(s)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
fn is_valid_str(snippet: &str, max_width: usize, shape: Shape) -> bool {
|
||||
pub(crate) fn filtered_str_fits(snippet: &str, max_width: usize, shape: Shape) -> bool {
|
||||
let snippet = &filter_normal_code(snippet);
|
||||
if !snippet.is_empty() {
|
||||
// First line must fits with `shape.width`.
|
||||
if first_line_width(snippet) > shape.width {
|
||||
|
Loading…
x
Reference in New Issue
Block a user