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:
21 - **Default value**: `"Block"`
22 - **Possible values**: `"Block"`, `"Visual"`
41 let lorem = vec!["ipsum",
52 Maximum width of an array literal before falling back to vertical formatting
54 - **Default value**: `60`
55 - **Possible values**: any positive integer
57 **Note:** A value of `0` results in [`array_layout`](#array_layout) being applied regardless of a line's width.
59 #### Lines shorter than `array_width`:
62 vec!["ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit"];
65 #### Lines longer than `array_width`:
66 See [`array_layout`](#array_layout).
72 - **Default value**: `"Block"`
73 - **Possible values**: `"Block"`, `"Visual"`
90 let lorem = ipsum.dolor()
98 See also [`chain_one_line_max`](#chain_one_line_max).
100 ## `chain_one_line_max`
102 Maximum length of a chain to fit on a single line
104 - **Default value**: `60`
105 - **Possible values**: any positive integer
107 #### Lines shorter than `chain_one_line_max`:
109 let lorem = ipsum.dolor().sit().amet().consectetur().adipiscing().elit();
112 #### Lines longer than `chain_one_line_max`:
113 See [`chain_indent`](#chain_indent).
115 ## `chain_split_single_child`
117 Split a chain with a single child if its length exceeds [`chain_one_line_max`](#chain_one_line_max).
119 - **Default value**: `false`
120 - **Possible values**: `false`, `true`
125 let files = fs::read_dir("tests/coverage/source").expect("Couldn't read source dir");
131 let files = fs::read_dir("tests/coverage/source")
132 .expect("Couldn't read source dir");
135 See also [`chain_one_line_max`](#chain_one_line_max).
137 ## `closure_block_indent_threshold`
139 How many lines a closure must have before it is block indented. -1 means never use block indent.
141 - **Default value**: `7`
142 - **Possible values**: `-1`, or any positive integer
144 #### Closures shorter than `closure_block_indent_threshold`:
155 #### Closures longer than `closure_block_indent_threshold`:
163 println!("consectetur");
164 println!("adipiscing");
169 ## `combine_control_expr`
171 Combine control expressions with function calls.
173 - **Default value**: `true`
174 - **Possible values**: `true`, `false`
188 foo!(if let Some(..) = x {
201 foo!(while let Some(..) = x {
227 Maximum length of comments. No effect unless`wrap_comments = true`.
229 - **Default value**: `80`
230 - **Possible values**: any positive integer
232 **Note:** A value of `0` results in [`wrap_comments`](#wrap_comments) being applied regardless of a line's width.
234 #### Comments shorter than `comment_width`:
236 // Lorem ipsum dolor sit amet, consectetur adipiscing elit.
239 #### Comments longer than `comment_width`:
241 // Lorem ipsum dolor sit amet,
242 // consectetur adipiscing elit.
245 See also [`wrap_comments`](#wrap_comments).
247 ## `condense_wildcard_suffixes`
249 Replace strings of _ wildcards by a single .. in tuple patterns
251 - **Default value**: `false`
252 - **Possible values**: `true`, `false`
257 let (lorem, ipsum, _, _) = (1, 2, 3, 4);
263 let (lorem, ipsum, ..) = (1, 2, 3, 4);
268 Indent style for control flow statements
270 - **Default value**: `"Rfc"`
271 - **Possible values**: `"Rfc"`, `"Legacy"`
276 // Conditional expression containing line-break
289 // Conditional expression containing line-break
298 See also: [`control_brace_style`](#control_brace_style).
300 ## `control_brace_style`
302 Brace style for control flow constructs
304 - **Default value**: `"AlwaysSameLine"`
305 - **Possible values**: `"AlwaysNextLine"`, `"AlwaysSameLine"`, `"ClosingNextLine"`
307 #### `"AlwaysNextLine"`:
320 #### `"AlwaysSameLine"`:
330 #### `"ClosingNextLine"`:
341 ## `disable_all_formatting`
343 Don't reformat anything
345 - **Default value**: `false`
346 - **Possible values**: `true`, `false`
348 ## `error_on_line_overflow`
350 Error if unable to get all lines within max_width
352 - **Default value**: `true`
353 - **Possible values**: `true`, `false`
355 See also [`max_width`](#max_width).
359 Argument density in functions
361 - **Default value**: `"Tall"`
362 - **Possible values**: `"Compressed"`, `"CompressedIfEmpty"`, `"Tall"`, `"Vertical"`
368 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet);
370 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet) {
374 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet, consectetur: Consectetur,
375 adipiscing: Adipiscing, elit: Elit);
377 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet, consectetur: Consectetur,
378 adipiscing: Adipiscing, elit: Elit) {
384 #### `"CompressedIfEmpty"`:
388 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet);
390 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet) {
394 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet, consectetur: Consectetur,
395 adipiscing: Adipiscing, elit: Elit);
397 fn lorem(ipsum: Ipsum,
401 consectetur: onsectetur,
402 adipiscing: Adipiscing,
413 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet);
415 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet) {
419 fn lorem(ipsum: Ipsum,
423 consectetur: onsectetur,
424 adipiscing: Adipiscing,
427 fn lorem(ipsum: Ipsum,
431 consectetur: onsectetur,
432 adipiscing: Adipiscing,
443 fn lorem(ipsum: Ipsum,
448 fn lorem(ipsum: Ipsum,
455 fn lorem(ipsum: Ipsum,
459 consectetur: onsectetur,
460 adipiscing: Adipiscing,
463 fn lorem(ipsum: Ipsum,
467 consectetur: onsectetur,
468 adipiscing: Adipiscing,
477 Layout of function arguments and tuple structs
479 - **Default value**: `"Block"`
480 - **Possible values**: `"Block"`, `"Visual"`
487 fn lorem(ipsum: usize) {}
507 fn lorem(ipsum: usize) {}
509 fn lorem(ipsum: usize,
520 ## `fn_args_paren_newline`
522 If function argument parenthesis goes on a newline
524 - **Default value**: `false`
525 - **Possible values**: `true`, `false`
535 -> DolorSitAmetConsecteturAdipiscingElitLoremIpsumDolorSitAmetConsecteturAdipiscingElit {
548 -> DolorSitAmetConsecteturAdipiscingElitLoremIpsumDolorSitAmetConsecteturAdipiscingElit {
555 Brace style for functions
557 - **Default value**: `"SameLineWhere"`
558 - **Possible values**: `"AlwaysNextLine"`, `"PreferSameLine"`, `"SameLineWhere"`
560 #### `"AlwaysNextLine"`:
568 fn lorem(ipsum: usize)
573 fn lorem<T>(ipsum: T)
574 where T: Add + Sub + Mul + Div
580 #### `"PreferSameLine"`:
587 fn lorem(ipsum: usize) {
591 fn lorem<T>(ipsum: T)
592 where T: Add + Sub + Mul + Div {
597 #### `"SameLineWhere"`:
604 fn lorem(ipsum: usize) {
608 fn lorem<T>(ipsum: T)
609 where T: Add + Sub + Mul + Div
617 Indentation for function calls, etc.
619 - **Default value**: `"Block"`
620 - **Possible values**: `"Block"`, `"Visual"`
652 Maximum width of the args of a function call before falling back to vertical formatting
654 - **Default value**: `60`
655 - **Possible values**: any positive integer
657 **Note:** A value of `0` results in vertical formatting being applied regardless of a line's width.
659 #### Function call shorter than `fn_call_width`:
661 lorem("lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit");
664 #### Function call longer than `fn_call_width`:
666 See [`fn_call_style`](#fn_call_style).
668 ## `fn_empty_single_line`
670 Put empty-body functions on a single line
672 - **Default value**: `true`
673 - **Possible values**: `true`, `false`
688 See also [`control_brace_style`](#control_brace_style).
690 ## `fn_return_indent`
692 Location of return type in function declaration
694 - **Default value**: `"WithArgs"`
695 - **Possible values**: `"WithArgs"`, `"WithWhereClause"`
700 fn lorem(ipsum: Ipsum,
704 consectetur: Consectetur,
705 adipiscing: Adipiscing)
714 #### `"WithWhereClause"`:
717 fn lorem(ipsum: Ipsum,
721 consectetur: Consectetur,
722 adipiscing: Adipiscing)
733 Put single-expression functions on a single line
735 - **Default value**: `false`
736 - **Possible values**: `true`, `false`
741 fn lorem() -> usize {
745 fn lorem() -> usize {
754 fn lorem() -> usize { 42 }
756 fn lorem() -> usize {
762 See also [`control_brace_style`](#control_brace_style).
764 ## `force_explicit_abi`
766 Always print the abi for extern items
768 - **Default value**: `true`
769 - **Possible values**: `true`, `false`
771 **Note:** Non-"C" ABIs are always printed. If `false` then "C" is removed.
777 pub static lorem: c_int;
785 pub static lorem: c_int;
789 ## `force_format_strings`
791 Always format string literals
793 - **Default value**: `false`
794 - **Possible values**: `true`, `false`
796 See [`format_strings`](#format_strings).
798 See also [`max_width`](#max_width).
802 Format string literals where necessary
804 - **Default value**: `false`
805 - **Possible values**: `true`, `false`
810 let lorem = "ipsum dolor sit amet consectetur adipiscing elit lorem ipsum dolor sit";
817 "ipsum dolor sit amet consectetur \
818 adipiscing elit lorem ipsum dolor sit";
821 See also [`force_format_strings`](#force_format_strings), [`max_width`](#max_width).
825 Indentation of generics
827 - **Default value**: `"Block"`
828 - **Possible values**: `"Block"`, `"Visual"`
838 Adipiscing: Eq = usize,
839 Consectetur: Eq = usize,
845 adipiscing: Adipiscing,
846 consectetur: Consectetur,
856 fn lorem<Ipsum: Eq = usize,
860 Adipiscing: Eq = usize,
861 Consectetur: Eq = usize,
867 adipiscing: Adipiscing,
868 consectetur: Consectetur,
877 Use tab characters for indentation, spaces for alignment
879 - **Default value**: `false`
880 - **Possible values**: `true`, `false`
885 fn lorem() -> usize {
886 42 // spaces before 42
893 fn lorem() -> usize {
898 See also: [`tab_spaces`](#tab_spaces).
900 ## `impl_empty_single_line`
902 Put empty-body implementations on a single line
904 - **Default value**: `true`
905 - **Possible values**: `true`, `false`
920 See also [`item_brace_style`](#item_brace_style).
922 ## `indent_match_arms`
924 Indent match arms instead of keeping them at the same indentation level as the match keyword
926 - **Default value**: `true`
927 - **Possible values**: `true`, `false`
951 See also: [`match_block_trailing_comma`](#match_block_trailing_comma), [`wrap_match_arms`](#wrap_match_arms).
953 ## `item_brace_style`
955 Brace style for structs and enums
957 - **Default value**: `"SameLineWhere"`
958 - **Possible values**: `"AlwaysNextLine"`, `"PreferSameLine"`, `"SameLineWhere"`
960 #### `"AlwaysNextLine"`:
975 #### `"PreferSameLine"`:
988 #### `"SameLineWhere"`:
1002 ## `match_block_trailing_comma`
1004 Put a trailing comma after a block based match arm (non-block arms are not affected)
1006 - **Default value**: `false`
1007 - **Possible values**: `true`, `false`
1016 Lorem::Dolor => println!("dolor"),
1027 Lorem::Dolor => println!("dolor"),
1031 See also: [`indent_match_arms`](#indent_match_arms), [`trailing_comma`](#trailing_comma), [`wrap_match_arms`](#wrap_match_arms).
1035 Maximum width of each line
1037 - **Default value**: `100`
1038 - **Possible values**: any positive integer
1040 See also [`error_on_line_overflow`](#error_on_line_overflow).
1044 Unix or Windows line endings
1046 - **Default value**: `"Unix"`
1047 - **Possible values**: `"Native"`, `"Unix"`, `"Windows"`
1049 ## `normalize_comments`
1051 Convert /* */ comments to // comments where possible
1053 - **Default value**: `false`
1054 - **Possible values**: `true`, `false`
1060 fn dolor() -> usize {}
1063 fn adipiscing() -> usize {}
1070 fn dolor() -> usize {}
1073 fn adipiscing() -> usize {}
1076 ## `reorder_imported_names`
1078 Reorder lists of names in import statements alphabetically
1080 - **Default value**: `false`
1081 - **Possible values**: `true`, `false`
1086 use super::{lorem, ipsum, dolor, sit};
1092 use super::{dolor, ipsum, lorem, sit};
1095 See also [`reorder_imports`](#reorder_imports).
1097 ## `reorder_imports`
1099 Reorder import statements alphabetically
1101 - **Default value**: `false`
1102 - **Possible values**: `true`, `false`
1122 See also [`reorder_imported_names`](#reorder_imported_names), [`reorder_imports_in_group`](#reorder_imports_in_group).
1124 ## `reorder_imports_in_group`
1126 Reorder import statements in group
1128 - **Default value**: `false`
1129 - **Possible values**: `true`, `false`
1131 **Note:** This option takes effect only when [`reorder_imports`](#reorder_imports) is set to `true`.
1157 See also [`reorder_imports`](#reorder_imports).
1159 ## `single_line_if_else_max_width`
1161 Maximum line length for single line if-else expressions.
1163 - **Default value**: `50`
1164 - **Possible values**: any positive integer
1166 **Note:** A value of `0` results in if-else expressions being broken regardless of their line's width.
1168 #### Lines shorter than `single_line_if_else_max_width`:
1170 let lorem = if ipsum { dolor } else { sit };
1173 #### Lines longer than `single_line_if_else_max_width`:
1175 let lorem = if ipsum {
1182 See also: [`control_brace_style`](#control_brace_style).
1186 Don't reformat out of line modules
1188 - **Default value**: `false`
1189 - **Possible values**: `true`, `false`
1191 ## `space_after_bound_colon`
1193 Leave a space after the colon in a trait or lifetime bound
1195 - **Default value**: `true`
1196 - **Possible values**: `true`, `false`
1201 fn lorem<T:Eq>(t: T) {
1209 fn lorem<T: Eq>(t: T) {
1214 See also: [`space_before_bound`](#space_before_bound).
1216 ## `space_after_struct_lit_field_colon`
1218 Leave a space after the colon in a struct literal field
1220 - **Default value**: `true`
1221 - **Possible values**: `true`, `false`
1241 See also: [`space_before_struct_lit_field_colon`](#space_before_struct_lit_field_colon).
1243 ## `space_after_type_annotation_colon`
1245 Leave a space after the colon in a type annotation
1247 - **Default value**: `true`
1248 - **Possible values**: `true`, `false`
1253 fn lorem<T: Eq>(t:T) {
1254 let ipsum:Dolor = sit;
1261 fn lorem<T: Eq>(t: T) {
1262 let ipsum: Dolor = sit;
1266 See also: [`space_before_type_annotation`](#space_before_type_annotation).
1268 ## `space_before_bound`
1270 Leave a space before the colon in a trait or lifetime bound
1272 - **Default value**: `false`
1273 - **Possible values**: `true`, `false`
1278 fn lorem<T: Eq>(t: T) {
1279 let ipsum: Dolor = sit;
1286 fn lorem<T : Eq>(t: T) {
1287 let ipsum: Dolor = sit;
1291 See also: [`space_after_bound_colon`](#space_after_bound_colon).
1293 ## `space_before_struct_lit_field_colon`
1295 Leave a space before the colon in a struct literal field
1297 - **Default value**: `false`
1298 - **Possible values**: `true`, `false`
1318 See also: [`space_after_struct_lit_field_colon`](#space_after_struct_lit_field_colon).
1320 ## `space_before_type_annotation`
1322 Leave a space before the colon in a type annotation
1324 - **Default value**: `false`
1325 - **Possible values**: `true`, `false`
1330 fn lorem<T: Eq>(t: T) {
1331 let ipsum: Dolor = sit;
1338 fn lorem<T: Eq>(t : T) {
1339 let ipsum : Dolor = sit;
1343 See also: [`space_after_type_annotation_colon`](#space_after_type_annotation_colon).
1345 ## `spaces_around_ranges`
1347 Put spaces around the .. and ... range operators
1349 - **Default value**: `false`
1350 - **Possible values**: `true`, `false`
1361 let lorem = 0 .. 10;
1364 ## `spaces_within_angle_brackets`
1366 Put spaces within non-empty generic arguments
1368 - **Default value**: `false`
1369 - **Possible values**: `true`, `false`
1374 fn lorem<T: Eq>(t: T) {
1382 fn lorem< T: Eq >(t: T) {
1387 See also: [`spaces_within_parens`](#spaces_within_parens), [`spaces_within_square_brackets`](#spaces_within_square_brackets).
1389 ## `spaces_within_parens`
1391 Put spaces within non-empty parentheses
1393 - **Default value**: `false`
1394 - **Possible values**: `true`, `false`
1399 fn lorem<T: Eq>(t: T) {
1400 let lorem = (ipsum, dolor);
1407 fn lorem<T: Eq>( t: T ) {
1408 let lorem = ( ipsum, dolor );
1412 See also: [`spaces_within_angle_brackets`](#spaces_within_angle_brackets), [`spaces_within_square_brackets`](#spaces_within_square_brackets).
1414 ## `spaces_within_square_brackets`
1416 Put spaces within non-empty square brackets
1418 - **Default value**: `false`
1419 - **Possible values**: `true`, `false`
1424 let lorem: [usize; 2] = [ipsum, dolor];
1430 let lorem: [ usize; 2 ] = [ ipsum, dolor ];
1433 See also: [`spaces_within_parens`](#spaces_within_parens), [`spaces_within_angle_brackets`](#spaces_within_angle_brackets).
1435 ## `struct_lit_multiline_style`
1437 Multiline style on literal structs
1439 - **Default value**: `"PreferSingle"`
1440 - **Possible values**: `"ForceMulti"`, `"PreferSingle"`
1442 #### `"ForceMulti"`:
1451 #### `"PreferSingle"`:
1454 let lorem = Lorem { ipsum: dolor, sit: amet };
1457 See also: [`struct_lit_style`](#struct_lit_style), [`struct_lit_width`](#struct_lit_width).
1459 ## `struct_lit_style`
1461 Style of struct definition
1463 - **Default value**: `"Block"`
1464 - **Possible values**: `"Block"`, `"Visual"`
1478 let lorem = Lorem { ipsum: dolor,
1482 See also: [`struct_lit_multiline_style`](#struct_lit_multiline_style), [`struct_lit_style`](#struct_lit_style).
1484 ## `struct_lit_width`
1486 Maximum width in the body of a struct lit before falling back to vertical formatting
1488 - **Default value**: `18`
1489 - **Possible values**: any positive integer
1491 **Note:** A value of `0` results in vertical formatting being applied regardless of a line's width.
1493 #### Lines shorter than `struct_lit_width`:
1495 let lorem = Lorem { ipsum: dolor, sit: amet };
1498 #### Lines longer than `struct_lit_width`:
1499 See [`struct_lit_style`](#struct_lit_style).
1501 See also: [`struct_lit_multiline_style`](#struct_lit_multiline_style), [`struct_lit_style`](#struct_lit_style).
1503 ## `struct_variant_width`
1505 Maximum width in the body of a struct variant before falling back to vertical formatting
1507 - **Default value**: `35`
1508 - **Possible values**: any positive integer
1510 **Note:** A value of `0` results in vertical formatting being applied regardless of a line's width.
1512 #### Struct variants shorter than `struct_variant_width`:
1517 Sit { amet: Consectetur, adipiscing: Elit },
1521 #### Struct variants longer than `struct_variant_width`:
1535 Number of spaces per tab
1537 - **Default value**: `4`
1538 - **Possible values**: any positive integer
1544 let ipsum = dolor();
1546 "amet consectetur adipiscing elit."
1555 let ipsum = dolor();
1557 "amet consectetur adipiscing elit."
1562 See also: [`hard_tabs`](#hard_tabs).
1564 ## `take_source_hints`
1566 Retain some formatting characteristics from the source code
1568 - **Default value**: `false`
1569 - **Possible values**: `true`, `false`
1576 .dolor(|| { sit.amet().consectetur().adipiscing().elit(); });
1592 Note: This only applies if the call chain within the inner closure had already been formatted on separate lines before running rustfmt.
1596 How to handle trailing commas for lists
1598 - **Default value**: `"Vertical"`
1599 - **Possible values**: `"Always"`, `"Never"`, `"Vertical"`
1604 let Lorem { ipsum, dolor, sit, } = amet;
1618 let Lorem { ipsum, dolor, sit } = amet;
1632 let Lorem { ipsum, dolor, sit } = amet;
1643 See also: [`match_block_trailing_comma`](#match_block_trailing_comma).
1645 ## `type_punctuation_density`
1647 Determines if `+` or `=` are wrapped in spaces in the punctuation of types
1649 - **Default value**: `"Wide"`
1650 - **Possible values**: `"Compressed"`, `"Wide"`
1652 #### `"Compressed"`:
1655 fn lorem<Ipsum: Dolor+Sit=Amet>() {
1663 fn lorem<Ipsum: Dolor + Sit = Amet>() {
1668 ## `use_try_shorthand`
1670 Replace uses of the try! macro by the ? shorthand
1672 - **Default value**: `false`
1673 - **Possible values**: `true`, `false`
1678 let lorem = try!(ipsum.map(|dolor|dolor.sit()));
1684 let lorem = ipsum.map(|dolor| dolor.sit())?;
1689 Density of a where clause
1691 - **Default value**: `"CompressedIfEmpty"`
1692 - **Possible values**: `"Compressed"`, `"CompressedIfEmpty"`, `"Tall"`, `"Vertical"`
1694 #### `"Compressed"`:
1698 fn ipsum<Dolor>(dolor: Dolor) -> Sit where Dolor: Eq;
1700 fn ipsum<Dolor>(dolor: Dolor) -> Sit where Dolor: Eq {
1706 #### `"CompressedIfEmpty"`:
1710 fn ipsum<Dolor>(dolor: Dolor) -> Sit where Dolor: Eq;
1712 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1724 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1727 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1735 **Note:** `where_density = "Tall"` currently produces the same output as `where_density = "Vertical"`.
1741 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1744 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1752 **Note:** `where_density = "Vertical"` currently produces the same output as `where_density = "Tall"`.
1754 See also: [`where_layout`](#where_layout), [`where_pred_indent`](#where_pred_indent), [`where_style`](#where_style).
1758 Element layout inside a where clause
1760 - **Default value**: `"Vertical"`
1761 - **Possible values**: `"Horizontal"`, `"HorizontalVertical"`, `"Mixed"`, `"Vertical"`
1763 #### `"Horizontal"`:
1766 fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
1767 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur
1772 fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
1773 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur, Sit: SitAmetConsecteturAdipiscing, Amet: AmetConsecteturAdipiscingElit
1779 #### `"HorizontalVertical"`:
1782 fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
1783 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur
1788 fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
1789 where Ipsum: IpsumDolorSitAmet,
1790 Dolor: DolorSitAmetConsectetur,
1791 Sit: SitAmetConsecteturAdipiscing,
1792 Amet: AmetConsecteturAdipiscingElit
1801 fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
1802 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur
1807 fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
1808 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur,
1809 Sit: SitAmetConsecteturAdipiscing, Amet: AmetConsecteturAdipiscingElit
1818 fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
1819 where Ipsum: IpsumDolorSitAmet,
1820 Dolor: DolorSitAmetConsectetur
1825 fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
1826 where Ipsum: IpsumDolorSitAmet,
1827 Dolor: DolorSitAmetConsectetur,
1828 Sit: SitAmetConsecteturAdipiscing,
1829 Amet: AmetConsecteturAdipiscingElit
1835 See also: [`where_density`](#where_density), [`where_pred_indent`](#where_pred_indent), [`where_style`](#where_style).
1837 ## `where_pred_indent`
1839 Indentation style of a where predicate
1841 - **Default value**: `"Visual"`
1842 - **Possible values**: `"Block"`, `"Visual"`
1847 fn lorem<Ipsum, Dolor, Sit, Amet>() -> T
1860 fn lorem<Ipsum, Dolor, Sit, Amet>() -> T
1870 See also: [`where_density`](#where_density), [`where_layout`](#where_layout), [`where_style`](#where_style).
1874 Overall strategy for where clauses
1876 - **Default value**: `"Rfc"`
1877 - **Possible values**: `"Rfc"`, `"Legacy"`
1882 fn lorem<Ipsum, Dolor, Sit, Amet>() -> T
1896 fn lorem<Ipsum, Dolor, Sit, Amet>() -> T
1906 See also: [`where_density`](#where_density), [`where_layout`](#where_layout), [`where_pred_indent`](#where_pred_indent).
1910 Break comments to fit on the line
1912 - **Default value**: `false`
1913 - **Possible values**: `true`, `false`
1918 // 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.
1924 // Lorem ipsum dolor sit amet, consectetur adipiscing elit,
1925 // sed do eiusmod tempor incididunt ut labore et dolore
1926 // magna aliqua. Ut enim ad minim veniam, quis nostrud
1927 // exercitation ullamco laboris nisi ut aliquip ex ea
1928 // commodo consequat.
1931 ## `wrap_match_arms`
1933 Wrap multiline match arms in blocks
1935 - **Default value**: `true`
1936 - **Possible values**: `true`, `false`
1944 println!("{}", ipsum);
1958 println!("{}", ipsum);
1960 false => println!("{}", sit),
1964 See also: [`indent_match_arms`](#indent_match_arms), [`match_block_trailing_comma`](#match_block_trailing_comma).
1968 What Write Mode to use when none is supplied: Replace, Overwrite, Display, Diff, Coverage
1970 - **Default value**: `"Replace"`
1971 - **Possible values**: `"Checkstyle"`, `"Coverage"`, `"Diff"`, `"Display"`, `"Overwrite"`, `"Plain"`, `"Replace"`