[{"data":1,"prerenderedAt":2314},["ShallowReactive",2],{"page-\u002Frust\u002F27-attributes-and-cfg":3},{"id":4,"title":5,"body":6,"description":2307,"extension":2308,"meta":2309,"navigation":153,"path":2310,"seo":2311,"stem":2312,"__hash__":2313},"content\u002Frust\u002F27-attributes-and-cfg.md","27 — Attributes & Conditional Compilation",{"type":7,"value":8,"toc":2260},"minimark",[9,13,26,31,36,69,73,99,103,286,293,357,362,365,398,405,412,441,444,452,496,510,516,572,603,607,649,675,679,740,744,776,783,789,858,874,880,926,929,935,1006,1009,1016,1119,1123,1196,1204,1211,1239,1242,1248,1289,1307,1316,1390,1398,1404,1435,1441,1516,1523,1548,1553,1606,1609,1615,1621,1628,1697,1703,1710,1755,1758,1764,1939,1945,1955,1966,1980,1984,1998,2002,2017,2023,2027,2121,2126,2211,2217,2221,2253,2256],[10,11,5],"h1",{"id":12},"_27-attributes-conditional-compilation",[14,15,16,17,21,22,25],"p",{},"Attributes are metadata annotations that influence compilation, linting, codegen, and tooling. They appear as ",[18,19,20],"code",{},"#[...]"," (outer) or ",[18,23,24],{},"#![...]"," (inner, applies to the enclosing item\u002Fwhole crate).",[27,28,30],"h2",{"id":29},"common-attributes","Common Attributes",[32,33,35],"h3",{"id":34},"visibility-abi","Visibility & ABI",[37,38,39,55],"ul",{},[40,41,42,45,46,45,49,45,52],"li",{},[18,43,44],{},"pub",", ",[18,47,48],{},"pub(crate)",[18,50,51],{},"pub(super)",[18,53,54],{},"pub(in path)",[40,56,57,45,60,45,63,45,66],{},[18,58,59],{},"extern \"C\"",[18,61,62],{},"#[no_mangle]",[18,64,65],{},"#[export_name]",[18,67,68],{},"#[link_name]",[32,70,72],{"id":71},"code-generation","Code Generation",[37,74,75,87,93],{},[40,76,77,80,81,80,84],{},[18,78,79],{},"#[inline]"," \u002F ",[18,82,83],{},"#[inline(always)]",[18,85,86],{},"#[inline(never)]",[40,88,89,92],{},[18,90,91],{},"#[cold]"," (cold path — hint to optimizer)",[40,94,95,98],{},[18,96,97],{},"#[track_caller]"," (captures caller location for panic messages)",[32,100,102],{"id":101},"conditional-compilation","Conditional Compilation",[104,105,107],"code-wrapper",{"language":106},"rust",[108,109,113],"pre",{"className":110,"code":111,"language":106,"meta":112,"style":112},"language-rust shiki shiki-themes github-light github-dark","#[cfg(target_os = \"linux\")]\nfn linux_only() {}\n\n#[cfg(not(target_os = \"linux\"))]\nfn non_linux() {}\n\n#[cfg(all(unix, target_pointer_width = \"64\"))]\nfn unix_64() {}\n\n#[cfg(any(feature = \"json\", feature = \"yaml\"))]\nfn with_format() {}\n\n#[cfg(feature = \"serde\")]\n#[derive(serde::Serialize)]\nstruct S;\n","",[18,114,115,135,148,155,168,178,183,196,206,211,232,242,247,260,274],{"__ignoreMap":112},[116,117,120,124,128,132],"span",{"class":118,"line":119},"line",1,[116,121,123],{"class":122},"ssxIu","#[cfg(target_os ",[116,125,127],{"class":126},"svdQ7","=",[116,129,131],{"class":130},"sJ6F3"," \"linux\"",[116,133,134],{"class":122},")]\n",[116,136,138,141,145],{"class":118,"line":137},2,[116,139,140],{"class":126},"fn",[116,142,144],{"class":143},"sIsaT"," linux_only",[116,146,147],{"class":122},"() {}\n",[116,149,151],{"class":118,"line":150},3,[116,152,154],{"emptyLinePlaceholder":153},true,"\n",[116,156,158,161,163,165],{"class":118,"line":157},4,[116,159,160],{"class":122},"#[cfg(not(target_os ",[116,162,127],{"class":126},[116,164,131],{"class":130},[116,166,167],{"class":122},"))]\n",[116,169,171,173,176],{"class":118,"line":170},5,[116,172,140],{"class":126},[116,174,175],{"class":143}," non_linux",[116,177,147],{"class":122},[116,179,181],{"class":118,"line":180},6,[116,182,154],{"emptyLinePlaceholder":153},[116,184,186,189,191,194],{"class":118,"line":185},7,[116,187,188],{"class":122},"#[cfg(all(unix, target_pointer_width ",[116,190,127],{"class":126},[116,192,193],{"class":130}," \"64\"",[116,195,167],{"class":122},[116,197,199,201,204],{"class":118,"line":198},8,[116,200,140],{"class":126},[116,202,203],{"class":143}," unix_64",[116,205,147],{"class":122},[116,207,209],{"class":118,"line":208},9,[116,210,154],{"emptyLinePlaceholder":153},[116,212,214,217,219,222,225,227,230],{"class":118,"line":213},10,[116,215,216],{"class":122},"#[cfg(any(feature ",[116,218,127],{"class":126},[116,220,221],{"class":130}," \"json\"",[116,223,224],{"class":122},", feature ",[116,226,127],{"class":126},[116,228,229],{"class":130}," \"yaml\"",[116,231,167],{"class":122},[116,233,235,237,240],{"class":118,"line":234},11,[116,236,140],{"class":126},[116,238,239],{"class":143}," with_format",[116,241,147],{"class":122},[116,243,245],{"class":118,"line":244},12,[116,246,154],{"emptyLinePlaceholder":153},[116,248,250,253,255,258],{"class":118,"line":249},13,[116,251,252],{"class":122},"#[cfg(feature ",[116,254,127],{"class":126},[116,256,257],{"class":130}," \"serde\"",[116,259,134],{"class":122},[116,261,263,266,269,272],{"class":118,"line":262},14,[116,264,265],{"class":122},"#[derive(serde",[116,267,268],{"class":126},"::",[116,270,271],{"class":143},"Serialize",[116,273,134],{"class":122},[116,275,277,280,283],{"class":118,"line":276},15,[116,278,279],{"class":126},"struct",[116,281,282],{"class":143}," S",[116,284,285],{"class":122},";\n",[32,287,289,292],{"id":288},"cfg-predicates",[18,290,291],{},"cfg"," Predicates",[37,294,295,313,318,324,330,339,350],{},[40,296,297,45,300,45,303,45,306,45,309,312],{},[18,298,299],{},"target_os = \"linux\"",[18,301,302],{},"target_arch = \"x86_64\"",[18,304,305],{},"target_family = \"unix\"",[18,307,308],{},"target_pointer_width = \"32\"",[18,310,311],{},"target_endian = \"little\"",".",[40,314,315,312],{},[18,316,317],{},"feature = \"name\"",[40,319,320,323],{},[18,321,322],{},"debug_assertions"," (true in debug builds).",[40,325,326,329],{},[18,327,328],{},"test"," (true when compiled as a test).",[40,331,332,45,335,338],{},[18,333,334],{},"unix",[18,336,337],{},"windows"," (family shortcuts).",[40,340,341,45,344,45,347,312],{},[18,342,343],{},"any(...)",[18,345,346],{},"all(...)",[18,348,349],{},"not(...)",[40,351,352,353,356],{},"Custom: ",[18,354,355],{},"#[cfg(accessible(std::sync::OnceLock))]"," (nightly).",[32,358,360],{"id":359},"cfg_attr",[18,361,359],{},[14,363,364],{},"Apply an attribute conditionally:",[104,366,367],{"language":106},[108,368,370],{"className":110,"code":369,"language":106,"meta":112,"style":112},"#[cfg_attr(feature = \"serde\", derive(serde::Serialize))]\nstruct S;\n",[18,371,372,390],{"__ignoreMap":112},[116,373,374,377,379,381,384,386,388],{"class":118,"line":119},[116,375,376],{"class":122},"#[cfg_attr(feature ",[116,378,127],{"class":126},[116,380,257],{"class":130},[116,382,383],{"class":122},", derive(serde",[116,385,268],{"class":126},[116,387,271],{"class":143},[116,389,167],{"class":122},[116,391,392,394,396],{"class":118,"line":137},[116,393,279],{"class":126},[116,395,282],{"class":143},[116,397,285],{"class":122},[14,399,400,401,404],{},"Equivalent to ",[18,402,403],{},"#[cfg(feature = \"serde\")] #[derive(...)]"," but cleaner.",[32,406,408,411],{"id":407},"cfg-on-modules",[18,409,410],{},"#[cfg]"," on Modules",[104,413,414],{"language":106},[108,415,417],{"className":110,"code":416,"language":106,"meta":112,"style":112},"#[cfg(feature = \"json\")]\npub mod json;\n",[18,418,419,429],{"__ignoreMap":112},[116,420,421,423,425,427],{"class":118,"line":119},[116,422,252],{"class":122},[116,424,127],{"class":126},[116,426,221],{"class":130},[116,428,134],{"class":122},[116,430,431,433,436,439],{"class":118,"line":137},[116,432,44],{"class":126},[116,434,435],{"class":126}," mod",[116,437,438],{"class":143}," json",[116,440,285],{"class":122},[14,442,443],{},"The module is only compiled when the feature is on.",[27,445,447,448,451],{"id":446},"compile-time-cfg-macro","Compile-Time ",[18,449,450],{},"cfg!"," Macro",[104,453,454],{"language":106},[108,455,457],{"className":110,"code":456,"language":106,"meta":112,"style":112},"if cfg!(target_os = \"linux\") {\n    println!(\"linux\");\n}\n",[18,458,459,477,491],{"__ignoreMap":112},[116,460,461,464,467,470,472,474],{"class":118,"line":119},[116,462,463],{"class":126},"if",[116,465,466],{"class":143}," cfg!",[116,468,469],{"class":122},"(target_os ",[116,471,127],{"class":126},[116,473,131],{"class":130},[116,475,476],{"class":122},") {\n",[116,478,479,482,485,488],{"class":118,"line":137},[116,480,481],{"class":143},"    println!",[116,483,484],{"class":122},"(",[116,486,487],{"class":130},"\"linux\"",[116,489,490],{"class":122},");\n",[116,492,493],{"class":118,"line":150},[116,494,495],{"class":122},"}\n",[14,497,498,499,502,503,506,507,509],{},"Returns ",[18,500,501],{},"true","\u002F",[18,504,505],{},"false"," at compile time — the dead branch is still type-checked but eliminated at codegen. Use ",[18,508,410],{}," for actual code removal.",[27,511,513],{"id":512},"derive",[18,514,515],{},"#[derive(...)]",[104,517,518],{"language":106},[108,519,521],{"className":110,"code":520,"language":106,"meta":112,"style":112},"#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]\nstruct Foo;\n",[18,522,523,563],{"__ignoreMap":112},[116,524,525,528,531,533,536,538,541,543,546,548,551,553,556,558,561],{"class":118,"line":119},[116,526,527],{"class":122},"#[derive(",[116,529,530],{"class":143},"Debug",[116,532,45],{"class":122},[116,534,535],{"class":143},"Clone",[116,537,45],{"class":122},[116,539,540],{"class":143},"Copy",[116,542,45],{"class":122},[116,544,545],{"class":143},"PartialEq",[116,547,45],{"class":122},[116,549,550],{"class":143},"Eq",[116,552,45],{"class":122},[116,554,555],{"class":143},"Hash",[116,557,45],{"class":122},[116,559,560],{"class":143},"Default",[116,562,134],{"class":122},[116,564,565,567,570],{"class":118,"line":137},[116,566,279],{"class":126},[116,568,569],{"class":143}," Foo",[116,571,285],{"class":122},[14,573,574,575,45,577,45,579,45,581,45,583,45,585,45,588,45,591,45,593,595,596,45,599,602],{},"Standard derives: ",[18,576,530],{},[18,578,535],{},[18,580,540],{},[18,582,545],{},[18,584,550],{},[18,586,587],{},"PartialOrd",[18,589,590],{},"Ord",[18,592,555],{},[18,594,560],{},". External crates add more (",[18,597,598],{},"serde::Serialize",[18,600,601],{},"thiserror::Error",").",[27,604,606],{"id":605},"lint-attributes","Lint Attributes",[104,608,609],{"language":106},[108,610,612],{"className":110,"code":611,"language":106,"meta":112,"style":112},"#![allow(dead_code)]              \u002F\u002F crate-wide\n#[allow(unused)]                  \u002F\u002F item-level\n#[warn(unused)]\n#[deny(unused)]\n#[forbid(unused)]                 \u002F\u002F can't be overridden downstream\n",[18,613,614,623,631,636,641],{"__ignoreMap":112},[116,615,616,619],{"class":118,"line":119},[116,617,618],{"class":122},"#![allow(dead_code)]              ",[116,620,622],{"class":621},"sdCPZ","\u002F\u002F crate-wide\n",[116,624,625,628],{"class":118,"line":137},[116,626,627],{"class":122},"#[allow(unused)]                  ",[116,629,630],{"class":621},"\u002F\u002F item-level\n",[116,632,633],{"class":118,"line":150},[116,634,635],{"class":122},"#[warn(unused)]\n",[116,637,638],{"class":118,"line":157},[116,639,640],{"class":122},"#[deny(unused)]\n",[116,642,643,646],{"class":118,"line":170},[116,644,645],{"class":122},"#[forbid(unused)]                 ",[116,647,648],{"class":621},"\u002F\u002F can't be overridden downstream\n",[37,650,651,657,663,669],{},[40,652,653,656],{},[18,654,655],{},"allow",": silence.",[40,658,659,662],{},[18,660,661],{},"warn",": warn (default for many lints).",[40,664,665,668],{},[18,666,667],{},"deny",": error.",[40,670,671,674],{},[18,672,673],{},"forbid",": deny that can't be undone in inner scopes.",[32,676,678],{"id":677},"common-lints","Common Lints",[37,680,681,701,712,720,728],{},[40,682,683,45,686,45,689,45,692,45,695,45,698],{},[18,684,685],{},"unused",[18,687,688],{},"dead_code",[18,690,691],{},"unused_variables",[18,693,694],{},"unused_imports",[18,696,697],{},"unused_mut",[18,699,700],{},"unused_assignments",[40,702,703,45,706,45,709],{},[18,704,705],{},"non_snake_case",[18,707,708],{},"non_camel_case_types",[18,710,711],{},"non_upper_case_globals",[40,713,714,45,717],{},[18,715,716],{},"missing_docs",[18,718,719],{},"missing_debug_implementations",[40,721,722,45,725],{},[18,723,724],{},"unsafe_code",[18,726,727],{},"unused_unsafe",[40,729,730,45,733,45,736,739],{},[18,731,732],{},"clippy::all",[18,734,735],{},"clippy::pedantic",[18,737,738],{},"clippy::nursery"," (Clippy lint groups)",[32,741,743],{"id":742},"clippy","Clippy",[104,745,746],{"language":106},[108,747,749],{"className":110,"code":748,"language":106,"meta":112,"style":112},"#![warn(clippy::all, clippy::pedantic)]\n#![allow(clippy::module_inception)]\n",[18,750,751,766],{"__ignoreMap":112},[116,752,753,756,758,761,763],{"class":118,"line":119},[116,754,755],{"class":122},"#![warn(clippy",[116,757,268],{"class":126},[116,759,760],{"class":122},"all, clippy",[116,762,268],{"class":126},[116,764,765],{"class":122},"pedantic)]\n",[116,767,768,771,773],{"class":118,"line":137},[116,769,770],{"class":122},"#![allow(clippy",[116,772,268],{"class":126},[116,774,775],{"class":122},"module_inception)]\n",[14,777,778,779,782],{},"Configure in ",[18,780,781],{},"Cargo.toml"," or source.",[27,784,786],{"id":785},"non_exhaustive",[18,787,788],{},"#[non_exhaustive]",[104,790,791],{"language":106},[108,792,794],{"className":110,"code":793,"language":106,"meta":112,"style":112},"#[non_exhaustive]\npub enum Event { Login, Logout }\n\n#[non_exhaustive]\npub struct Config { pub host: String }\n",[18,795,796,801,825,829,833],{"__ignoreMap":112},[116,797,798],{"class":118,"line":119},[116,799,800],{"class":122},"#[non_exhaustive]\n",[116,802,803,805,808,811,814,817,819,822],{"class":118,"line":137},[116,804,44],{"class":126},[116,806,807],{"class":126}," enum",[116,809,810],{"class":143}," Event",[116,812,813],{"class":122}," { ",[116,815,816],{"class":143},"Login",[116,818,45],{"class":122},[116,820,821],{"class":143},"Logout",[116,823,824],{"class":122}," }\n",[116,826,827],{"class":118,"line":150},[116,828,154],{"emptyLinePlaceholder":153},[116,830,831],{"class":118,"line":157},[116,832,800],{"class":122},[116,834,835,837,840,843,845,847,850,853,856],{"class":118,"line":170},[116,836,44],{"class":126},[116,838,839],{"class":126}," struct",[116,841,842],{"class":143}," Config",[116,844,813],{"class":122},[116,846,44],{"class":126},[116,848,849],{"class":122}," host",[116,851,852],{"class":126},":",[116,854,855],{"class":143}," String",[116,857,824],{"class":122},[37,859,860,871],{},[40,861,862,863,866,867,870],{},"External crates must include a ",[18,864,865],{},"_ => ..."," arm (enum) or use ",[18,868,869],{},"..Default::default()","\u002Fconstructor (struct).",[40,872,873],{},"Allows adding variants\u002Ffields in non-breaking minor releases.",[27,875,877],{"id":876},"must_use",[18,878,879],{},"#[must_use]",[104,881,882],{"language":106},[108,883,885],{"className":110,"code":884,"language":106,"meta":112,"style":112},"#[must_use = \"the result indicates success\"]\npub fn try_connect() -> bool { \u002F* ... *\u002F }\n",[18,886,887,900],{"__ignoreMap":112},[116,888,889,892,894,897],{"class":118,"line":119},[116,890,891],{"class":122},"#[must_use ",[116,893,127],{"class":126},[116,895,896],{"class":130}," \"the result indicates success\"",[116,898,899],{"class":122},"]\n",[116,901,902,904,907,910,913,916,919,921,924],{"class":118,"line":137},[116,903,44],{"class":126},[116,905,906],{"class":126}," fn",[116,908,909],{"class":143}," try_connect",[116,911,912],{"class":122},"() ",[116,914,915],{"class":126},"->",[116,917,918],{"class":143}," bool",[116,920,813],{"class":122},[116,922,923],{"class":621},"\u002F* ... *\u002F",[116,925,824],{"class":122},[14,927,928],{},"Warns if the return value is ignored. Applied to Result, Option by default.",[27,930,932],{"id":931},"deprecated",[18,933,934],{},"#[deprecated]",[104,936,937],{"language":106},[108,938,940],{"className":110,"code":939,"language":106,"meta":112,"style":112},"#[deprecated(since = \"1.2\", note = \"use new_fn instead\")]\npub fn old_fn() {}\n\n#[deprecated(since = \"1.2\", replacement = \"new_fn\")]\npub fn old_fn2() {}\n",[18,941,942,962,973,977,995],{"__ignoreMap":112},[116,943,944,947,949,952,955,957,960],{"class":118,"line":119},[116,945,946],{"class":122},"#[deprecated(since ",[116,948,127],{"class":126},[116,950,951],{"class":130}," \"1.2\"",[116,953,954],{"class":122},", note ",[116,956,127],{"class":126},[116,958,959],{"class":130}," \"use new_fn instead\"",[116,961,134],{"class":122},[116,963,964,966,968,971],{"class":118,"line":137},[116,965,44],{"class":126},[116,967,906],{"class":126},[116,969,970],{"class":143}," old_fn",[116,972,147],{"class":122},[116,974,975],{"class":118,"line":150},[116,976,154],{"emptyLinePlaceholder":153},[116,978,979,981,983,985,988,990,993],{"class":118,"line":157},[116,980,946],{"class":122},[116,982,127],{"class":126},[116,984,951],{"class":130},[116,986,987],{"class":122},", replacement ",[116,989,127],{"class":126},[116,991,992],{"class":130}," \"new_fn\"",[116,994,134],{"class":122},[116,996,997,999,1001,1004],{"class":118,"line":170},[116,998,44],{"class":126},[116,1000,906],{"class":126},[116,1002,1003],{"class":143}," old_fn2",[116,1005,147],{"class":122},[14,1007,1008],{},"Emits a warning when used.",[27,1010,1012,1015],{"id":1011},"doc-attributes",[18,1013,1014],{},"#[doc]"," Attributes",[104,1017,1018],{"language":106},[108,1019,1021],{"className":110,"code":1020,"language":106,"meta":112,"style":112},"\u002F\u002F\u002F Docs.\n#[doc = \"Inline docs string\"]\nfn f() {}\n\n#[doc(hidden)]        \u002F\u002F hide from docs\npub mod internal;\n\n#[doc(alias = \"other_name\")]   \u002F\u002F search alias\npub fn f2() {}\n\n#![doc(html_root_url = \"https:\u002F\u002Fdocs.rs\u002Fmy_crate\u002F1.0\")]\n",[18,1022,1023,1028,1040,1049,1053,1061,1072,1076,1092,1103,1107],{"__ignoreMap":112},[116,1024,1025],{"class":118,"line":119},[116,1026,1027],{"class":621},"\u002F\u002F\u002F Docs.\n",[116,1029,1030,1033,1035,1038],{"class":118,"line":137},[116,1031,1032],{"class":122},"#[doc ",[116,1034,127],{"class":126},[116,1036,1037],{"class":130}," \"Inline docs string\"",[116,1039,899],{"class":122},[116,1041,1042,1044,1047],{"class":118,"line":150},[116,1043,140],{"class":126},[116,1045,1046],{"class":143}," f",[116,1048,147],{"class":122},[116,1050,1051],{"class":118,"line":157},[116,1052,154],{"emptyLinePlaceholder":153},[116,1054,1055,1058],{"class":118,"line":170},[116,1056,1057],{"class":122},"#[doc(hidden)]        ",[116,1059,1060],{"class":621},"\u002F\u002F hide from docs\n",[116,1062,1063,1065,1067,1070],{"class":118,"line":180},[116,1064,44],{"class":126},[116,1066,435],{"class":126},[116,1068,1069],{"class":143}," internal",[116,1071,285],{"class":122},[116,1073,1074],{"class":118,"line":185},[116,1075,154],{"emptyLinePlaceholder":153},[116,1077,1078,1081,1083,1086,1089],{"class":118,"line":198},[116,1079,1080],{"class":122},"#[doc(alias ",[116,1082,127],{"class":126},[116,1084,1085],{"class":130}," \"other_name\"",[116,1087,1088],{"class":122},")]   ",[116,1090,1091],{"class":621},"\u002F\u002F search alias\n",[116,1093,1094,1096,1098,1101],{"class":118,"line":208},[116,1095,44],{"class":126},[116,1097,906],{"class":126},[116,1099,1100],{"class":143}," f2",[116,1102,147],{"class":122},[116,1104,1105],{"class":118,"line":213},[116,1106,154],{"emptyLinePlaceholder":153},[116,1108,1109,1112,1114,1117],{"class":118,"line":234},[116,1110,1111],{"class":122},"#![doc(html_root_url ",[116,1113,127],{"class":126},[116,1115,1116],{"class":130}," \"https:\u002F\u002Fdocs.rs\u002Fmy_crate\u002F1.0\"",[116,1118,134],{"class":122},[27,1120,1122],{"id":1121},"inner-vs-outer-attributes","Inner vs Outer Attributes",[104,1124,1125],{"language":106},[108,1126,1128],{"className":110,"code":1127,"language":106,"meta":112,"style":112},"#![allow(dead_code)]   \u002F\u002F inner — applies to crate\u002Fmodule\n\n#[allow(dead_code)]    \u002F\u002F outer — applies to following item\nfn foo() {}\n\nmod m {\n    #![allow(dead_code)]   \u002F\u002F inner — applies to module m\n    fn bar() {}\n}\n",[18,1129,1130,1138,1142,1150,1159,1163,1174,1182,1192],{"__ignoreMap":112},[116,1131,1132,1135],{"class":118,"line":119},[116,1133,1134],{"class":122},"#![allow(dead_code)]   ",[116,1136,1137],{"class":621},"\u002F\u002F inner — applies to crate\u002Fmodule\n",[116,1139,1140],{"class":118,"line":137},[116,1141,154],{"emptyLinePlaceholder":153},[116,1143,1144,1147],{"class":118,"line":150},[116,1145,1146],{"class":122},"#[allow(dead_code)]    ",[116,1148,1149],{"class":621},"\u002F\u002F outer — applies to following item\n",[116,1151,1152,1154,1157],{"class":118,"line":157},[116,1153,140],{"class":126},[116,1155,1156],{"class":143}," foo",[116,1158,147],{"class":122},[116,1160,1161],{"class":118,"line":170},[116,1162,154],{"emptyLinePlaceholder":153},[116,1164,1165,1168,1171],{"class":118,"line":180},[116,1166,1167],{"class":126},"mod",[116,1169,1170],{"class":143}," m",[116,1172,1173],{"class":122}," {\n",[116,1175,1176,1179],{"class":118,"line":185},[116,1177,1178],{"class":122},"    #![allow(dead_code)]   ",[116,1180,1181],{"class":621},"\u002F\u002F inner — applies to module m\n",[116,1183,1184,1187,1190],{"class":118,"line":198},[116,1185,1186],{"class":126},"    fn",[116,1188,1189],{"class":143}," bar",[116,1191,147],{"class":122},[116,1193,1194],{"class":118,"line":208},[116,1195,495],{"class":122},[14,1197,1198,1199,1203],{},"Inner attributes go ",[1200,1201,1202],"em",{},"inside"," the item's braces; outer attributes go before it.",[27,1205,1207,1210],{"id":1206},"path-for-module-files",[18,1208,1209],{},"#[path]"," for Module Files",[104,1212,1213],{"language":106},[108,1214,1216],{"className":110,"code":1215,"language":106,"meta":112,"style":112},"#[path = \"other\u002Fpath.rs\"]\nmod my_mod;\n",[18,1217,1218,1230],{"__ignoreMap":112},[116,1219,1220,1223,1225,1228],{"class":118,"line":119},[116,1221,1222],{"class":122},"#[path ",[116,1224,127],{"class":126},[116,1226,1227],{"class":130}," \"other\u002Fpath.rs\"",[116,1229,899],{"class":122},[116,1231,1232,1234,1237],{"class":118,"line":137},[116,1233,1167],{"class":126},[116,1235,1236],{"class":143}," my_mod",[116,1238,285],{"class":122},[14,1240,1241],{},"Overrides the default file lookup.",[27,1243,1245],{"id":1244},"link",[18,1246,1247],{},"#[link]",[104,1249,1250],{"language":106},[108,1251,1253],{"className":110,"code":1252,"language":106,"meta":112,"style":112},"#[link(name = \"crypto\", kind = \"static\")]\nextern \"C\" { \u002F* ... *\u002F }\n",[18,1254,1255,1275],{"__ignoreMap":112},[116,1256,1257,1260,1262,1265,1268,1270,1273],{"class":118,"line":119},[116,1258,1259],{"class":122},"#[link(name ",[116,1261,127],{"class":126},[116,1263,1264],{"class":130}," \"crypto\"",[116,1266,1267],{"class":122},", kind ",[116,1269,127],{"class":126},[116,1271,1272],{"class":130}," \"static\"",[116,1274,134],{"class":122},[116,1276,1277,1280,1283,1285,1287],{"class":118,"line":137},[116,1278,1279],{"class":126},"extern",[116,1281,1282],{"class":130}," \"C\"",[116,1284,813],{"class":122},[116,1286,923],{"class":621},[116,1288,824],{"class":122},[14,1290,1291,1294,1295,45,1298,45,1301,1304,1305,312],{},[18,1292,1293],{},"kind",": ",[18,1296,1297],{},"static",[18,1299,1300],{},"dylib",[18,1302,1303],{},"framework"," (macOS). Default is ",[18,1306,1300],{},[27,1308,1310,45,1313],{"id":1309},"link_section-used",[18,1311,1312],{},"#[link_section]",[18,1314,1315],{},"#[used]",[104,1317,1318],{"language":106},[108,1319,1321],{"className":110,"code":1320,"language":106,"meta":112,"style":112},"#[link_section = \".custom\"]\n#[used]\nstatic DATA: [u8; 4] = [0, 1, 2, 3];\n",[18,1322,1323,1335,1340],{"__ignoreMap":112},[116,1324,1325,1328,1330,1333],{"class":118,"line":119},[116,1326,1327],{"class":122},"#[link_section ",[116,1329,127],{"class":126},[116,1331,1332],{"class":130}," \".custom\"",[116,1334,899],{"class":122},[116,1336,1337],{"class":118,"line":137},[116,1338,1339],{"class":122},"#[used]\n",[116,1341,1342,1344,1348,1350,1353,1356,1359,1362,1365,1367,1369,1372,1374,1377,1379,1382,1384,1387],{"class":118,"line":150},[116,1343,1297],{"class":126},[116,1345,1347],{"class":1346},"snvgF"," DATA",[116,1349,852],{"class":126},[116,1351,1352],{"class":122}," [",[116,1354,1355],{"class":143},"u8",[116,1357,1358],{"class":122},"; ",[116,1360,1361],{"class":1346},"4",[116,1363,1364],{"class":122},"] ",[116,1366,127],{"class":126},[116,1368,1352],{"class":122},[116,1370,1371],{"class":1346},"0",[116,1373,45],{"class":122},[116,1375,1376],{"class":1346},"1",[116,1378,45],{"class":122},[116,1380,1381],{"class":1346},"2",[116,1383,45],{"class":122},[116,1385,1386],{"class":1346},"3",[116,1388,1389],{"class":122},"];\n",[14,1391,1392,1394,1395,1397],{},[18,1393,1315],{}," prevents the compiler from optimizing away the symbol. ",[18,1396,1312],{}," places it in a custom section (advanced\u002Fembedded).",[27,1399,1401],{"id":1400},"target_feature",[18,1402,1403],{},"#[target_feature]",[104,1405,1406],{"language":106},[108,1407,1409],{"className":110,"code":1408,"language":106,"meta":112,"style":112},"#[target_feature(enable = \"avx2\")]\nunsafe fn avx2_func() {}\n",[18,1410,1411,1423],{"__ignoreMap":112},[116,1412,1413,1416,1418,1421],{"class":118,"line":119},[116,1414,1415],{"class":122},"#[target_feature(enable ",[116,1417,127],{"class":126},[116,1419,1420],{"class":130}," \"avx2\"",[116,1422,134],{"class":122},[116,1424,1425,1428,1430,1433],{"class":118,"line":137},[116,1426,1427],{"class":126},"unsafe",[116,1429,906],{"class":126},[116,1431,1432],{"class":143}," avx2_func",[116,1434,147],{"class":122},[14,1436,1437,1438,1440],{},"Enables CPU features for a specific function. Requires ",[18,1439,1427],{}," (calling on a CPU without the feature is UB).",[104,1442,1443],{"language":106},[108,1444,1446],{"className":110,"code":1445,"language":106,"meta":112,"style":112},"#[target_feature(enable = \"avx2\")]\n#[cfg(target_arch = \"x86_64\")]\nunsafe fn fast() {}\n\nif is_x86_feature_detected!(\"avx2\") {\n    unsafe { fast(); }\n}\n",[18,1447,1448,1458,1470,1481,1485,1499,1512],{"__ignoreMap":112},[116,1449,1450,1452,1454,1456],{"class":118,"line":119},[116,1451,1415],{"class":122},[116,1453,127],{"class":126},[116,1455,1420],{"class":130},[116,1457,134],{"class":122},[116,1459,1460,1463,1465,1468],{"class":118,"line":137},[116,1461,1462],{"class":122},"#[cfg(target_arch ",[116,1464,127],{"class":126},[116,1466,1467],{"class":130}," \"x86_64\"",[116,1469,134],{"class":122},[116,1471,1472,1474,1476,1479],{"class":118,"line":150},[116,1473,1427],{"class":126},[116,1475,906],{"class":126},[116,1477,1478],{"class":143}," fast",[116,1480,147],{"class":122},[116,1482,1483],{"class":118,"line":157},[116,1484,154],{"emptyLinePlaceholder":153},[116,1486,1487,1489,1492,1494,1497],{"class":118,"line":170},[116,1488,463],{"class":126},[116,1490,1491],{"class":143}," is_x86_feature_detected!",[116,1493,484],{"class":122},[116,1495,1496],{"class":130},"\"avx2\"",[116,1498,476],{"class":122},[116,1500,1501,1504,1506,1509],{"class":118,"line":180},[116,1502,1503],{"class":126},"    unsafe",[116,1505,813],{"class":122},[116,1507,1508],{"class":143},"fast",[116,1510,1511],{"class":122},"(); }\n",[116,1513,1514],{"class":118,"line":185},[116,1515,495],{"class":122},[27,1517,1519,45,1521],{"id":1518},"cold-inline",[18,1520,91],{},[18,1522,79],{},[104,1524,1525],{"language":106},[108,1526,1528],{"className":110,"code":1527,"language":106,"meta":112,"style":112},"#[cold]\nfn error_path() {}     \u002F\u002F hint: rare path\n",[18,1529,1530,1535],{"__ignoreMap":112},[116,1531,1532],{"class":118,"line":119},[116,1533,1534],{"class":122},"#[cold]\n",[116,1536,1537,1539,1542,1545],{"class":118,"line":137},[116,1538,140],{"class":126},[116,1540,1541],{"class":143}," error_path",[116,1543,1544],{"class":122},"() {}     ",[116,1546,1547],{"class":621},"\u002F\u002F hint: rare path\n",[27,1549,1551],{"id":1550},"track_caller",[18,1552,97],{},[104,1554,1555],{"language":106},[108,1556,1558],{"className":110,"code":1557,"language":106,"meta":112,"style":112},"#[track_caller]\nfn caller() -> &'static Location {\n    Location::caller()\n}\n",[18,1559,1560,1565,1589,1602],{"__ignoreMap":112},[116,1561,1562],{"class":118,"line":119},[116,1563,1564],{"class":122},"#[track_caller]\n",[116,1566,1567,1569,1572,1574,1576,1579,1582,1584,1587],{"class":118,"line":137},[116,1568,140],{"class":126},[116,1570,1571],{"class":143}," caller",[116,1573,912],{"class":122},[116,1575,915],{"class":126},[116,1577,1578],{"class":126}," &",[116,1580,1581],{"class":122},"'",[116,1583,1297],{"class":143},[116,1585,1586],{"class":143}," Location",[116,1588,1173],{"class":122},[116,1590,1591,1594,1596,1599],{"class":118,"line":150},[116,1592,1593],{"class":143},"    Location",[116,1595,268],{"class":126},[116,1597,1598],{"class":143},"caller",[116,1600,1601],{"class":122},"()\n",[116,1603,1604],{"class":118,"line":157},[116,1605,495],{"class":122},[14,1607,1608],{},"Captures the source location of the call site; useful for panic messages and assertion helpers.",[27,1610,1612],{"id":1611},"automatically_derived",[18,1613,1614],{},"#[automatically_derived]",[14,1616,1617,1618,1620],{},"Applied by ",[18,1619,515],{}," to prevent lints from firing on generated code.",[27,1622,1624,1627],{"id":1623},"repr-layout",[18,1625,1626],{},"#[repr(...)]"," (Layout)",[104,1629,1630],{"language":106},[108,1631,1633],{"className":110,"code":1632,"language":106,"meta":112,"style":112},"#[repr(C)]              \u002F\u002F C-compatible layout\n#[repr(transparent)]    \u002F\u002F same layout as a single field\n#[repr(packed)]         \u002F\u002F no padding\n#[repr(packed(1))]      \u002F\u002F explicit alignment\n#[repr(align(16))]      \u002F\u002F force alignment\n#[repr(C, u8)]           \u002F\u002F C layout + explicit enum discriminant width\n",[18,1634,1635,1649,1657,1665,1673,1681],{"__ignoreMap":112},[116,1636,1637,1640,1643,1646],{"class":118,"line":119},[116,1638,1639],{"class":122},"#[repr(",[116,1641,1642],{"class":143},"C",[116,1644,1645],{"class":122},")]              ",[116,1647,1648],{"class":621},"\u002F\u002F C-compatible layout\n",[116,1650,1651,1654],{"class":118,"line":137},[116,1652,1653],{"class":122},"#[repr(transparent)]    ",[116,1655,1656],{"class":621},"\u002F\u002F same layout as a single field\n",[116,1658,1659,1662],{"class":118,"line":150},[116,1660,1661],{"class":122},"#[repr(packed)]         ",[116,1663,1664],{"class":621},"\u002F\u002F no padding\n",[116,1666,1667,1670],{"class":118,"line":157},[116,1668,1669],{"class":122},"#[repr(packed(1))]      ",[116,1671,1672],{"class":621},"\u002F\u002F explicit alignment\n",[116,1674,1675,1678],{"class":118,"line":170},[116,1676,1677],{"class":122},"#[repr(align(16))]      ",[116,1679,1680],{"class":621},"\u002F\u002F force alignment\n",[116,1682,1683,1685,1687,1689,1691,1694],{"class":118,"line":180},[116,1684,1639],{"class":122},[116,1686,1642],{"class":143},[116,1688,45],{"class":122},[116,1690,1355],{"class":143},[116,1692,1693],{"class":122},")]           ",[116,1695,1696],{"class":621},"\u002F\u002F C layout + explicit enum discriminant width\n",[27,1698,1700],{"id":1699},"panic_handler",[18,1701,1702],{},"#[panic_handler]",[14,1704,1705,1706,1709],{},"In ",[18,1707,1708],{},"no_std"," environments:",[104,1711,1712],{"language":106},[108,1713,1715],{"className":110,"code":1714,"language":106,"meta":112,"style":112},"#[panic_handler]\nfn panic(_: &PanicInfo) -> ! { loop {} }\n",[18,1716,1717,1722],{"__ignoreMap":112},[116,1718,1719],{"class":118,"line":119},[116,1720,1721],{"class":122},"#[panic_handler]\n",[116,1723,1724,1726,1729,1732,1734,1736,1739,1742,1744,1747,1749,1752],{"class":118,"line":137},[116,1725,140],{"class":126},[116,1727,1728],{"class":143}," panic",[116,1730,1731],{"class":122},"(_",[116,1733,852],{"class":126},[116,1735,1578],{"class":126},[116,1737,1738],{"class":143},"PanicInfo",[116,1740,1741],{"class":122},") ",[116,1743,915],{"class":126},[116,1745,1746],{"class":126}," !",[116,1748,813],{"class":122},[116,1750,1751],{"class":126},"loop",[116,1753,1754],{"class":122}," {} }\n",[14,1756,1757],{},"Defines the panic behavior for a custom target.",[27,1759,1761],{"id":1760},"global_allocator",[18,1762,1763],{},"#[global_allocator]",[104,1765,1766],{"language":106},[108,1767,1769],{"className":110,"code":1768,"language":106,"meta":112,"style":112},"use std::alloc::{GlobalAlloc, Layout};\n\nstruct MyAlloc;\nunsafe impl GlobalAlloc for MyAlloc {\n    unsafe fn alloc(&self, layout: Layout) -> *mut u8 { \u002F* ... *\u002F }\n    unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) { \u002F* ... *\u002F }\n}\n\n#[global_allocator]\nstatic A: MyAlloc = MyAlloc;\n",[18,1770,1771,1800,1804,1813,1830,1871,1908,1912,1916,1921],{"__ignoreMap":112},[116,1772,1773,1776,1779,1781,1784,1786,1789,1792,1794,1797],{"class":118,"line":119},[116,1774,1775],{"class":126},"use",[116,1777,1778],{"class":143}," std",[116,1780,268],{"class":126},[116,1782,1783],{"class":143},"alloc",[116,1785,268],{"class":126},[116,1787,1788],{"class":122},"{",[116,1790,1791],{"class":143},"GlobalAlloc",[116,1793,45],{"class":122},[116,1795,1796],{"class":143},"Layout",[116,1798,1799],{"class":122},"};\n",[116,1801,1802],{"class":118,"line":137},[116,1803,154],{"emptyLinePlaceholder":153},[116,1805,1806,1808,1811],{"class":118,"line":150},[116,1807,279],{"class":126},[116,1809,1810],{"class":143}," MyAlloc",[116,1812,285],{"class":122},[116,1814,1815,1817,1820,1823,1826,1828],{"class":118,"line":157},[116,1816,1427],{"class":126},[116,1818,1819],{"class":126}," impl",[116,1821,1822],{"class":143}," GlobalAlloc",[116,1824,1825],{"class":126}," for",[116,1827,1810],{"class":143},[116,1829,1173],{"class":122},[116,1831,1832,1834,1836,1839,1841,1844,1847,1850,1852,1855,1857,1859,1862,1865,1867,1869],{"class":118,"line":170},[116,1833,1503],{"class":126},[116,1835,906],{"class":126},[116,1837,1838],{"class":143}," alloc",[116,1840,484],{"class":122},[116,1842,1843],{"class":126},"&",[116,1845,1846],{"class":1346},"self",[116,1848,1849],{"class":122},", layout",[116,1851,852],{"class":126},[116,1853,1854],{"class":143}," Layout",[116,1856,1741],{"class":122},[116,1858,915],{"class":126},[116,1860,1861],{"class":126}," *mut",[116,1863,1864],{"class":143}," u8",[116,1866,813],{"class":122},[116,1868,923],{"class":621},[116,1870,824],{"class":122},[116,1872,1873,1875,1877,1880,1882,1884,1886,1889,1891,1893,1895,1897,1899,1901,1904,1906],{"class":118,"line":180},[116,1874,1503],{"class":126},[116,1876,906],{"class":126},[116,1878,1879],{"class":143}," dealloc",[116,1881,484],{"class":122},[116,1883,1843],{"class":126},[116,1885,1846],{"class":1346},[116,1887,1888],{"class":122},", ptr",[116,1890,852],{"class":126},[116,1892,1861],{"class":126},[116,1894,1864],{"class":143},[116,1896,1849],{"class":122},[116,1898,852],{"class":126},[116,1900,1854],{"class":143},[116,1902,1903],{"class":122},") { ",[116,1905,923],{"class":621},[116,1907,824],{"class":122},[116,1909,1910],{"class":118,"line":185},[116,1911,495],{"class":122},[116,1913,1914],{"class":118,"line":198},[116,1915,154],{"emptyLinePlaceholder":153},[116,1917,1918],{"class":118,"line":208},[116,1919,1920],{"class":122},"#[global_allocator]\n",[116,1922,1923,1925,1928,1930,1932,1935,1937],{"class":118,"line":213},[116,1924,1297],{"class":126},[116,1926,1927],{"class":143}," A",[116,1929,852],{"class":126},[116,1931,1810],{"class":143},[116,1933,1934],{"class":126}," =",[116,1936,1810],{"class":143},[116,1938,285],{"class":122},[14,1940,1941,1942,602],{},"Replace Rust's default allocator (e.g., for ",[18,1943,1944],{},"jemalloc",[27,1946,1948,1951,1952],{"id":1947},"no_std-and-no_std",[18,1949,1950],{},"#[no_std]"," and ",[18,1953,1954],{},"#![no_std]",[104,1956,1957],{"language":106},[108,1958,1960],{"className":110,"code":1959,"language":106,"meta":112,"style":112},"#![no_std]\n",[18,1961,1962],{"__ignoreMap":112},[116,1963,1964],{"class":118,"line":119},[116,1965,1959],{"class":122},[14,1967,1968,1969,1972,1973,1976,1977,1979],{},"Disables ",[18,1970,1971],{},"std",", only ",[18,1974,1975],{},"core"," (+ optional ",[18,1978,1783],{},") available. For embedded\u002Fwasm\u002Fkernels.",[27,1981,1983],{"id":1982},"edition-related-attributes","Edition-Related Attributes",[37,1985,1986,1992],{},[40,1987,1988,1991],{},[18,1989,1990],{},"#![feature(...)]"," (nightly only)",[40,1993,1994,1997],{},[18,1995,1996],{},"#![allow(...)]"," for transition warnings between editions.",[27,1999,2001],{"id":2000},"feature-attributes","Feature Attributes",[104,2003,2004],{"language":106},[108,2005,2007],{"className":110,"code":2006,"language":106,"meta":112,"style":112},"#![feature(async_fn_traits)]   \u002F\u002F nightly\n",[18,2008,2009],{"__ignoreMap":112},[116,2010,2011,2014],{"class":118,"line":119},[116,2012,2013],{"class":122},"#![feature(async_fn_traits)]   ",[116,2015,2016],{"class":621},"\u002F\u002F nightly\n",[14,2018,2019,2020,312],{},"Unstable features require nightly + explicit ",[18,2021,2022],{},"#![feature]",[27,2024,2026],{"id":2025},"common-pitfalls","Common Pitfalls",[37,2028,2029,2043,2055,2070,2077,2085,2100,2111],{},[40,2030,2031,1294,2035,2037,2038,45,2040,2042],{},[2032,2033,2034],"strong",{},"Inner vs outer",[18,2036,24],{}," (inner) inside braces\u002F",[18,2039,1167],{},[18,2041,20],{}," (outer) before items.",[40,2044,2045,2050,2051,2054],{},[2032,2046,2047,2049],{},[18,2048,410],{}," doesn't type-check dead branches",": actually it does — both branches are type-checked. Use ",[18,2052,2053],{},"cfg_if!"," macro or modular code to fully isolate.",[40,2056,2057,2063,2064,502,2066,2069],{},[2032,2058,2059,2062],{},[18,2060,2061],{},"#[cfg_attr]"," placement",": same as ",[18,2065,410],{},[18,2067,2068],{},"#[derive]"," placement.",[40,2071,2072,2076],{},[2032,2073,2074],{},[18,2075,788],{}," can't be applied to local types (only exported across crates).",[40,2078,2079,2084],{},[2032,2080,2081,2083],{},[18,2082,879],{}," on a type"," warns when the value is dropped unused.",[40,2086,2087,1294,2093,2096,2097,2099],{},[2032,2088,2089,2092],{},[18,2090,2091],{},"#[allow]"," ignores lints in nested scopes",[18,2094,2095],{},"#[deny]"," in an inner scope overrides ",[18,2098,2091],{}," from the outer.",[40,2101,2102,2107,2108,2110],{},[2032,2103,2104],{},[18,2105,2106],{},"#[forbid]"," is sticky: an inner ",[18,2109,2091],{}," triggers a \"forbid overridden by allow\" error.",[40,2112,2113,2116,2117,2120],{},[2032,2114,2115],{},"Attribute parsing",": some attributes take ",[18,2118,2119],{},"key = \"value\"",", others take bare tokens; check the docs.",[27,2122,2124,451],{"id":2123},"cfg_if-macro",[18,2125,2053],{},[104,2127,2128],{"language":106},[108,2129,2131],{"className":110,"code":2130,"language":106,"meta":112,"style":112},"cfg_if::cfg_if! {\n    if #[cfg(unix)] {\n        fn posix_api() {}\n    } else if #[cfg(windows)] {\n        fn win_api() {}\n    } else {\n        fn other_api() {}\n    }\n}\n",[18,2132,2133,2144,2152,2162,2176,2185,2193,2202,2207],{"__ignoreMap":112},[116,2134,2135,2138,2140,2142],{"class":118,"line":119},[116,2136,2137],{"class":143},"cfg_if",[116,2139,268],{"class":126},[116,2141,2053],{"class":143},[116,2143,1173],{"class":122},[116,2145,2146,2149],{"class":118,"line":137},[116,2147,2148],{"class":126},"    if",[116,2150,2151],{"class":122}," #[cfg(unix)] {\n",[116,2153,2154,2157,2160],{"class":118,"line":150},[116,2155,2156],{"class":126},"        fn",[116,2158,2159],{"class":143}," posix_api",[116,2161,147],{"class":122},[116,2163,2164,2167,2170,2173],{"class":118,"line":157},[116,2165,2166],{"class":122},"    } ",[116,2168,2169],{"class":126},"else",[116,2171,2172],{"class":126}," if",[116,2174,2175],{"class":122}," #[cfg(windows)] {\n",[116,2177,2178,2180,2183],{"class":118,"line":170},[116,2179,2156],{"class":126},[116,2181,2182],{"class":143}," win_api",[116,2184,147],{"class":122},[116,2186,2187,2189,2191],{"class":118,"line":180},[116,2188,2166],{"class":122},[116,2190,2169],{"class":126},[116,2192,1173],{"class":122},[116,2194,2195,2197,2200],{"class":118,"line":185},[116,2196,2156],{"class":126},[116,2198,2199],{"class":143}," other_api",[116,2201,147],{"class":122},[116,2203,2204],{"class":118,"line":198},[116,2205,2206],{"class":122},"    }\n",[116,2208,2209],{"class":118,"line":208},[116,2210,495],{"class":122},[14,2212,2213,2214,2216],{},"Cleaner than stacked ",[18,2215,410],{}," attributes.",[27,2218,2220],{"id":2219},"summary","Summary",[14,2222,2223,2225,2226,2228,2229,502,2231,502,2233,2235,2236,2238,2239,502,2241,2243,2244,2247,2248,502,2250,2252],{},[18,2224,410],{}," controls what compiles; ",[18,2227,2068],{}," auto-implements traits; ",[18,2230,2091],{},[18,2232,2095],{},[18,2234,2106],{}," tune lints; ",[18,2237,788],{}," future-proofs APIs; ",[18,2240,879],{},[18,2242,934],{}," drive correctness; ",[18,2245,2246],{},"#[repr(C)]"," controls layout; ",[18,2249,1763],{},[18,2251,1702],{}," customize the runtime.",[14,2254,2255],{},"Next: Cargo features and release engineering.",[2257,2258,2259],"style",{},"html pre.shiki code .ssxIu, html code.shiki .ssxIu{--shiki-default:#24292E;--shiki-github-dark:#E1E4E8}html pre.shiki code .svdQ7, html code.shiki .svdQ7{--shiki-default:#D73A49;--shiki-github-dark:#F97583}html pre.shiki code .sJ6F3, html code.shiki .sJ6F3{--shiki-default:#032F62;--shiki-github-dark:#9ECBFF}html pre.shiki code .sIsaT, html code.shiki .sIsaT{--shiki-default:#6F42C1;--shiki-github-dark:#B392F0}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .github-dark .shiki span {color: var(--shiki-github-dark);background: var(--shiki-github-dark-bg);font-style: var(--shiki-github-dark-font-style);font-weight: var(--shiki-github-dark-font-weight);text-decoration: var(--shiki-github-dark-text-decoration);}html.github-dark .shiki span {color: var(--shiki-github-dark);background: var(--shiki-github-dark-bg);font-style: var(--shiki-github-dark-font-style);font-weight: var(--shiki-github-dark-font-weight);text-decoration: var(--shiki-github-dark-text-decoration);}html pre.shiki code .sdCPZ, html code.shiki .sdCPZ{--shiki-default:#6A737D;--shiki-github-dark:#6A737D}html pre.shiki code .snvgF, html code.shiki .snvgF{--shiki-default:#005CC5;--shiki-github-dark:#79B8FF}",{"title":112,"searchDepth":137,"depth":137,"links":2261},[2262,2272,2274,2275,2279,2280,2281,2282,2284,2285,2287,2288,2290,2291,2293,2294,2295,2297,2298,2299,2301,2302,2303,2304,2306],{"id":29,"depth":137,"text":30,"children":2263},[2264,2265,2266,2267,2269,2270],{"id":34,"depth":150,"text":35},{"id":71,"depth":150,"text":72},{"id":101,"depth":150,"text":102},{"id":288,"depth":150,"text":2268},"cfg Predicates",{"id":359,"depth":150,"text":359},{"id":407,"depth":150,"text":2271},"#[cfg] on Modules",{"id":446,"depth":137,"text":2273},"Compile-Time cfg! Macro",{"id":512,"depth":137,"text":515},{"id":605,"depth":137,"text":606,"children":2276},[2277,2278],{"id":677,"depth":150,"text":678},{"id":742,"depth":150,"text":743},{"id":785,"depth":137,"text":788},{"id":876,"depth":137,"text":879},{"id":931,"depth":137,"text":934},{"id":1011,"depth":137,"text":2283},"#[doc] Attributes",{"id":1121,"depth":137,"text":1122},{"id":1206,"depth":137,"text":2286},"#[path] for Module Files",{"id":1244,"depth":137,"text":1247},{"id":1309,"depth":137,"text":2289},"#[link_section], #[used]",{"id":1400,"depth":137,"text":1403},{"id":1518,"depth":137,"text":2292},"#[cold], #[inline]",{"id":1550,"depth":137,"text":97},{"id":1611,"depth":137,"text":1614},{"id":1623,"depth":137,"text":2296},"#[repr(...)] (Layout)",{"id":1699,"depth":137,"text":1702},{"id":1760,"depth":137,"text":1763},{"id":1947,"depth":137,"text":2300},"#[no_std] and #![no_std]",{"id":1982,"depth":137,"text":1983},{"id":2000,"depth":137,"text":2001},{"id":2025,"depth":137,"text":2026},{"id":2123,"depth":137,"text":2305},"cfg_if! Macro",{"id":2219,"depth":137,"text":2220},"Attributes are metadata annotations that influence compilation, linting, codegen, and tooling. They appear as #[...] (outer) or #![...] (inner, applies to the enclosing item\u002Fwhole crate).","md",{},"\u002Frust\u002F27-attributes-and-cfg",{"title":5,"description":2307},"rust\u002F27-attributes-and-cfg","fKyCrqFSwts71cc_hHb_DOjGuwEd9hQn9W0zY0VIEFk",1785944093273]