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**: `"Visual"`
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");
171 Maximum length of comments. No effect unless`wrap_comments = true`.
173 - **Default value**: `80`
174 - **Possible values**: any positive integer
176 **Note:** A value of `0` results in [`wrap_comments`](#wrap_comments) being applied regardless of a line's width.
178 #### Comments shorter than `comment_width`:
180 // Lorem ipsum dolor sit amet, consectetur adipiscing elit.
183 #### Comments longer than `comment_width`:
185 // Lorem ipsum dolor sit amet,
186 // consectetur adipiscing elit.
189 See also [`wrap_comments`](#wrap_comments).
191 ## `condense_wildcard_suffixes`
193 Replace strings of _ wildcards by a single .. in tuple patterns
195 - **Default value**: `false`
196 - **Possible values**: `true`, `false`
201 let (lorem, ipsum, _, _) = (1, 2, 3, 4);
207 let (lorem, ipsum, ..) = (1, 2, 3, 4);
210 ## `control_brace_style`
212 Brace style for control flow constructs
214 - **Default value**: `"AlwaysSameLine"`
215 - **Possible values**: `"AlwaysNextLine"`, `"AlwaysSameLine"`, `"ClosingNextLine"`
217 #### `"AlwaysNextLine"`:
230 #### `"AlwaysSameLine"`:
240 #### `"ClosingNextLine"`:
251 ## `disable_all_formatting`
253 Don't reformat anything
255 - **Default value**: `false`
256 - **Possible values**: `true`, `false`
258 ## `error_on_line_overflow`
260 Error if unable to get all lines within max_width
262 - **Default value**: `true`
263 - **Possible values**: `true`, `false`
265 See also [`max_width`](#max_width).
269 Argument density in functions
271 - **Default value**: `"Tall"`
272 - **Possible values**: `"Compressed"`, `"CompressedIfEmpty"`, `"Tall"`, `"Vertical"`
278 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet);
280 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet) {
284 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet, consectetur: Consectetur,
285 adipiscing: Adipiscing, elit: Elit);
287 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet, consectetur: Consectetur,
288 adipiscing: Adipiscing, elit: Elit) {
294 #### `"CompressedIfEmpty"`:
298 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet);
300 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet) {
304 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet, consectetur: Consectetur,
305 adipiscing: Adipiscing, elit: Elit);
307 fn lorem(ipsum: Ipsum,
311 consectetur: onsectetur,
312 adipiscing: Adipiscing,
323 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet);
325 fn lorem(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet) {
329 fn lorem(ipsum: Ipsum,
333 consectetur: onsectetur,
334 adipiscing: Adipiscing,
337 fn lorem(ipsum: Ipsum,
341 consectetur: onsectetur,
342 adipiscing: Adipiscing,
353 fn lorem(ipsum: Ipsum,
358 fn lorem(ipsum: Ipsum,
365 fn lorem(ipsum: Ipsum,
369 consectetur: onsectetur,
370 adipiscing: Adipiscing,
373 fn lorem(ipsum: Ipsum,
377 consectetur: onsectetur,
378 adipiscing: Adipiscing,
387 Layout of function arguments and tuple structs
389 - **Default value**: `"Visual"`
390 - **Possible values**: `"Block"`, `"Visual"`
397 fn lorem(ipsum: usize) {}
417 fn lorem(ipsum: usize) {}
419 fn lorem(ipsum: usize,
430 ## `fn_args_paren_newline`
432 If function argument parenthesis goes on a newline
434 - **Default value**: `true`
435 - **Possible values**: `true`, `false`
445 -> DolorSitAmetConsecteturAdipiscingElitLoremIpsumDolorSitAmetConsecteturAdipiscingElit {
458 -> DolorSitAmetConsecteturAdipiscingElitLoremIpsumDolorSitAmetConsecteturAdipiscingElit {
465 Brace style for functions
467 - **Default value**: `"SameLineWhere"`
468 - **Possible values**: `"AlwaysNextLine"`, `"PreferSameLine"`, `"SameLineWhere"`
470 #### `"AlwaysNextLine"`:
478 fn lorem(ipsum: usize)
483 fn lorem<T>(ipsum: T)
484 where T: Add + Sub + Mul + Div
490 #### `"PreferSameLine"`:
497 fn lorem(ipsum: usize) {
501 fn lorem<T>(ipsum: T)
502 where T: Add + Sub + Mul + Div {
507 #### `"SameLineWhere"`:
514 fn lorem(ipsum: usize) {
518 fn lorem<T>(ipsum: T)
519 where T: Add + Sub + Mul + Div
527 Indentation for function calls, etc.
529 - **Default value**: `"Visual"`
530 - **Possible values**: `"Block"`, `"Visual"`
562 Maximum width of the args of a function call before falling back to vertical formatting
564 - **Default value**: `60`
565 - **Possible values**: any positive integer
567 **Note:** A value of `0` results in vertical formatting being applied regardless of a line's width.
569 #### Function call shorter than `fn_call_width`:
571 lorem("lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit");
574 #### Function call longer than `fn_call_width`:
576 See [`fn_call_style`](#fn_call_style).
578 ## `fn_empty_single_line`
580 Put empty-body functions on a single line
582 - **Default value**: `true`
583 - **Possible values**: `true`, `false`
598 See also [`control_brace_style`](#control_brace_style).
600 ## `fn_return_indent`
602 Location of return type in function declaration
604 - **Default value**: `"WithArgs"`
605 - **Possible values**: `"WithArgs"`, `"WithWhereClause"`
610 fn lorem(ipsum: Ipsum,
614 consectetur: Consectetur,
615 adipiscing: Adipiscing)
624 #### `"WithWhereClause"`:
627 fn lorem(ipsum: Ipsum,
631 consectetur: Consectetur,
632 adipiscing: Adipiscing)
643 Put single-expression functions on a single line
645 - **Default value**: `false`
646 - **Possible values**: `true`, `false`
651 fn lorem() -> usize {
655 fn lorem() -> usize {
664 fn lorem() -> usize { 42 }
666 fn lorem() -> usize {
672 See also [`control_brace_style`](#control_brace_style).
674 ## `force_explicit_abi`
676 Always print the abi for extern items
678 - **Default value**: `true`
679 - **Possible values**: `true`, `false`
681 **Note:** Non-"C" ABIs are always printed. If `false` then "C" is removed.
687 pub static lorem: c_int;
695 pub static lorem: c_int;
699 ## `force_format_strings`
701 Always format string literals
703 - **Default value**: `false`
704 - **Possible values**: `true`, `false`
706 See [`format_strings`](#format_strings).
708 See also [`max_width`](#max_width).
712 Format string literals where necessary
714 - **Default value**: `false`
715 - **Possible values**: `true`, `false`
720 let lorem = "ipsum dolor sit amet consectetur adipiscing elit lorem ipsum dolor sit";
727 "ipsum dolor sit amet consectetur \
728 adipiscing elit lorem ipsum dolor sit";
731 See also [`force_format_strings`](#force_format_strings), [`max_width`](#max_width).
735 Indentation of generics
737 - **Default value**: `"Visual"`
738 - **Possible values**: `"Block"`, `"Visual"`
748 Adipiscing: Eq = usize,
749 Consectetur: Eq = usize,
755 adipiscing: Adipiscing,
756 consectetur: Consectetur,
766 fn lorem<Ipsum: Eq = usize,
770 Adipiscing: Eq = usize,
771 Consectetur: Eq = usize,
777 adipiscing: Adipiscing,
778 consectetur: Consectetur,
787 Use tab characters for indentation, spaces for alignment
789 - **Default value**: `false`
790 - **Possible values**: `true`, `false`
795 fn lorem() -> usize {
796 42 // spaces before 42
803 fn lorem() -> usize {
808 See also: [`tab_spaces`](#tab_spaces).
810 ## `impl_empty_single_line`
812 Put empty-body implementations on a single line
814 - **Default value**: `true`
815 - **Possible values**: `true`, `false`
830 See also [`item_brace_style`](#item_brace_style).
832 ## `indent_match_arms`
834 Indent match arms instead of keeping them at the same indentation level as the match keyword
836 - **Default value**: `true`
837 - **Possible values**: `true`, `false`
861 See also: [`match_block_trailing_comma`](#match_block_trailing_comma), [`wrap_match_arms`](#wrap_match_arms).
863 ## `item_brace_style`
865 Brace style for structs and enums
867 - **Default value**: `"SameLineWhere"`
868 - **Possible values**: `"AlwaysNextLine"`, `"PreferSameLine"`, `"SameLineWhere"`
870 #### `"AlwaysNextLine"`:
885 #### `"PreferSameLine"`:
898 #### `"SameLineWhere"`:
912 ## `match_block_trailing_comma`
914 Put a trailing comma after a block based match arm (non-block arms are not affected)
916 - **Default value**: `false`
917 - **Possible values**: `true`, `false`
926 Lorem::Dolor => println!("dolor"),
937 Lorem::Dolor => println!("dolor"),
941 See also: [`indent_match_arms`](#indent_match_arms), [`trailing_comma`](#trailing_comma), [`wrap_match_arms`](#wrap_match_arms).
945 Maximum width of each line
947 - **Default value**: `100`
948 - **Possible values**: any positive integer
950 See also [`error_on_line_overflow`](#error_on_line_overflow).
954 Unix or Windows line endings
956 - **Default value**: `"Unix"`
957 - **Possible values**: `"Native"`, `"Unix"`, `"Windows"`
959 ## `normalize_comments`
961 Convert /* */ comments to // comments where possible
963 - **Default value**: `false`
964 - **Possible values**: `true`, `false`
970 fn dolor() -> usize {}
973 fn adipiscing() -> usize {}
980 fn dolor() -> usize {}
983 fn adipiscing() -> usize {}
986 ## `reorder_imported_names`
988 Reorder lists of names in import statements alphabetically
990 - **Default value**: `false`
991 - **Possible values**: `true`, `false`
996 use super::{lorem, ipsum, dolor, sit};
1002 use super::{dolor, ipsum, lorem, sit};
1005 See also [`reorder_imports`](#reorder_imports).
1007 ## `reorder_imports`
1009 Reorder import statements alphabetically
1011 - **Default value**: `false`
1012 - **Possible values**: `true`, `false`
1032 See also [`reorder_imported_names`](#reorder_imported_names), [`reorder_imports_in_group`](#reorder_imports_in_group).
1034 ## `reorder_imports_in_group`
1036 Reorder import statements in group
1038 - **Default value**: `false`
1039 - **Possible values**: `true`, `false`
1041 **Note:** This option takes effect only when [`reorder_imports`](#reorder_imports) is set to `true`.
1067 See also [`reorder_imports`](#reorder_imports).
1069 ## `single_line_if_else_max_width`
1071 Maximum line length for single line if-else expressions.
1073 - **Default value**: `50`
1074 - **Possible values**: any positive integer
1076 **Note:** A value of `0` results in if-else expressions being broken regardless of their line's width.
1078 #### Lines shorter than `single_line_if_else_max_width`:
1080 let lorem = if ipsum { dolor } else { sit };
1083 #### Lines longer than `single_line_if_else_max_width`:
1085 let lorem = if ipsum {
1092 See also: [`control_brace_style`](#control_brace_style).
1096 Don't reformat out of line modules
1098 - **Default value**: `false`
1099 - **Possible values**: `true`, `false`
1101 ## `space_after_bound_colon`
1103 Leave a space after the colon in a trait or lifetime bound
1105 - **Default value**: `true`
1106 - **Possible values**: `true`, `false`
1111 fn lorem<T:Eq>(t: T) {
1119 fn lorem<T: Eq>(t: T) {
1124 See also: [`space_before_bound`](#space_before_bound).
1126 ## `space_after_type_annotation_colon`
1128 Leave a space after the colon in a type annotation
1130 - **Default value**: `true`
1131 - **Possible values**: `true`, `false`
1136 fn lorem<T: Eq>(t:T) {
1137 let ipsum:Dolor = sit;
1144 fn lorem<T: Eq>(t: T) {
1145 let ipsum: Dolor = sit;
1149 See also: [`space_before_type_annotation`](#space_before_type_annotation).
1151 ## `space_before_bound`
1153 Leave a space before the colon in a trait or lifetime bound
1155 - **Default value**: `false`
1156 - **Possible values**: `true`, `false`
1161 fn lorem<T: Eq>(t: T) {
1162 let ipsum: Dolor = sit;
1169 fn lorem<T : Eq>(t: T) {
1170 let ipsum: Dolor = sit;
1174 See also: [`space_after_bound_colon`](#space_after_bound_colon).
1176 ## `space_before_type_annotation`
1178 Leave a space before the colon in a type annotation
1180 - **Default value**: `false`
1181 - **Possible values**: `true`, `false`
1186 fn lorem<T: Eq>(t: T) {
1187 let ipsum: Dolor = sit;
1194 fn lorem<T: Eq>(t : T) {
1195 let ipsum : Dolor = sit;
1199 See also: [`space_after_type_annotation_colon`](#space_after_type_annotation_colon).
1201 ## `spaces_around_ranges`
1203 Put spaces around the .. and ... range operators
1205 - **Default value**: `false`
1206 - **Possible values**: `true`, `false`
1217 let lorem = 0 .. 10;
1220 ## `spaces_within_angle_brackets`
1222 Put spaces within non-empty generic arguments
1224 - **Default value**: `false`
1225 - **Possible values**: `true`, `false`
1230 fn lorem<T: Eq>(t: T) {
1238 fn lorem< T: Eq >(t: T) {
1243 See also: [`spaces_within_parens`](#spaces_within_parens), [`spaces_within_square_brackets`](#spaces_within_square_brackets).
1245 ## `spaces_within_parens`
1247 Put spaces within non-empty parentheses
1249 - **Default value**: `false`
1250 - **Possible values**: `true`, `false`
1255 fn lorem<T: Eq>(t: T) {
1256 let lorem = (ipsum, dolor);
1263 fn lorem<T: Eq>( t: T ) {
1264 let lorem = ( ipsum, dolor );
1268 See also: [`spaces_within_angle_brackets`](#spaces_within_angle_brackets), [`spaces_within_square_brackets`](#spaces_within_square_brackets).
1270 ## `spaces_within_square_brackets`
1272 Put spaces within non-empty square brackets
1274 - **Default value**: `false`
1275 - **Possible values**: `true`, `false`
1280 let lorem: [usize; 2] = [ipsum, dolor];
1286 let lorem: [ usize; 2 ] = [ ipsum, dolor ];
1289 See also: [`spaces_within_parens`](#spaces_within_parens), [`spaces_within_angle_brackets`](#spaces_within_angle_brackets).
1291 ## `struct_lit_multiline_style`
1293 Multiline style on literal structs
1295 - **Default value**: `"PreferSingle"`
1296 - **Possible values**: `"ForceMulti"`, `"PreferSingle"`
1298 #### `"ForceMulti"`:
1307 #### `"PreferSingle"`:
1310 let lorem = Lorem { ipsum: dolor, sit: amet };
1313 See also: [`struct_lit_style`](#struct_lit_style), [`struct_lit_width`](#struct_lit_width).
1315 ## `struct_lit_style`
1317 Style of struct definition
1319 - **Default value**: `"Block"`
1320 - **Possible values**: `"Block"`, `"Visual"`
1334 let lorem = Lorem { ipsum: dolor,
1338 See also: [`struct_lit_multiline_style`](#struct_lit_multiline_style), [`struct_lit_style`](#struct_lit_style).
1340 ## `struct_lit_width`
1342 Maximum width in the body of a struct lit before falling back to vertical formatting
1344 - **Default value**: `18`
1345 - **Possible values**: any positive integer
1347 **Note:** A value of `0` results in vertical formatting being applied regardless of a line's width.
1349 #### Lines shorter than `struct_lit_width`:
1351 let lorem = Lorem { ipsum: dolor, sit: amet };
1354 #### Lines longer than `struct_lit_width`:
1355 See [`struct_lit_style`](#struct_lit_style).
1357 See also: [`struct_lit_multiline_style`](#struct_lit_multiline_style), [`struct_lit_style`](#struct_lit_style).
1359 ## `struct_variant_width`
1361 Maximum width in the body of a struct variant before falling back to vertical formatting
1363 - **Default value**: `35`
1364 - **Possible values**: any positive integer
1366 **Note:** A value of `0` results in vertical formatting being applied regardless of a line's width.
1368 #### Struct variants shorter than `struct_variant_width`:
1373 Sit { amet: Consectetur, adipiscing: Elit },
1377 #### Struct variants longer than `struct_variant_width`:
1391 Number of spaces per tab
1393 - **Default value**: `4`
1394 - **Possible values**: any positive integer
1400 let ipsum = dolor();
1402 "amet consectetur adipiscing elit."
1411 let ipsum = dolor();
1413 "amet consectetur adipiscing elit."
1418 See also: [`hard_tabs`](#hard_tabs).
1420 ## `take_source_hints`
1422 Retain some formatting characteristics from the source code
1424 - **Default value**: `false`
1425 - **Possible values**: `true`, `false`
1432 .dolor(|| { sit.amet().consectetur().adipiscing().elit(); });
1448 Note: This only applies if the call chain within the inner closure had already been formatted on separate lines before running rustfmt.
1452 How to handle trailing commas for lists
1454 - **Default value**: `"Vertical"`
1455 - **Possible values**: `"Always"`, `"Never"`, `"Vertical"`
1460 let Lorem { ipsum, dolor, sit, } = amet;
1474 let Lorem { ipsum, dolor, sit } = amet;
1488 let Lorem { ipsum, dolor, sit } = amet;
1499 See also: [`match_block_trailing_comma`](#match_block_trailing_comma).
1501 ## `type_punctuation_density`
1503 Determines if `+` or `=` are wrapped in spaces in the punctuation of types
1505 - **Default value**: `"Wide"`
1506 - **Possible values**: `"Compressed"`, `"Wide"`
1508 #### `"Compressed"`:
1511 fn lorem<Ipsum: Dolor+Sit=Amet>() {
1519 fn lorem<Ipsum: Dolor + Sit = Amet>() {
1524 ## `use_try_shorthand`
1526 Replace uses of the try! macro by the ? shorthand
1528 - **Default value**: `false`
1529 - **Possible values**: `true`, `false`
1534 let lorem = try!(ipsum.map(|dolor|dolor.sit()));
1540 let lorem = ipsum.map(|dolor| dolor.sit())?;
1545 Density of a where clause
1547 - **Default value**: `"CompressedIfEmpty"`
1548 - **Possible values**: `"Compressed"`, `"CompressedIfEmpty"`, `"Tall"`, `"Vertical"`
1550 #### `"Compressed"`:
1554 fn ipsum<Dolor>(dolor: Dolor) -> Sit where Dolor: Eq;
1556 fn ipsum<Dolor>(dolor: Dolor) -> Sit where Dolor: Eq {
1562 #### `"CompressedIfEmpty"`:
1566 fn ipsum<Dolor>(dolor: Dolor) -> Sit where Dolor: Eq;
1568 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1580 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1583 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1591 **Note:** `where_density = "Tall"` currently produces the same output as `where_density = "Vertical"`.
1597 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1600 fn ipsum<Dolor>(dolor: Dolor) -> Sit
1608 **Note:** `where_density = "Vertical"` currently produces the same output as `where_density = "Tall"`.
1610 See also: [`where_layout`](#where_layout), [`where_pred_indent`](#where_pred_indent), [`where_style`](#where_style).
1614 Element layout inside a where clause
1616 - **Default value**: `"Vertical"`
1617 - **Possible values**: `"Horizontal"`, `"HorizontalVertical"`, `"Mixed"`, `"Vertical"`
1619 #### `"Horizontal"`:
1622 fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
1623 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur
1628 fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
1629 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur, Sit: SitAmetConsecteturAdipiscing, Amet: AmetConsecteturAdipiscingElit
1635 #### `"HorizontalVertical"`:
1638 fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
1639 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur
1644 fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
1645 where Ipsum: IpsumDolorSitAmet,
1646 Dolor: DolorSitAmetConsectetur,
1647 Sit: SitAmetConsecteturAdipiscing,
1648 Amet: AmetConsecteturAdipiscingElit
1657 fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
1658 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur
1663 fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
1664 where Ipsum: IpsumDolorSitAmet, Dolor: DolorSitAmetConsectetur,
1665 Sit: SitAmetConsecteturAdipiscing, Amet: AmetConsecteturAdipiscingElit
1674 fn lorem<Ipsum, Dolor>(ipsum: Ipsum, dolor: Dolor)
1675 where Ipsum: IpsumDolorSitAmet,
1676 Dolor: DolorSitAmetConsectetur
1681 fn lorem<Ipsum, Dolor, Sit, Amet>(ipsum: Ipsum, dolor: Dolor, sit: Sit, amet: Amet)
1682 where Ipsum: IpsumDolorSitAmet,
1683 Dolor: DolorSitAmetConsectetur,
1684 Sit: SitAmetConsecteturAdipiscing,
1685 Amet: AmetConsecteturAdipiscingElit
1691 See also: [`where_density`](#where_density), [`where_pred_indent`](#where_pred_indent), [`where_style`](#where_style).
1693 ## `where_pred_indent`
1695 Indentation style of a where predicate
1697 - **Default value**: `"Visual"`
1698 - **Possible values**: `"Block"`, `"Visual"`
1703 fn lorem<Ipsum, Dolor, Sit, Amet>() -> T
1716 fn lorem<Ipsum, Dolor, Sit, Amet>() -> T
1726 See also: [`where_density`](#where_density), [`where_layout`](#where_layout), [`where_style`](#where_style).
1730 Overall strategy for where clauses
1732 - **Default value**: `"Default"`
1733 - **Possible values**: `"Default"`, `"Rfc"`
1738 fn lorem<Ipsum, Dolor, Sit, Amet>() -> T
1751 fn lorem<Ipsum, Dolor, Sit, Amet>() -> T
1762 See also: [`where_density`](#where_density), [`where_layout`](#where_layout), [`where_pred_indent`](#where_pred_indent).
1766 Break comments to fit on the line
1768 - **Default value**: `false`
1769 - **Possible values**: `true`, `false`
1774 // 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.
1780 // Lorem ipsum dolor sit amet, consectetur adipiscing elit,
1781 // sed do eiusmod tempor incididunt ut labore et dolore
1782 // magna aliqua. Ut enim ad minim veniam, quis nostrud
1783 // exercitation ullamco laboris nisi ut aliquip ex ea
1784 // commodo consequat.
1787 ## `wrap_match_arms`
1789 Wrap multiline match arms in blocks
1791 - **Default value**: `true`
1792 - **Possible values**: `true`, `false`
1800 println!("{}", ipsum);
1814 println!("{}", ipsum);
1816 false => println!("{}", sit),
1820 See also: [`indent_match_arms`](#indent_match_arms), [`match_block_trailing_comma`](#match_block_trailing_comma).
1824 What Write Mode to use when none is supplied: Replace, Overwrite, Display, Diff, Coverage
1826 - **Default value**: `"Replace"`
1827 - **Possible values**: `"Checkstyle"`, `"Coverage"`, `"Diff"`, `"Display"`, `"Overwrite"`, `"Plain"`, `"Replace"`