-fn rewrite_repeats(expr: &ast::Expr,
- index: &ast::Expr,
- context: &RewriteContext,
- width: usize,
- offset: Indent)
- -> Option<String> {
- let max_width = try_opt!(width.checked_sub("[; ]".len()));
-
- binary_search(1,
- max_width,
- |expr_budget| {
- let expr_str = match expr.rewrite(context, expr_budget, offset + "[".len()) {
- Some(result) => result,
- None => return Err(Ordering::Greater),
- };
-
- let last_line_width = last_line_width(&expr_str);
- let index_budget = match max_width.checked_sub(last_line_width) {
- Some(b) => b,
- None => return Err(Ordering::Less),
- };
- let index_indent = offset + last_line_width + "[; ".len();
-
- let index_str = match index.rewrite(context, index_budget, index_indent) {
- Some(result) => result,
- None => return Err(Ordering::Less),
- };
-
- Ok(format!("[{}; {}]", expr_str, index_str))
- })
-}
-
-fn rewrite_index(expr: &ast::Expr,
- index: &ast::Expr,
- context: &RewriteContext,
- width: usize,
- offset: Indent)
- -> Option<String> {
- let max_width = try_opt!(width.checked_sub("[]".len()));
-
- binary_search(1,
- max_width,
- |expr_budget| {
- let expr_str = match expr.rewrite(context, expr_budget, offset) {
- Some(result) => result,
- None => return Err(Ordering::Greater),
- };
-
- let last_line_width = last_line_width(&expr_str);
- let index_budget = match max_width.checked_sub(last_line_width) {
- Some(b) => b,
- None => return Err(Ordering::Less),
- };
- let index_indent = offset + last_line_width + "[".len();
-
- let index_str = match index.rewrite(context, index_budget, index_indent) {
- Some(result) => result,
- None => return Err(Ordering::Less),
- };
-
- Ok(format!("{}[{}]", expr_str, index_str))
- })
-}
-
-fn rewrite_cast(expr: &ast::Expr,
- ty: &ast::Ty,
- context: &RewriteContext,
- width: usize,
- offset: Indent)
- -> Option<String> {
- let max_width = try_opt!(width.checked_sub(" as ".len()));