1. The Unstable Book
  2. 1. Compiler flags
    1. 1.1. branch_protection
    2. 1.2. cf_protection
    3. 1.3. check_cfg
    4. 1.4. codegen_backend
    5. 1.5. control_flow_guard
    6. 1.6. debug_info_for_profiling
    7. 1.7. dwarf_version
    8. 1.8. emit_stack_sizes
    9. 1.9. extern_options
    10. 1.10. location_detail
    11. 1.11. move_size_limit
    12. 1.12. no_unique_section_names
    13. 1.13. profile
    14. 1.14. profile_sample_use
    15. 1.15. remap_cwd_prefix
    16. 1.16. report_time
    17. 1.17. sanitizer
    18. 1.18. self_profile
    19. 1.19. self_profile_events
    20. 1.20. src_hash_algorithm
    21. 1.21. temps_dir
    22. 1.22. tls_model
    23. 1.23. unsound_mir_opts
    24. 1.24. virtual_function_elimination
  3. 2. Language features
    1. 2.1. aarch64_ver_target_feature
    2. 2.2. abi_amdgpu_kernel
    3. 2.3. abi_avr_interrupt
    4. 2.4. abi_c_cmse_nonsecure_call
    5. 2.5. abi_efiapi
    6. 2.6. abi_msp430_interrupt
    7. 2.7. abi_ptx
    8. 2.8. abi_thiscall
    9. 2.9. abi_unadjusted
    10. 2.10. abi_vectorcall
    11. 2.11. abi_x86_interrupt
    12. 2.12. adt_const_params
    13. 2.13. alloc_error_handler
    14. 2.14. allocator_internals
    15. 2.15. allow_internal_unsafe
    16. 2.16. allow_internal_unstable
    17. 2.17. anonymous_lifetime_in_impl_trait
    18. 2.18. arbitrary_enum_discriminant
    19. 2.19. arbitrary_self_types
    20. 2.20. arm_target_feature
    21. 2.21. asm_const
    22. 2.22. asm_experimental_arch
    23. 2.23. asm_sym
    24. 2.24. asm_unwind
    25. 2.25. associated_const_equality
    26. 2.26. associated_type_bounds
    27. 2.27. associated_type_defaults
    28. 2.28. async_closure
    29. 2.29. async_fn_in_trait
    30. 2.30. auto_traits
    31. 2.31. avx512_target_feature
    32. 2.32. box_patterns
    33. 2.33. box_syntax
    34. 2.34. bpf_target_feature
    35. 2.35. c_unwind
    36. 2.36. c_variadic
    37. 2.37. capture_disjoint_fields
    38. 2.38. cfg_sanitize
    39. 2.39. cfg_target_abi
    40. 2.40. cfg_target_compact
    41. 2.41. cfg_target_has_atomic
    42. 2.42. cfg_target_has_atomic_equal_alignment
    43. 2.43. cfg_target_thread_local
    44. 2.44. cfg_version
    45. 2.45. closure_lifetime_binder
    46. 2.46. closure_track_caller
    47. 2.47. cmpxchg16b_target_feature
    48. 2.48. cmse_nonsecure_entry
    49. 2.49. collapse_debuginfo
    50. 2.50. compiler_builtins
    51. 2.51. const_async_blocks
    52. 2.52. const_eval_limit
    53. 2.53. const_extern_fn
    54. 2.54. const_fn_floating_point_arithmetic
    55. 2.55. const_for
    56. 2.56. const_mut_refs
    57. 2.57. const_precise_live_drops
    58. 2.58. const_refs_to_cell
    59. 2.59. const_trait_impl
    60. 2.60. const_try
    61. 2.61. custom_inner_attributes
    62. 2.62. custom_test_frameworks
    63. 2.63. debugger_visualizer
    64. 2.64. decl_macro
    65. 2.65. default_alloc_error_handler
    66. 2.66. default_type_parameter_fallback
    67. 2.67. deprecated_safe
    68. 2.68. deprecated_suggestion
    69. 2.69. doc_auto_cfg
    70. 2.70. doc_cfg
    71. 2.71. doc_cfg_hide
    72. 2.72. doc_masked
    73. 2.73. doc_notable_trait
    74. 2.74. dropck_eyepatch
    75. 2.75. dyn_star
    76. 2.76. ermsb_target_feature
    77. 2.77. exclusive_range_pattern
    78. 2.78. exhaustive_patterns
    79. 2.79. extern_types
    80. 2.80. f16c_target_feature
    81. 2.81. ffi_const
    82. 2.82. ffi_pure
    83. 2.83. ffi_returns_twice
    84. 2.84. fn_align
    85. 2.85. fundamental
    86. 2.86. generator_clone
    87. 2.87. generators
    88. 2.88. generic_arg_infer
    89. 2.89. generic_assert
    90. 2.90. generic_associated_types_extended
    91. 2.91. generic_const_exprs
    92. 2.92. half_open_range_patterns
    93. 2.93. hexagon_target_feature
    94. 2.94. if_let_guard
    95. 2.95. imported_main
    96. 2.96. inherent_associated_types
    97. 2.97. inline_const
    98. 2.98. inline_const_pat
    99. 2.99. intra_doc_pointers
    100. 2.100. intrinsics
    101. 2.101. isa_attribute
    102. 2.102. lang_items
    103. 2.103. large_assignments
    104. 2.104. let_chains
    105. 2.105. link_cfg
    106. 2.106. link_llvm_intrinsics
    107. 2.107. linkage
    108. 2.108. lint_reasons
    109. 2.109. macro_metavar_expr
    110. 2.110. marker_trait_attr
    111. 2.111. min_specialization
    112. 2.112. mips_target_feature
    113. 2.113. more_qualified_paths
    114. 2.114. movbe_target_feature
    115. 2.115. must_not_suspend
    116. 2.116. naked_functions
    117. 2.117. native_link_modifiers_as_needed
    118. 2.118. native_link_modifiers_verbatim
    119. 2.119. needs_panic_runtime
    120. 2.120. negative_impls
    121. 2.121. never_type
    122. 2.122. never_type_fallback
    123. 2.123. no_core
    124. 2.124. no_coverage
    125. 2.125. no_sanitize
    126. 2.126. non_exhaustive_omitted_patterns_lint
    127. 2.127. object_safe_for_dispatch
    128. 2.128. omit_gdb_pretty_printer_section
    129. 2.129. optimize_attribute
    130. 2.130. panic_runtime
    131. 2.131. platform_intrinsics
    132. 2.132. plugin
    133. 2.133. powerpc_target_feature
    134. 2.134. precise_pointer_size_matching
    135. 2.135. prelude_import
    136. 2.136. proc_macro_hygiene
    137. 2.137. profiler_runtime
    138. 2.138. raw_dylib
    139. 2.139. raw_ref_op
    140. 2.140. register_tool
    141. 2.141. repr_simd
    142. 2.142. repr128
    143. 2.143. return_position_impl_trait_in_trait
    144. 2.144. riscv_target_feature
    145. 2.145. rtm_target_feature
    146. 2.146. rust_cold_cc
    147. 2.147. rustc_allow_const_fn_unstable
    148. 2.148. rustc_attrs
    149. 2.149. rustc_private
    150. 2.150. rustdoc_internals
    151. 2.151. rustdoc_missing_doc_code_examples
    152. 2.152. simd_ffi
    153. 2.153. specialization
    154. 2.154. sse4a_target_feature
    155. 2.155. staged_api
    156. 2.156. start
    157. 2.157. stmt_expr_attributes
    158. 2.158. strict_provenance
    159. 2.159. structural_match
    160. 2.160. target_feature_11
    161. 2.161. tbm_target_feature
    162. 2.162. test_2018_feature
    163. 2.163. test_unstable_lint
    164. 2.164. thread_local
    165. 2.165. trait_alias
    166. 2.166. trait_upcasting
    167. 2.167. transparent_unions
    168. 2.168. trivial_bounds
    169. 2.169. try_blocks
    170. 2.170. type_alias_impl_trait
    171. 2.171. type_ascription
    172. 2.172. type_changing_struct_update
    173. 2.173. unboxed_closures
    174. 2.174. unix_sigpipe
    175. 2.175. unsafe_pin_internals
    176. 2.176. unsized_fn_params
    177. 2.177. unsized_locals
    178. 2.178. unsized_tuple_coercion
    179. 2.179. used_with_arg
    180. 2.180. wasm_abi
    181. 2.181. wasm_target_feature
    182. 2.182. with_negative_coherence
    183. 2.183. yeet_expr
  4. 3. Library Features
    1. 3.1. absolute_path
    2. 3.2. addr_parse_ascii
    3. 3.3. alloc_error_hook
    4. 3.4. alloc_internals
    5. 3.5. alloc_layout_extra
    6. 3.6. allocator_api
    7. 3.7. arc_unwrap_or_clone
    8. 3.8. array_chunks
    9. 3.9. array_error_internals
    10. 3.10. array_into_iter_constructors
    11. 3.11. array_methods
    12. 3.12. array_try_from_fn
    13. 3.13. array_try_map
    14. 3.14. array_windows
    15. 3.15. array_zip
    16. 3.16. as_array_of_cells
    17. 3.17. assert_matches
    18. 3.18. async_iter_from_iter
    19. 3.19. async_iterator
    20. 3.20. atomic_bool_fetch_not
    21. 3.21. atomic_from_mut
    22. 3.22. atomic_mut_ptr
    23. 3.23. backtrace_frames
    24. 3.24. bench_black_box
    25. 3.25. bigint_helper_methods
    26. 3.26. binary_heap_as_slice
    27. 3.27. binary_heap_drain_sorted
    28. 3.28. binary_heap_into_iter_sorted
    29. 3.29. binary_heap_retain
    30. 3.30. bound_as_ref
    31. 3.31. bound_map
    32. 3.32. box_into_boxed_slice
    33. 3.33. box_into_inner
    34. 3.34. btree_drain_filter
    35. 3.35. btreemap_alloc
    36. 3.36. buf_read_has_data_left
    37. 3.37. build_hasher_simple_hash_one
    38. 3.38. byte_slice_trim_ascii
    39. 3.39. c_size_t
    40. 3.40. c_void_variant
    41. 3.41. can_vector
    42. 3.42. cell_leak
    43. 3.43. cell_update
    44. 3.44. cfg_accessible
    45. 3.45. cfg_eval
    46. 3.46. char_error_internals
    47. 3.47. char_indices_offset
    48. 3.48. char_internals
    49. 3.49. coerce_unsized
    50. 3.50. concat_bytes
    51. 3.51. concat_idents
    52. 3.52. const_align_of_val
    53. 3.53. const_align_of_val_raw
    54. 3.54. const_align_offset
    55. 3.55. const_alloc_error
    56. 3.56. const_alloc_layout
    57. 3.57. const_arguments_as_str
    58. 3.58. const_array_from_ref
    59. 3.59. const_array_into_iter_constructors
    60. 3.60. const_assert_type2
    61. 3.61. const_assume
    62. 3.62. const_bigint_helper_methods
    63. 3.63. const_black_box
    64. 3.64. const_bool_to_option
    65. 3.65. const_borrow
    66. 3.66. const_box
    67. 3.67. const_btree_new
    68. 3.68. const_caller_location
    69. 3.69. const_cell_into_inner
    70. 3.70. const_char_convert
    71. 3.71. const_clone
    72. 3.72. const_cmp
    73. 3.73. const_convert
    74. 3.74. const_cow_is_borrowed
    75. 3.75. const_cstr_methods
    76. 3.76. const_default_impls
    77. 3.77. const_deref
    78. 3.78. const_discriminant
    79. 3.79. const_eval_select
    80. 3.80. const_float_bits_conv
    81. 3.81. const_float_classify
    82. 3.82. const_fmt_arguments_new
    83. 3.83. const_fn_trait_ref_impls
    84. 3.84. const_format_args
    85. 3.85. const_heap
    86. 3.86. const_index_range_slice_index
    87. 3.87. const_inherent_unchecked_arith
    88. 3.88. const_int_unchecked_arith
    89. 3.89. const_intoiterator_identity
    90. 3.90. const_intrinsic_forget
    91. 3.91. const_intrinsic_raw_eq
    92. 3.92. const_io_structs
    93. 3.93. const_ip
    94. 3.94. const_ipv4
    95. 3.95. const_ipv6
    96. 3.96. const_is_char_boundary
    97. 3.97. const_likely
    98. 3.98. const_maybe_uninit_array_assume_init
    99. 3.99. const_maybe_uninit_as_mut_ptr
    100. 3.100. const_maybe_uninit_assume_init
    101. 3.101. const_maybe_uninit_assume_init_read
    102. 3.102. const_maybe_uninit_uninit_array
    103. 3.103. const_maybe_uninit_write
    104. 3.104. const_maybe_uninit_zeroed
    105. 3.105. const_nonnull_new
    106. 3.106. const_nonnull_slice_from_raw_parts
    107. 3.107. const_num_from_num
    108. 3.108. const_ops
    109. 3.109. const_option
    110. 3.110. const_option_cloned
    111. 3.111. const_option_ext
    112. 3.112. const_pin
    113. 3.113. const_pointer_byte_offsets
    114. 3.114. const_pref_align_of
    115. 3.115. const_ptr_as_ref
    116. 3.116. const_ptr_is_null
    117. 3.117. const_ptr_read
    118. 3.118. const_ptr_sub_ptr
    119. 3.119. const_ptr_write
    120. 3.120. const_raw_ptr_comparison
    121. 3.121. const_replace
    122. 3.122. const_result
    123. 3.123. const_result_drop
    124. 3.124. const_reverse
    125. 3.125. const_size_of_val
    126. 3.126. const_size_of_val_raw
    127. 3.127. const_slice_first_last
    128. 3.128. const_slice_from_mut_ptr_range
    129. 3.129. const_slice_from_ptr_range
    130. 3.130. const_slice_from_raw_parts_mut
    131. 3.131. const_slice_from_ref
    132. 3.132. const_slice_index
    133. 3.133. const_slice_ptr_len
    134. 3.134. const_slice_split_at_mut
    135. 3.135. const_slice_split_at_not_mut
    136. 3.136. const_socketaddr
    137. 3.137. const_str_from_utf8
    138. 3.138. const_str_from_utf8_unchecked_mut
    139. 3.139. const_swap
    140. 3.140. const_transmute_copy
    141. 3.141. const_type_id
    142. 3.142. const_type_name
    143. 3.143. const_unicode_case_lookup
    144. 3.144. const_unsafecell_get_mut
    145. 3.145. const_waker
    146. 3.146. const_weak_new
    147. 3.147. container_error_extra
    148. 3.148. control_flow_enum
    149. 3.149. convert_float_to_int
    150. 3.150. core_intrinsics
    151. 3.151. core_panic
    152. 3.152. core_private_bignum
    153. 3.153. core_private_diy_float
    154. 3.154. cow_is_borrowed
    155. 3.155. cstr_from_bytes_until_nul
    156. 3.156. cstr_internals
    157. 3.157. cursor_remaining
    158. 3.158. deadline_api
    159. 3.159. dec2flt
    160. 3.160. default_free_fn
    161. 3.161. derive_clone_copy
    162. 3.162. derive_eq
    163. 3.163. dir_entry_ext2
    164. 3.164. discriminant_kind
    165. 3.165. dispatch_from_dyn
    166. 3.166. div_duration
    167. 3.167. downcast_unchecked
    168. 3.168. drain_filter
    169. 3.169. drain_keep_rest
    170. 3.170. duration_checked_float
    171. 3.171. duration_constants
    172. 3.172. duration_consts_float
    173. 3.173. edition_panic
    174. 3.174. entry_insert
    175. 3.175. error_generic_member_access
    176. 3.176. error_in_core
    177. 3.177. error_iter
    178. 3.178. error_reporter
    179. 3.179. error_type_id
    180. 3.180. exact_size_is_empty
    181. 3.181. exclusive_wrapper
    182. 3.182. exit_status_error
    183. 3.183. exitcode_exit_method
    184. 3.184. extend_one
    185. 3.185. fd
    186. 3.186. fd_read
    187. 3.187. file_create_new
    188. 3.188. file_set_times
    189. 3.189. float_minimum_maximum
    190. 3.190. float_next_up_down
    191. 3.191. flt2dec
    192. 3.192. fmt_helpers_for_derive
    193. 3.193. fmt_internals
    194. 3.194. fn_traits
    195. 3.195. forget_unsized
    196. 3.196. format_args_nl
    197. 3.197. fs_try_exists
    198. 3.198. future_join
    199. 3.199. gen_future
    200. 3.200. generator_trait
    201. 3.201. generic_assert_internals
    202. 3.202. get_mut_unchecked
    203. 3.203. hash_drain_filter
    204. 3.204. hash_raw_entry
    205. 3.205. hash_set_entry
    206. 3.206. hasher_prefixfree_extras
    207. 3.207. hashmap_internals
    208. 3.208. hint_must_use
    209. 3.209. inplace_iteration
    210. 3.210. int_error_internals
    211. 3.211. int_log
    212. 3.212. int_roundings
    213. 3.213. integer_atomics
    214. 3.214. internal_output_capture
    215. 3.215. io_error_downcast
    216. 3.216. io_error_more
    217. 3.217. io_error_other
    218. 3.218. io_error_uncategorized
    219. 3.219. io_slice_advance
    220. 3.220. ip
    221. 3.221. is_some_with
    222. 3.222. is_sorted
    223. 3.223. iter_advance_by
    224. 3.224. iter_array_chunks
    225. 3.225. iter_collect_into
    226. 3.226. iter_from_generator
    227. 3.227. iter_intersperse
    228. 3.228. iter_is_partitioned
    229. 3.229. iter_next_chunk
    230. 3.230. iter_order_by
    231. 3.231. iter_partition_in_place
    232. 3.232. iterator_try_collect
    233. 3.233. iterator_try_reduce
    234. 3.234. layout_for_ptr
    235. 3.235. liballoc_internals
    236. 3.236. libstd_sys_internals
    237. 3.237. libstd_thread_internals
    238. 3.238. linked_list_cursors
    239. 3.239. linked_list_remove
    240. 3.240. linux_pidfd
    241. 3.241. local_key_cell_methods
    242. 3.242. log_syntax
    243. 3.243. main_separator_str
    244. 3.244. map_entry_replace
    245. 3.245. map_first_last
    246. 3.246. map_many_mut
    247. 3.247. map_try_insert
    248. 3.248. maybe_uninit_array_assume_init
    249. 3.249. maybe_uninit_as_bytes
    250. 3.250. maybe_uninit_slice
    251. 3.251. maybe_uninit_uninit_array
    252. 3.252. maybe_uninit_write_slice
    253. 3.253. mem_copy_fn
    254. 3.254. mixed_integer_ops
    255. 3.255. mutex_unlock
    256. 3.256. mutex_unpoison
    257. 3.257. new_uninit
    258. 3.258. nonnull_slice_from_raw_parts
    259. 3.259. nonzero_bits
    260. 3.260. nonzero_min_max
    261. 3.261. nonzero_ops
    262. 3.262. numfmt
    263. 3.263. once_cell
    264. 3.264. one_sided_range
    265. 3.265. option_get_or_insert_default
    266. 3.266. option_result_contains
    267. 3.267. option_zip
    268. 3.268. panic_abort
    269. 3.269. panic_always_abort
    270. 3.270. panic_backtrace_config
    271. 3.271. panic_can_unwind
    272. 3.272. panic_info_message
    273. 3.273. panic_internals
    274. 3.274. panic_unwind
    275. 3.275. panic_update_hook
    276. 3.276. path_file_prefix
    277. 3.277. pattern
    278. 3.278. peer_credentials_unix_socket
    279. 3.279. pin_deref_mut
    280. 3.280. pin_macro
    281. 3.281. pointer_byte_offsets
    282. 3.282. pointer_is_aligned
    283. 3.283. poll_ready
    284. 3.284. portable_simd
    285. 3.285. prelude_2024
    286. 3.286. print_internals
    287. 3.287. proc_macro_def_site
    288. 3.288. proc_macro_diagnostic
    289. 3.289. proc_macro_expand
    290. 3.290. proc_macro_internals
    291. 3.291. proc_macro_quote
    292. 3.292. proc_macro_span
    293. 3.293. proc_macro_span_shrink
    294. 3.294. proc_macro_tracked_env
    295. 3.295. process_exitcode_internals
    296. 3.296. process_internals
    297. 3.297. profiler_runtime_lib
    298. 3.298. provide_any
    299. 3.299. ptr_as_uninit
    300. 3.300. ptr_internals
    301. 3.301. ptr_mask
    302. 3.302. ptr_metadata
    303. 3.303. ptr_sub_ptr
    304. 3.304. ptr_to_from_bits
    305. 3.305. pub_crate_should_not_need_unstable_attr
    306. 3.306. raw_os_nonzero
    307. 3.307. raw_slice_split
    308. 3.308. raw_vec_internals
    309. 3.309. read_buf
    310. 3.310. receiver_trait
    311. 3.311. restricted_std
    312. 3.312. result_contains_err
    313. 3.313. result_flattening
    314. 3.314. result_option_inspect
    315. 3.315. round_char_boundary
    316. 3.316. rt
    317. 3.317. saturating_int_assign_impl
    318. 3.318. saturating_int_impl
    319. 3.319. sealed
    320. 3.320. seek_stream_len
    321. 3.321. set_ptr_value
    322. 3.322. setgroups
    323. 3.323. sgx_platform
    324. 3.324. sized_type_properties
    325. 3.325. slice_as_chunks
    326. 3.326. slice_concat_ext
    327. 3.327. slice_concat_trait
    328. 3.328. slice_flatten
    329. 3.329. slice_from_ptr_range
    330. 3.330. slice_group_by
    331. 3.331. slice_index_methods
    332. 3.332. slice_internals
    333. 3.333. slice_iter_mut_as_mut_slice
    334. 3.334. slice_partition_dedup
    335. 3.335. slice_pattern
    336. 3.336. slice_ptr_get
    337. 3.337. slice_ptr_len
    338. 3.338. slice_range
    339. 3.339. slice_split_at_unchecked
    340. 3.340. slice_swap_unchecked
    341. 3.341. slice_take
    342. 3.342. solid_ext
    343. 3.343. sort_floats
    344. 3.344. sort_internals
    345. 3.345. split_array
    346. 3.346. split_as_slice
    347. 3.347. std_internals
    348. 3.348. stdio_makes_pipe
    349. 3.349. stdsimd
    350. 3.350. step_trait
    351. 3.351. str_internals
    352. 3.352. str_split_as_str
    353. 3.353. str_split_inclusive_as_str
    354. 3.354. str_split_whitespace_as_str
    355. 3.355. strict_provenance_atomic_ptr
    356. 3.356. string_extend_from_within
    357. 3.357. string_remove_matches
    358. 3.358. sync_unsafe_cell
    359. 3.359. tcp_linger
    360. 3.360. tcp_quickack
    361. 3.361. tcplistener_into_incoming
    362. 3.362. test
    363. 3.363. thin_box
    364. 3.364. thread_id_value
    365. 3.365. thread_local_internals
    366. 3.366. thread_spawn_unchecked
    367. 3.367. trace_macros
    368. 3.368. track_path
    369. 3.369. transmutability
    370. 3.370. trusted_len
    371. 3.371. trusted_random_access
    372. 3.372. trusted_step
    373. 3.373. try_find
    374. 3.374. try_reserve_kind
    375. 3.375. try_trait_v2
    376. 3.376. try_trait_v2_residual
    377. 3.377. try_trait_v2_yeet
    378. 3.378. tuple_trait
    379. 3.379. type_name_of_val
    380. 3.380. unchecked_math
    381. 3.381. unicode_internals
    382. 3.382. unix_chown
    383. 3.383. unix_set_mark
    384. 3.384. unix_socket_abstract
    385. 3.385. unix_socket_ancillary_data
    386. 3.386. unix_socket_peek
    387. 3.387. unsize
    388. 3.388. unwrap_infallible
    389. 3.389. unzip_option
    390. 3.390. update_panic_count
    391. 3.391. utf16_extra
    392. 3.392. utf16_extra_const
    393. 3.393. utf8_chunks
    394. 3.394. variant_count
    395. 3.395. vec_into_raw_parts
    396. 3.396. vec_split_at_spare
    397. 3.397. waker_getters
    398. 3.398. wasi_ext
    399. 3.399. windows_by_handle
    400. 3.400. windows_c
    401. 3.401. windows_handle
    402. 3.402. windows_net
    403. 3.403. windows_process_exit_code_from
    404. 3.404. windows_process_extensions_async_pipes
    405. 3.405. windows_process_extensions_force_quotes
    406. 3.406. windows_process_extensions_main_thread_handle
    407. 3.407. windows_stdio
    408. 3.408. wrapping_int_impl
    409. 3.409. wrapping_next_power_of_two
    410. 3.410. write_all_vectored
    411. 3.411. yeet_desugar_details

The Rust Unstable Book

Compiler flags