3 Rustfmt is designed to be very configurable. You can create a TOML file called `rustfmt.toml` or `.rustfmt.toml`, place it in the project or any other parent directory and it will apply the options in that file.
5 A possible content of `rustfmt.toml` or `.rustfmt.toml` might look like this:
10 reorder_imported_names = true
13 # Configuration Options
15 Below you find a detailed visual guide on all the supported configuration options of rustfmt:
17 ## `array_horizontal_layout_threshold`
19 How many elements array must have before rustfmt uses horizontal layout.
20 Use this option to prevent a huge array from being vertically formatted.
22 - **Default value**: `0`
23 - **Possible values**: any positive integer
25 **Note:** A value of `0` results in [`array_layout`](#array_layout) being applied regardless of a line's width.
30 // Each element will be placed on its own line.
45 // Each element will be placed on the same line as much as possible.
46 let a = vec![0, 1, 2, 3, 4, ...
54 - **Default value**: `"Block"`
55 - **Possible values**: `"Block"`, `"Visual"`
74 let lorem = vec!["ipsum",
85 Maximum width of an array literal before falling back to vertical formatting
87 - **Default value**: `60`
88 - **Possible values**: any positive integer
90 **Note:** A value of `0` results in [`array_layout`](#array_layout) being applied regardless of a line's width.
92 #### Lines shorter than `array_width`:
95 vec!["ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit"];
98 #### Lines longer than `array_width`:
99 See [`array_layout`](#array_layout).
105 - **Default value**: `"Block"`
106 - **Possible values**: `"Block"`, `"Visual"`
123 let lorem = ipsum.dolor()
131 See also [`chain_one_line_max`](#chain_one_line_max).
133 ## `chain_one_line_max`
135 Maximum length of a chain to fit on a single line
137 - **Default value**: `60`
138 - **Possible values**: any positive integer
140 #### Lines shorter than `chain_one_line_max`:
142 let lorem = ipsum.dolor().sit().amet().consectetur().adipiscing().elit();
145 #### Lines longer than `chain_one_line_max`:
146 See [`chain_indent`](#chain_indent).
148 ## `chain_split_single_child`
150 Split a chain with a single child if its length exceeds [`chain_one_line_max`](#chain_one_line_max).
152 - **Default value**: `false`
153 - **Possible values**: `false`, `true`
158 let files = fs::read_dir("tests/coverage/source").expect("Couldn't read source dir");
164 let files = fs::read_dir("tests/coverage/source")
165 .expect("Couldn't read source dir");
168 See also [`chain_one_line_max`](#chain_one_line_max).
170 ## `closure_block_indent_threshold`
172 How many lines a closure must have before it is block indented. -1 means never use block indent.
174 - **Default value**: `7`
175 - **Possible values**: `-1`, or any positive integer
177 #### Closures shorter than `closure_block_indent_threshold`:
188 #### Closures longer than `closure_block_indent_threshold`:
196 println!("consectetur");
197 println!("adipiscing");
202 ## `combine_control_expr`
204 Combine control expressions with function calls.
206 - **Default value**: `true`
207 - **Possible values**: `true`, `false`
221 foo!(if let Some(..) = x {
234 foo!(while let Some(..) = x {
260 Maximum length of comments. No effect unless`wrap_comments = true`.
262 - **Default value**: `80`
263 - **Possible values**: any positive integer
265 **Note:** A value of `0` results in [`wrap_comments`](#wrap_comments) being applied regardless of a line's width.
267 #### Comments shorter than `comment_width`:
269 // Lorem ipsum dolor sit amet, consectetur adipiscing elit.
272 #### Comments longer than `comment_width`:
274 // Lorem ipsum dolor sit amet,
275 // consectetur adipiscing elit.
278 See also [`wrap_comments`](#wrap_comments).
280 ## `condense_wildcard_suffixes`
282 Replace strings of _ wildcards by a single .. in tuple patterns
284 - **Default value**: `false`
285 - **Possible values**: `true`, `false`
290 let (lorem, ipsum, _, _) = (1, 2, 3, 4);
296 let (lorem, ipsum, ..) = (1, 2, 3, 4);
301 Indent style for control flow statements
303 - **Default value**: `"Rfc"`
304 - **Possible values**: `"Rfc"`, `"Legacy"`
327 See also: [`control_brace_style`](#control_brace_style).
329 ## `control_brace_style`
331 Brace style for control flow constructs
333 - **Default value**: `"AlwaysSameLine"`
334 - **Possible values**: `"AlwaysNextLine"`, `"AlwaysSameLine"`, `"ClosingNextLine"`
336 #### `"AlwaysNextLine"`:
349 #### `"AlwaysSameLine"`:
359 #### `"ClosingNextLine"`:
370 ## `disable_all_formatting`
372 Don't reformat anything
374 - **Default value**: `false`
375 - **Possible values**: `true`, `false`
377 ## `error_on_line_overflow`
379 Error if unable to get all lines within max_width
381 - **Default value**: `true`
382 - **Possible values**: `true`, `false`
384 See also [`max_width`](#max_width).
388 Argument density in functions
390 - **Default value**: `"Tall"`
391 - **Possible values**: `"Compressed"`, `"CompressedIfEmpty"`, `"Tall"`, `"Vertical"`
397 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet);
399 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet) {
403 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet, consectetur: Consectetur,
404 adipiscing: Adipiscing, elit: Elit);
406 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet, consectetur: Consectetur,
407 adipiscing: Adipiscing, elit: Elit) {
413 #### `"CompressedIfEmpty"`:
417 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet);
419 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet) {
423 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet, consectetur: Consectetur,
424 adipiscing: Adipiscing, elit: Elit);
426 fn lorem(ipsum: Ipsum,
430 consectetur: onsectetur,
431 adipiscing: Adipiscing,
442 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet);
444 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet) {
448 fn lorem(ipsum: Ipsum,
452 consectetur: onsectetur,
453 adipiscing: Adipiscing,
456 fn lorem(ipsum: Ipsum,
460 consectetur: onsectetur,
461 adipiscing: Adipiscing,
472 fn lorem(ipsum: Ipsum,
477 fn lorem(ipsum: Ipsum,
484 fn lorem(ipsum: Ipsum,
488 consectetur: onsectetur,
489 adipiscing: Adipiscing,
492 fn lorem(ipsum: Ipsum,
496 consectetur: onsectetur,
497 adipiscing: Adipiscing,
506 Layout of function arguments and tuple structs
508 - **Default value**: `"Block"`
509 - **Possible values**: `"Block"`, `"Visual"`
516 fn lorem(ipsum: usize) {}
536 fn lorem(ipsum: usize) {}
538 fn lorem(ipsum: usize,
549 ## `fn_args_paren_newline`
551 If function argument parenthesis goes on a newline
553 - **Default value**: `false`
554 - **Possible values**: `true`, `false`
564 -> DolorSitAmetConsecteturAdipiscingElitLoremIpsumDolorSitAmetConsecteturAdipiscingElit {
577 -> DolorSitAmetConsecteturAdipiscingElitLoremIpsumDolorSitAmetConsecteturAdipiscingElit {
584 Brace style for functions
586 - **Default value**: `"SameLineWhere"`
587 - **Possible values**: `"AlwaysNextLine"`, `"PreferSameLine"`, `"SameLineWhere"`
589 #### `"AlwaysNextLine"`:
597 fn lorem(ipsum: usize)
602 fn lorem<T>(ipsum: T)
603 where T: Add + Sub + Mul + Div
609 #### `"PreferSameLine"`:
616 fn lorem(ipsum: usize) {
620 fn lorem<T>(ipsum: T)
621 where T: Add + Sub + Mul + Div {
626 #### `"SameLineWhere"`:
633 fn lorem(ipsum: usize) {
637 fn lorem<T>(ipsum: T)
638 where T: Add + Sub + Mul + Div
646 Indentation for function calls, etc.
648 - **Default value**: `"Block"`
649 - **Possible values**: `"Block"`, `"Visual"`
681 Maximum width of the args of a function call before falling back to vertical formatting
683 - **Default value**: `60`
684 - **Possible values**: any positive integer
686 **Note:** A value of `0` results in vertical formatting being applied regardless of a line's width.
688 #### Function call shorter than `fn_call_width`:
690 lorem("lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit");
693 #### Function call longer than `fn_call_width`:
695 See [`fn_call_style`](#fn_call_style).
697 ## `fn_empty_single_line`
699 Put empty-body functions on a single line
701 - **Default value**: `true`
702 - **Possible values**: `true`, `false`
717 See also [`control_brace_style`](#control_brace_style).
719 ## `fn_return_indent`
721 Location of return type in function declaration
723 - **Default value**: `"WithArgs"`
724 - **Possible values**: `"WithArgs"`, `"WithWhereClause"`
729 fn lorem(ipsum: Ipsum,
733 consectetur: Consectetur,
734 adipiscing: Adipiscing)
743 #### `"WithWhereClause"`:
746 fn lorem(ipsum: Ipsum,
750 consectetur: Consectetur,
751 adipiscing: Adipiscing)
762 Put single-expression functions on a single line
764 - **Default value**: `false`
765 - **Possible values**: `true`, `false`
770 fn lorem() -> usize {
774 fn lorem() -> usize {
783 fn lorem() -> usize { 42 }
785 fn lorem() -> usize {
791 See also [`control_brace_style`](#control_brace_style).
793 ## `force_explicit_abi`
795 Always print the abi for extern items
797 - **Default value**: `true`
798 - **Possible values**: `true`, `false`
800 **Note:** Non-"C" ABIs are always printed. If `false` then "C" is removed.
806 pub static lorem: c_int;
814 pub static lorem: c_int;
818 ## `force_format_strings`
820 Always format string literals
822 - **Default value**: `false`
823 - **Possible values**: `true`, `false`
825 See [`format_strings`](#format_strings).
827 See also [`max_width`](#max_width).
831 Format string literals where necessary
833 - **Default value**: `false`
834 - **Possible values**: `true`, `false`
839 let lorem = "ipsum dolor sit amet consectetur adipiscing elit lorem ipsum dolor sit";
846 "ipsum dolor sit amet consectetur \
847 adipiscing elit lorem ipsum dolor sit";
850 See also [`force_format_strings`](#force_format_strings), [`max_width`](#max_width).
854 Indentation of generics
856 - **Default value**: `"Block"`
857 - **Possible values**: `"Block"`, `"Visual"`
867 Adipiscing: Eq = usize,
868 Consectetur: Eq = usize,
874 adipiscing: Adipiscing,
875 consectetur: Consectetur,
885 fn lorem<Ipsum: Eq = usize,
889 Adipiscing: Eq = usize,
890 Consectetur: Eq = usize,
896 adipiscing: Adipiscing,
897 consectetur: Consectetur,
906 Use tab characters for indentation, spaces for alignment
908 - **Default value**: `false`
909 - **Possible values**: `true`, `false`
914 fn lorem() -> usize {
915 42 // spaces before 42
922 fn lorem() -> usize {
927 See also: [`tab_spaces`](#tab_spaces).
929 ## `impl_empty_single_line`
931 Put empty-body implementations on a single line
933 - **Default value**: `true`
934 - **Possible values**: `true`, `false`
949 See also [`item_brace_style`](#item_brace_style).
951 ## `indent_match_arms`
953 Indent match arms instead of keeping them at the same indentation level as the match keyword
955 - **Default value**: `true`
956 - **Possible values**: `true`, `false`
980 See also: [`match_block_trailing_comma`](#match_block_trailing_comma), [`wrap_match_arms`](#wrap_match_arms).
982 ## `item_brace_style`
984 Brace style for structs and enums
986 - **Default value**: `"SameLineWhere"`
987 - **Possible values**: `"AlwaysNextLine"`, `"PreferSameLine"`, `"SameLineWhere"`
989 #### `"AlwaysNextLine"`:
1004 #### `"PreferSameLine"`:
1017 #### `"SameLineWhere"`:
1031 ## `match_block_trailing_comma`
1033 Put a trailing comma after a block based match arm (non-block arms are not affected)
1035 - **Default value**: `false`
1036 - **Possible values**: `true`, `false`
1045 Lorem::Dolor => println!("dolor"),
1056 Lorem::Dolor => println!("dolor"),
1060 See also: [`indent_match_arms`](#indent_match_arms), [`trailing_comma`](#trailing_comma), [`wrap_match_arms`](#wrap_match_arms).
1064 Maximum width of each line
1066 - **Default value**: `100`
1067 - **Possible values**: any positive integer
1069 See also [`error_on_line_overflow`](#error_on_line_overflow).
1073 Unix or Windows line endings
1075 - **Default value**: `"Unix"`
1076 - **Possible values**: `"Native"`, `"Unix"`, `"Windows"`
1078 ## `normalize_comments`
1080 Convert /* */ comments to // comments where possible
1082 - **Default value**: `false`
1083 - **Possible values**: `true`, `false`
1089 fn dolor() -> usize {}
1092 fn adipiscing() -> usize {}
1099 fn dolor() -> usize {}
1102 fn adipiscing() -> usize {}
1105 ## `reorder_imported_names`
1107 Reorder lists of names in import statements alphabetically
1109 - **Default value**: `false`
1110 - **Possible values**: `true`, `false`
1115 use super::{lorem, ipsum, dolor, sit};
1121 use super::{dolor, ipsum, lorem, sit};
1124 See also [`reorder_imports`](#reorder_imports).
1126 ## `reorder_imports`
1128 Reorder import statements alphabetically
1130 - **Default value**: `false`
1131 - **Possible values**: `true`, `false`
1151 See also [`reorder_imported_names`](#reorder_imported_names), [`reorder_imports_in_group`](#reorder_imports_in_group).
1153 ## `reorder_imports_in_group`
1155 Reorder import statements in group
1157 - **Default value**: `false`
1158 - **Possible values**: `true`, `false`
1160 **Note:** This option takes effect only when [`reorder_imports`](#reorder_imports) is set to `true`.
1186 See also [`reorder_imports`](#reorder_imports).
1188 ## `single_line_if_else_max_width`
1190 Maximum line length for single line if-else expressions.
1192 - **Default value**: `50`
1193 - **Possible values**: any positive integer
1195 **Note:** A value of `0` results in if-else expressions being broken regardless of their line's width.
1197 #### Lines shorter than `single_line_if_else_max_width`:
1199 let lorem = if ipsum { dolor } else { sit };
1202 #### Lines longer than `single_line_if_else_max_width`:
1204 let lorem = if ipsum {
1211 See also: [`control_brace_style`](#control_brace_style).
1215 Don't reformat out of line modules
1217 - **Default value**: `false`
1218 - **Possible values**: `true`, `false`
1220 ## `space_after_bound_colon`
1222 Leave a space after the colon in a trait or lifetime bound
1224 - **Default value**: `true`
1225 - **Possible values**: `true`, `false`
1230 fn lorem<T:Eq>(t: T) {
1238 fn lorem<T: Eq>(t: T) {
1243 See also: [`space_before_bound`](#space_before_bound).
1245 ## `struct_field_align_threshold`
1247 The maximum diff of width between struct fields to be aligned with each other.
1249 - **Default value** : 0
1250 - **Possible values**: any positive integer
1272 ## `space_after_struct_lit_field_colon`
1274 Leave a space after the colon in a struct literal field
1276 - **Default value**: `true`
1277 - **Possible values**: `true`, `false`
1297 See also: [`space_before_struct_lit_field_colon`](#space_before_struct_lit_field_colon).
1299 ## `space_after_type_annotation_colon`
1301 Leave a space after the colon in a type annotation
1303 - **Default value**: `true`
1304 - **Possible values**: `true`, `false`
1309 fn lorem<T: Eq>(t:T) {
1310 let ipsum:Dolor = sit;
1317 fn lorem<T: Eq>(t: T) {
1318 let ipsum: Dolor = sit;
1322 See also: [`space_before_type_annotation`](#space_before_type_annotation).
1324 ## `space_before_bound`
1326 Leave a space before the colon in a trait or lifetime bound
1328 - **Default value**: `false`
1329 - **Possible values**: `true`, `false`
1334 fn lorem<T: Eq>(t: T) {
1335 let ipsum: Dolor = sit;
1342 fn lorem<T : Eq>(t: T) {
1343 let ipsum: Dolor = sit;
1347 See also: [`space_after_bound_colon`](#space_after_bound_colon).
1349 ## `space_before_struct_lit_field_colon`
1351 Leave a space before the colon in a struct literal field
1353 - **Default value**: `false`
1354 - **Possible values**: `true`, `false`
1374 See also: [`space_after_struct_lit_field_colon`](#space_after_struct_lit_field_colon).
1376 ## `space_before_type_annotation`
1378 Leave a space before the colon in a type annotation
1380 - **Default value**: `false`
1381 - **Possible values**: `true`, `false`
1386 fn lorem<T: Eq>(t: T) {
1387 let ipsum: Dolor = sit;
1394 fn lorem<T: Eq>(t : T) {
1395 let ipsum : Dolor = sit;
1399 See also: [`space_after_type_annotation_colon`](#space_after_type_annotation_colon).
1401 ## `spaces_around_ranges`
1403 Put spaces around the .. and ... range operators
1405 - **Default value**: `false`
1406 - **Possible values**: `true`, `false`
1417 let lorem = 0 .. 10;
1420 ## `spaces_within_angle_brackets`
1422 Put spaces within non-empty generic arguments
1424 - **Default value**: `false`
1425 - **Possible values**: `true`, `false`
1430 fn lorem<T: Eq>(t: T) {
1438 fn lorem< T: Eq >(t: T) {
1443 See also: [`spaces_within_parens`](#spaces_within_parens), [`spaces_within_square_brackets`](#spaces_within_square_brackets).
1445 ## `spaces_within_parens`
1447 Put spaces within non-empty parentheses
1449 - **Default value**: `false`
1450 - **Possible values**: `true`, `false`
1455 fn lorem<T: Eq>(t: T) {
1456 let lorem = (ipsum, dolor);
1463 fn lorem<T: Eq>( t: T ) {
1464 let lorem = ( ipsum, dolor );
1468 See also: [`spaces_within_angle_brackets`](#spaces_within_angle_brackets), [`spaces_within_square_brackets`](#spaces_within_square_brackets).
1470 ## `spaces_within_square_brackets`
1472 Put spaces within non-empty square brackets
1474 - **Default value**: `false`
1475 - **Possible values**: `true`, `false`
1480 let lorem: [usize; 2] = [ipsum, dolor];
1486 let lorem: [ usize; 2 ] = [ ipsum, dolor ];
1489 See also: [`spaces_within_parens`](#spaces_within_parens), [`spaces_within_angle_brackets`](#spaces_within_angle_brackets).
1491 ## `struct_lit_multiline_style`
1493 Multiline style on literal structs
1495 - **Default value**: `"PreferSingle"`
1496 - **Possible values**: `"ForceMulti"`, `"PreferSingle"`
1498 #### `"ForceMulti"`:
1507 #### `"PreferSingle"`:
1510 let lorem = Lorem { ipsum: dolor, sit: amet };
1513 See also: [`struct_lit_style`](#struct_lit_style), [`struct_lit_width`](#struct_lit_width).
1515 ## `struct_lit_style`
1517 Style of struct definition
1519 - **Default value**: `"Block"`
1520 - **Possible values**: `"Block"`, `"Visual"`
1534 let lorem = Lorem { ipsum: dolor,
1538 See also: [`struct_lit_multiline_style`](#struct_lit_multiline_style), [`struct_lit_style`](#struct_lit_style).
1540 ## `struct_lit_width`
1542 Maximum width in the body of a struct lit before falling back to vertical formatting
1544 - **Default value**: `18`
1545 - **Possible values**: any positive integer
1547 **Note:** A value of `0` results in vertical formatting being applied regardless of a line's width.
1549 #### Lines shorter than `struct_lit_width`:
1551 let lorem = Lorem { ipsum: dolor, sit: amet };
1554 #### Lines longer than `struct_lit_width`:
1555 See [`struct_lit_style`](#struct_lit_style).
1557 See also: [`struct_lit_multiline_style`](#struct_lit_multiline_style), [`struct_lit_style`](#struct_lit_style).
1559 ## `struct_variant_width`
1561 Maximum width in the body of a struct variant before falling back to vertical formatting
1563 - **Default value**: `35`
1564 - **Possible values**: any positive integer
1566 **Note:** A value of `0` results in vertical formatting being applied regardless of a line's width.
1568 #### Struct variants shorter than `struct_variant_width`:
1573 Sit { amet: Consectetur, adipiscing: Elit },
1577 #### Struct variants longer than `struct_variant_width`:
1591 Number of spaces per tab
1593 - **Default value**: `4`
1594 - **Possible values**: any positive integer
1600 let ipsum = dolor();
1602 "amet consectetur adipiscing elit."
1611 let ipsum = dolor();
1613 "amet consectetur adipiscing elit."
1618 See also: [`hard_tabs`](#hard_tabs).
1620 ## `take_source_hints`
1622 Retain some formatting characteristics from the source code
1624 - **Default value**: `false`
1625 - **Possible values**: `true`, `false`
1632 .dolor(|| { sit.amet().consectetur().adipiscing().elit(); });
1648 Note: This only applies if the call chain within the inner closure had already been formatted on separate lines before running rustfmt.
1652 How to handle trailing commas for lists
1654 - **Default value**: `"Vertical"`
1655 - **Possible values**: `"Always"`, `"Never"`, `"Vertical"`
1660 let Lorem { ipsum, dolor, sit, } = amet;
1674 let Lorem { ipsum, dolor, sit } = amet;
1688 let Lorem { ipsum, dolor, sit } = amet;
1699 See also: [`match_block_trailing_comma`](#match_block_trailing_comma).
1701 ## `type_punctuation_density`
1703 Determines if `+` or `=` are wrapped in spaces in the punctuation of types
1705 - **Default value**: `"Wide"`
1706 - **Possible values**: `"Compressed"`, `"Wide"`
1708 #### `"Compressed"`:
1711 fn lorem<Ipsum: Dolor+Sit=Amet>() {
1719 fn lorem<Ipsum: Dolor + Sit = Amet>() {
1724 ## `use_try_shorthand`
1726 Replace uses of the try! macro by the ? shorthand
1728 - **Default value**: `false`
1729 - **Possible values**: `true`, `false`
1734 let lorem = try!(ipsum.map(|dolor|dolor.sit()));
1740 let lorem = ipsum.map(|dolor| dolor.sit())?;
1745 Density of a where clause
1747 - **Default value**: `"CompressedIfEmpty"`
1748 - **Possible values**: `"Compressed"`, `"CompressedIfEmpty"`, `"Tall"`, `"Vertical"`
1750 #### `"Compressed"`:
1754 fn ipsum<Dolor>(dolor: Dolor) -> Sit where Dolor: Eq;
1756 fn ipsum<Dolor>(dolor: Dolor) -> Sit where Dolor: Eq {
1762 #### `"CompressedIfEmpty"`:
1766 fn ipsum<Dolor>(dolor: Dolor) -> Sit where Dolor: Eq;
1768 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1780 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1783 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1791 **Note:** `where_density = "Tall"` currently produces the same output as `where_density = "Vertical"`.
1797 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1800 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1808 **Note:** `where_density = "Vertical"` currently produces the same output as `where_density = "Tall"`.
1810 See also: [`where_layout`](#where_layout), [`where_pred_indent`](#where_pred_indent), [`where_style`](#where_style).
1814 Element layout inside a where clause
1816 - **Default value**: `"Vertical"`
1817 - **Possible values**: `"Horizontal"`, `"HorizontalVertical"`, `"Mixed"`, `"Vertical"`
1819 #### `"Horizontal"`:
1822 fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
1823 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur
1828 fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
1829 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur, Sit: SitAmetConsecteturAdipiscing, Amet: AmetConsecteturAdipiscingElit
1835 #### `"HorizontalVertical"`:
1838 fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
1839 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur
1844 fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
1845 where Ipsum: IpsumDolorSitAmet,
1846 Dolor: DolorSitAmetConsectetur,
1847 Sit: SitAmetConsecteturAdipiscing,
1848 Amet: AmetConsecteturAdipiscingElit
1857 fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
1858 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur
1863 fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
1864 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur,
1865 Sit: SitAmetConsecteturAdipiscing, Amet: AmetConsecteturAdipiscingElit
1874 fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
1875 where Ipsum: IpsumDolorSitAmet,
1876 Dolor: DolorSitAmetConsectetur
1881 fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
1882 where Ipsum: IpsumDolorSitAmet,
1883 Dolor: DolorSitAmetConsectetur,
1884 Sit: SitAmetConsecteturAdipiscing,
1885 Amet: AmetConsecteturAdipiscingElit
1891 See also: [`where_density`](#where_density), [`where_pred_indent`](#where_pred_indent), [`where_style`](#where_style).
1893 ## `where_pred_indent`
1895 Indentation style of a where predicate
1897 - **Default value**: `"Visual"`
1898 - **Possible values**: `"Block"`, `"Visual"`
1903 fn lorem<Ipsum, Dolor, Sit, Amet>() -> T
1916 fn lorem<Ipsum, Dolor, Sit, Amet>() -> T
1926 See also: [`where_density`](#where_density), [`where_layout`](#where_layout), [`where_style`](#where_style).
1930 Overall strategy for where clauses
1932 - **Default value**: `"Rfc"`
1933 - **Possible values**: `"Rfc"`, `"Legacy"`
1938 fn lorem<Ipsum, Dolor, Sit, Amet>() -> T
1952 fn lorem<Ipsum, Dolor, Sit, Amet>() -> T
1962 See also: [`where_density`](#where_density), [`where_layout`](#where_layout), [`where_pred_indent`](#where_pred_indent).
1966 Break comments to fit on the line
1968 - **Default value**: `false`
1969 - **Possible values**: `true`, `false`
1974 // Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
1980 // Lorem ipsum dolor sit amet, consectetur adipiscing elit,
1981 // sed do eiusmod tempor incididunt ut labore et dolore
1982 // magna aliqua. Ut enim ad minim veniam, quis nostrud
1983 // exercitation ullamco laboris nisi ut aliquip ex ea
1984 // commodo consequat.
1987 ## `wrap_match_arms`
1989 Wrap the body of arms in blocks when it does not fit on the same line with the pattern of arms
1991 - **Default value**: `true`
1992 - **Possible values**: `true`, `false`
1999 foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo(x),
2000 false => println!("{}", sit),
2009 foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo(x)
2011 false => println!("{}", sit),
2015 See also: [`indent_match_arms`](#indent_match_arms), [`match_block_trailing_comma`](#match_block_trailing_comma).
2019 What Write Mode to use when none is supplied: Replace, Overwrite, Display, Diff, Coverage
2021 - **Default value**: `"Replace"`
2022 - **Possible values**: `"Checkstyle"`, `"Coverage"`, `"Diff"`, `"Display"`, `"Overwrite"`, `"Plain"`, `"Replace"`