{"id":435973,"date":"2024-10-18T21:00:40","date_gmt":"2024-10-18T21:00:40","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=435973"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=435973","title":{"rendered":"<span>Rust 1.82.0: cargo info, AArch64 \u0434\u043b\u044f macOS \u0432 tier1, use&lt;..&gt;, \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u0438 \u0434\u0440\u0443\u0433\u043e\u0435<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 Rust \u0440\u0430\u0434\u0430 \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043e \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 \u2014 1.82.0. Rust \u2014 \u044d\u0442\u043e \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p> <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Rust, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0447\u0435\u0440\u0435\u0437 <code>rustup<\/code>, \u0442\u043e \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 1.82.0 \u0432\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<p> <\/p>\n<pre><code class=\"plaintext\">$ rustup update stable<\/code><\/pre>\n<p> <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0449\u0451 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d <code>rustup<\/code>, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0441 <a href=\"https:\/\/www.rust-lang.org\/install.html\" rel=\"nofollow noopener noreferrer\">\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b<\/a> \u043d\u0430\u0448\u0435\u0433\u043e \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/doc.rust-lang.org\/nightly\/releases.html#version-1820-2024-10-17\" rel=\"nofollow noopener noreferrer\">\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f \u043a \u0432\u044b\u043f\u0443\u0441\u043a\u0443<\/a> \u043d\u0430 GitHub.<\/p>\n<p> <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u0430\u043c \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0443\u0449\u0438\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0438, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043d\u0430\u043b beta (<code>rustup default beta<\/code>) \u0438\u043b\u0438 nightly (<code>rustup default nightly<\/code>). \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, <a href=\"https:\/\/github.com\/rust-lang\/rust\/issues\/new\/choose\" rel=\"nofollow noopener noreferrer\">\u0441\u043e\u043e\u0431\u0449\u0430\u0439\u0442\u0435<\/a> \u043e\u0431\u043e \u0432\u0441\u0435\u0445 \u0432\u0441\u0442\u0440\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0432\u0430\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u0445.<\/p>\n<p><a name=\"habracut\"><\/a> <\/p>\n<h2 id=\"chto-stabilizirovano-v-1820\">\u0427\u0442\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0432 1.82.0<\/h2>\n<p> <\/p>\n<h3 id=\"cargo-info\"><code>cargo info<\/code><\/h3>\n<p> <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0443 Cargo \u0435\u0441\u0442\u044c <a href=\"https:\/\/doc.rust-lang.org\/nightly\/cargo\/commands\/cargo-info.html\" rel=\"nofollow noopener noreferrer\"><code>\u043f\u043e\u0434\u043a\u043e\u043c\u0430\u043d\u0434\u0430 info<\/code><\/a> \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043f\u0430\u043a\u0435\u0442\u0435 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435. \u041d\u0435 \u043f\u0440\u043e\u0448\u043b\u043e \u0438 \u0434\u0435\u0441\u044f\u0442\u0438 \u043b\u0435\u0442, \u043a\u0430\u043a \u043c\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0438 <a href=\"https:\/\/github.com\/rust-lang\/cargo\/issues\/948\" rel=\"nofollow noopener noreferrer\">\u0432\u0430\u0448\u0443 \u043f\u0440\u043e\u0441\u044c\u0431\u0443<\/a>! \u0417\u0430 \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0435 \u0433\u043e\u0434\u044b \u0431\u044b\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439, \u043d\u043e \u044d\u0442\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 <a href=\"https:\/\/crates.io\/crates\/cargo-information\" rel=\"nofollow noopener noreferrer\">cargo-information<\/a> \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0441\u0442\u0430\u043b\u0430 \u0447\u0430\u0441\u0442\u044c\u044e Cargo.<\/p>\n<p> <\/p>\n<p>\u041a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0438\u0436\u0435 \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435 \u0432\u044b\u0432\u043e\u0434 <code>cargo info cc<\/code>:<\/p>\n<p> <\/p>\n<pre><code class=\"plaintext\">cc #build-dependencies A build-time dependency for Cargo build scripts to assist in invoking the native C compiler to compile native C code into a static archive to be linked into Rust code. version: 1.1.23 (latest 1.1.30) license: MIT OR Apache-2.0 rust-version: 1.63 documentation: https:\/\/docs.rs\/cc homepage: https:\/\/github.com\/rust-lang\/cc-rs repository: https:\/\/github.com\/rust-lang\/cc-rs crates.io: https:\/\/crates.io\/crates\/cc\/1.1.23 features:   jobserver = []   parallel  = [dep:libc, dep:jobserver] note: to see how you depend on cc, run cargo tree --invert --package cc@1.1.23<\/code><\/pre>\n<p> <\/p>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e <code>cargo info<\/code> \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432\u0435\u0440\u0441\u0438\u044e \u043f\u0430\u043a\u0435\u0442\u0430 \u0438\u0437 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e <code>Cargo.lock<\/code>, \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0432\u043e\u0439 \u0438\u043c\u0435\u0435\u0442\u0441\u044f. \u0422\u0430\u043a\u0436\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0438 \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e <code>cargo info cc@1.1.30<\/code>.<\/p>\n<p> <\/p>\n<h3 id=\"izmenenie-celevyh-platform-apple\">\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0446\u0435\u043b\u0435\u0432\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c Apple<\/h3>\n<p> <\/p>\n<h4 id=\"macos-na-64-bitnom-arm-teper-na-urovne-1\">MacOS \u043d\u0430 64-\u0431\u0438\u0442\u043d\u043e\u043c ARM \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 1<\/h4>\n<p> <\/p>\n<p>\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 <code>aarch64-apple-darwin<\/code> \u0434\u043b\u044f macOS \u043d\u0430 64-\u0431\u0438\u0442\u043d\u043e\u043c ARM (\u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e \u0447\u0438\u043f\u043e\u0432 M1 \u0438 \u0431\u043e\u043b\u0435\u0435 \u043c\u043e\u043b\u043e\u0434\u044b\u0435 Apple silicon CPU) \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0432\u044b\u0441\u043e\u0447\u0430\u0439\u0448\u0438\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b. \u041a\u0430\u043a \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0430 <a href=\"https:\/\/doc.rust-lang.org\/stable\/rustc\/platform-support.html\" rel=\"nofollow noopener noreferrer\">\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c<\/a>, \u043a\u0430\u0436\u0434\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 Rust \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u0432\u0441\u0435 \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043e\u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u043d\u044f\u0442\u043e. \u042d\u0442\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0431\u044b\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0432 Rust 1.49, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u043e\u043d\u0430 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 <code>rustup<\/code>, \u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u0432\u0438\u0442 \u0435\u0451 \u0432 \u043e\u0434\u0438\u043d \u0440\u044f\u0434 \u0441 Linux \u043d\u0430 ARM64 \u0438 macOS, Linux \u0438\u043b\u0438 Windows \u043d\u0430 x86.<\/p>\n<p> <\/p>\n<h4 id=\"platforma-mac-catalyst-teper-na-urovne-2\">\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 Mac Catalyst \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 2<\/h4>\n<p> <\/p>\n<p><a href=\"https:\/\/developer.apple.com\/mac-catalyst\/\" rel=\"nofollow noopener noreferrer\">Mac Catalyst<\/a> \u2014 \u044d\u0442\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f Apple, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c iOS-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0442\u0438\u0432\u043d\u043e \u043d\u0430 Mac. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 iOS-\u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041f\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0437\u0430 \u0441\u0447\u0451\u0442 \u044d\u0442\u043e\u0433\u043e <code>cargo test --target=aarch64-apple-ios-macabi --target=x86_64-apple-ios-macabi<\/code> \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 (\u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0432\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c iOS, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0432 \u043f\u0430\u043a\u0435\u0442 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0438\u043b\u0438 \u0432 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435).<\/p>\n<p> <\/p>\n<p><a href=\"https:\/\/doc.rust-lang.org\/nightly\/rustc\/platform-support\/apple-ios-macabi.html\" rel=\"nofollow noopener noreferrer\">\u042d\u0442\u0430 \u0446\u0435\u043b\u0435\u0432\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430<\/a> \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u0430 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <code>rustup target add aarch64-apple-ios-macabi x86_64-apple-ios-macabi<\/code>, \u0442\u0430\u043a \u0447\u0442\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u0430\u043c\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0438 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u0438 \u0432 iOS-\u043f\u043e\u0434\u043e\u0431\u043d\u043e\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438.<\/p>\n<p> <\/p>\n<h3 id=\"tochnyy-zahvat-v-sintaksise-use\">\u0422\u043e\u0447\u043d\u044b\u0439 \u0437\u0430\u0445\u0432\u0430\u0442 \u0432 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 <code>use&lt;..&gt;<\/code><\/h3>\n<p> <\/p>\n<p>Rust \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 <code>use &lt;..&gt;<\/code> \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0433\u0440\u0430\u043d\u0438\u0446 <code>impl Trait<\/code> \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0442\u0435\u043c, \u043a\u0430\u043a\u0438\u0435 \u043e\u0431\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0445\u0432\u0430\u0447\u0435\u043d\u044b.<\/p>\n<p> <\/p>\n<p>\u0422\u0438\u043f\u044b \u0432 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 <code>impl Trait<\/code> (RPIT) \u0432 Rust <em>\u0437\u0430\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0442<\/em> \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u043e\u0431\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b. \u0417\u0430\u0445\u0432\u0430\u0442 \u044d\u0442\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u0442\u0438\u043f\u0430\u0445, \u0447\u0442\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0439.<\/p>\n<p> <\/p>\n<p>\u0412 Rust 2021 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u0438\u0445 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432 \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0445 \u0442\u0438\u043f\u0430\u0445 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0441\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438, \u0435\u0441\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438 \u0432 \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u043c \u0442\u0438\u043f\u0435. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u043e\u0439:<\/p>\n<p> <\/p>\n<pre><code class=\"rust\">\/\/@ edition: 2021 fn f(x: &amp;()) -&gt; impl Sized { x }<\/code><\/pre>\n<p> <\/p>\n<pre><code class=\"plaintext\">error[E0700]: hidden type for `impl Sized` captures lifetime that does not appear in bounds  --&gt; src\/main.rs:1:30   | 1 | fn f(x: &amp;()) -&gt; impl Sized { x }   |         ---     ----------   ^   |         |       |   |         |       opaque type defined here   |         hidden type `&amp;()` captures the anonymous lifetime defined here   | help: add a `use&lt;...&gt;` bound to explicitly capture `'_`   | 1 | fn f(x: &amp;()) -&gt; impl Sized + use&lt;'_&gt; { x }   |                            +++++++++<\/code><\/pre>\n<p> <\/p>\n<p>\u0421 \u043d\u043e\u0432\u044b\u043c \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u043e\u043c <code>use&lt;..&gt;<\/code> \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u043e\u0439 \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u0434 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p> <\/p>\n<pre><code class=\"rust\">fn f(x: &amp;()) -&gt; impl Sized + use&lt;'_&gt; { x }<\/code><\/pre>\n<p> <\/p>\n<p>\u0420\u0430\u043d\u0435\u0435 \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0444\u0438\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0442\u0440\u0435\u0439\u0442, \u0443\u0441\u043b\u043e\u0432\u043d\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 <code>Captures<\/code>, \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e:<\/p>\n<p> <\/p>\n<pre><code class=\"rust\">trait Captures&lt;T: ?Sized&gt; {} impl&lt;T: ?Sized, U: ?Sized&gt; Captures&lt;T&gt; for U {}  fn f(x: &amp;()) -&gt; impl Sized + Captures&lt;&amp;'_ ()&gt; { x }<\/code><\/pre>\n<p> <\/p>\n<p>\u042d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u043b\u043e\u0441\u044c <a href=\"https:\/\/github.com\/rust-lang\/rfcs\/blob\/master\/text\/3498-lifetime-capture-rules-2024.md#the-captures-trick\" rel=\"nofollow noopener noreferrer\"><code>\"\u0442\u0440\u044e\u043a \u0441 Captures<\/code>&#171;<\/a>, \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0432 \u044d\u0442\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n<p> <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u043c\u0435\u043d\u0435\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439, \u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443. \u0412\u044b \u043c\u043e\u0433\u043b\u0438 \u0435\u0433\u043e \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u044c \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c <a href=\"https:\/\/github.com\/rust-lang\/rfcs\/blob\/master\/text\/3498-lifetime-capture-rules-2024.md#the-outlives-trick\" rel=\"nofollow noopener noreferrer\">&#171;\u0442\u0440\u044e\u043a \u0441 \u0432\u044b\u0436\u0438\u0432\u0430\u043d\u0438\u0435\u043c&#187;<\/a>. \u0420\u0430\u043d\u0435\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u0430\u0436\u0435 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0421\u0443\u0442\u044c \u0442\u0440\u044e\u043a\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u043b\u0430\u0441\u044c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c:<\/p>\n<p> <\/p>\n<pre><code class=\"rust\">fn f(x: &amp;()) -&gt; impl Sized + '_ { x }<\/code><\/pre>\n<p> <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u0432 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e <code>+ use&lt;'_&gt;<\/code> \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u0432 <a href=\"https:\/\/github.com\/rust-lang\/rfcs\/blob\/master\/text\/3498-lifetime-capture-rules-2024.md\" rel=\"nofollow noopener noreferrer\">RFC 3498<\/a>. \u041e\u0434\u043d\u0430\u043a\u043e \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0447\u0440\u0435\u0437\u043c\u0435\u0440\u043d\u043e\u043c\u0443 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0441\u043d\u043e\u0432\u0430\u043d \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435:<\/p>\n<p> <\/p>\n<pre><code class=\"rust\">struct Ctx&lt;'cx&gt;(&amp;'cx u8);  fn f&lt;'cx, 'a&gt;(     cx: Ctx&lt;'cx&gt;,     x: &amp;'a u8, ) -&gt; impl Iterator&lt;Item = &amp;'a u8&gt; + 'cx {     core::iter::once_with(move || {         eprintln!(\"LOG: {}\", cx.0);         x     }) \/\/~^ ERROR lifetime may not live long enough }<\/code><\/pre>\n<p> <\/p>\n<p>\u041c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0443\u0434\u0430\u043b\u0438\u0442\u044c <code>+ 'cx<\/code>, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0437\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0441\u043a\u0440\u044b\u0442\u043e\u043c \u0442\u0438\u043f\u0435 \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043e. \u041c\u044b \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f <code>'a: 'cx<\/code>, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u044b \u0436\u0438\u0437\u043d\u0438 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u044b, \u0438 \u0432 \u0446\u0435\u043b\u043e\u043c \u043d\u0435\u0432\u0435\u0440\u043d\u043e, \u0447\u0442\u043e <code>'a<\/code> \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0435\u0442 <code>'cx<\/code>. \u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e <code>+ use&lt;'cx, 'a&gt;<\/code>, \u0442\u043e \u0432\u0441\u0451 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u043d\u0430\u0434\u043e, \u0438 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0443\u0434\u0443\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b.<\/p>\n<p> <\/p>\n<p>\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043c\u044b \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0441\u0435\u0433\u043e\u0434\u043d\u044f, \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 <code>use&lt;..&gt;<\/code> \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u0442\u0440\u0435\u0439\u0442\u0430\u0445 \u0438\u043b\u0438 \u0432 \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0442\u0440\u0435\u0439\u0442\u043e\u0432 (\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0442\u0430\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0443\u0436\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e), \u0438 \u0432 \u043d\u0451\u043c \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u044b \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0431\u0449\u0435\u0433\u043e \u0442\u0438\u043f\u0430 \u0438 <code>const<\/code> \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438. \u041c\u044b \u043d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u044d\u0442\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0441\u043d\u044f\u0442\u044c.<\/p>\n<p> <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432 Rust 2024 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0435 \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0431\u0443\u0434\u0443\u0442 &#171;\u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c&#187; \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 <code>use&lt;..&gt;<\/code> (\u0438\u043b\u0438 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u0445\u0438\u0442\u0440\u043e\u0441\u0442\u0435\u0439). \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0432 \u043d\u043e\u0432\u043e\u0439 \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u0438 \u043d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0436\u0438\u0437\u043d\u0438 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438. \u042d\u0442\u043e \u043b\u0443\u0447\u0448\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0438 \u043c\u044b \u0432\u0438\u0434\u0435\u043b\u0438 \u043c\u043d\u043e\u0433\u043e \u0441\u0432\u0438\u0434\u0435\u0442\u0435\u043b\u044c\u0441\u0442\u0432 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u043a\u043e\u0434 \u0447\u0438\u0449\u0435. \u0412 Rust 2024 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 <code>use&lt;..&gt;<\/code> \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0443\u0436\u0438\u0442\u044c \u0432\u0430\u0436\u043d\u044b\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c \u043e\u0442\u043a\u0430\u0437\u0430 \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.<\/p>\n<p> <\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0435 <code>use&lt;..&gt;<\/code>, \u0437\u0430\u0445\u0432\u0430\u0442\u0435 \u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u043e \u043a Rust 2024, \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0433\u043b\u0430\u0432\u0443 <a href=\"https:\/\/doc.rust-lang.org\/nightly\/edition-guide\/rust-2024\/rpit-lifetime-capture.html\" rel=\"nofollow noopener noreferrer\">RPITT lifetime capture rules<\/a> \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043f\u043e \u0440\u0435\u0434\u0430\u043a\u0446\u0438\u044f\u043c. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0431 \u043e\u0431\u0449\u0435\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0432 \u043d\u0430\u0448\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u043c \u043f\u043e\u0441\u0442\u0435 \u0432 \u0431\u043b\u043e\u0433\u0435 \u2014 <a href=\"https:\/\/blog.rust-lang.org\/2024\/09\/05\/impl-trait-capture-rules.html\" rel=\"nofollow noopener noreferrer\"><code>Changes to impl Trait<\/code> in Rust 2024<\/a>.<\/p>\n<p> <\/p>\n<h3 id=\"sobstvennyy-sintaksis-dlya-sozdaniya-syrogo-ukazatelya\">\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u044b\u0440\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f<\/h3>\n<p> <\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438\u043c\u0435\u0435\u0442 \u0434\u0435\u043b\u043e \u0441 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u0438\u0441\u044f\u0449\u0438\u043c\u0438, \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0441\u043c\u0435\u0449\u0435\u043d\u044b \u0438\u043b\u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445 \u0441 <code>repr(packed)<\/code>. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u0430\u0436\u043d\u043e \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043a\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044e. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b <code>&amp;<\/code> \u0438 <code>&amp;mut<\/code> \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b, \u0442\u0430\u043a \u043a\u0430\u043a \u043e\u043d\u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u0441\u0441\u044b\u043b\u043a\u0443. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0441\u044b\u0440\u043e\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c, \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c.<\/p>\n<p> <\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u0433\u043e\u0434\u044b \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043c\u0430\u043a\u0440\u043e\u0441\u044b <code>std::ptr::addr_of!<\/code> \u0438 <code>std::ptr::addr_of_mut!<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c \u0436\u0435 \u043d\u0430\u0441\u0442\u0430\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439: <code>addr_of!(expr)<\/code> \u0441\u0442\u0430\u043b <code>&amp;raw const expr<\/code>, \u0430 <code>addr_of_mut!(expr)<\/code> \u2014 <code>&amp;raw mut expr<\/code>. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p> <\/p>\n<pre><code class=\"rust\">#[repr(packed)] struct Packed {     not_aligned_field: i32, }  fn main() {     let p = Packed { not_aligned_field: 1_82 };      \/\/ \u042d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044e!     \/\/ \u0422\u0430\u043a\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c     \/\/let ptr = &amp;p.not_aligned_field as *const i32;      \/\/ \u042d\u0442\u043e \u0441\u0442\u0430\u0440\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f     let ptr = std::ptr::addr_of!(p.not_aligned_field);      \/\/ \u0410 \u044d\u0442\u043e \u2014 \u043d\u043e\u0432\u044b\u0439     let ptr = &amp;raw const p.not_aligned_field;      \/\/ \u041e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044e \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c     \/\/ \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e `val = *ptr` \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c,     \/\/ \u0442\u0430\u043a \u043a\u0430\u043a \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u0432\u044b\u0440\u043e\u0432\u043d\u0435\u043d!     let val = unsafe { ptr.read_unaligned() }; }<\/code><\/pre>\n<p> <\/p>\n<p>\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430 \u044d\u0442\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a <a href=\"https:\/\/www.ralfj.de\/blog\/2024\/08\/14\/places.html\" rel=\"nofollow noopener noreferrer\">\u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u0435\u0441\u0442\u0430<\/a>. \u0412 \u043d\u0451\u043c \u0442\u0430\u043a\u0436\u0435 \u0438\u0437\u0431\u0435\u0433\u0430\u0435\u0442\u0441\u044f \u0442\u0435\u0440\u043c\u0438\u043d address-of \u043f\u0440\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f. \u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u2014 \u044d\u0442\u043e <a href=\"https:\/\/rust-lang.github.io\/rfcs\/3559-rust-has-provenance.html\" rel=\"nofollow noopener noreferrer\">\u043d\u0435\u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0435, \u0447\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0430\u0434\u0440\u0435\u0441<\/a>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 Rust \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u0442\u0430\u043a\u0438\u0445 \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u0432, \u043a\u0430\u043a address-of, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u043c\u0435\u043a\u0430\u044e\u0442 \u043d\u0430 (\u043b\u043e\u0436\u043d\u0443\u044e) \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432.<\/p>\n<p> <\/p>\n<h3 id=\"bezopasnyy-kod-v-unsafe-extern\">\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u043a\u043e\u0434 \u0432 <code>unsafe extern<\/code><\/h3>\n<p> <\/p>\n<p>\u041a\u043e\u0434 \u043d\u0430 Rust \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u0422\u0438\u043f\u044b \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440 \u044d\u0442\u0438\u0445 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0431\u043b\u043e\u043a\u0435 <code>extern<\/code>. \u0418\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432\u043d\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 <code>extern<\/code> \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e, \u043d\u043e \u043c\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u043c \u043f\u0438\u0441\u0430\u0442\u044c <code>unsafe<\/code> \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u0432 \u0441\u0430\u043c\u043e\u043c \u0431\u043b\u043e\u043a\u0435 <code>extern<\/code>.<\/p>\n<p> <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u043b\u0438 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430 \u0432 \u0431\u043b\u043e\u043a\u0435 <code>extern<\/code> \u043d\u0435\u0432\u0435\u0440\u043d\u0430, \u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044e. \u0411\u0443\u0434\u0435\u0442 \u043b\u0438 \u044d\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043f\u0438\u0441\u0430\u043b <code>extern<\/code> \u0431\u043b\u043e\u043a, \u0438\u043b\u0438 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442?<\/p>\n<p> <\/p>\n<p>\u041c\u044b \u0440\u0435\u0448\u0438\u043b\u0438, \u0447\u0442\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u043f\u0438\u0448\u0443\u0449\u0438\u0439 \u0431\u043b\u043e\u043a <code>extern<\/code>, \u043d\u0435\u0441\u0451\u0442 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0437\u0430 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u044b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435\u0441\u044f \u0432 \u043d\u0451\u043c, \u0431\u044b\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c\u0438, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u043f\u0438\u0441\u0430\u0442\u044c <code>unsafe extern<\/code>:<\/p>\n<p> <\/p>\n<pre><code class=\"rust\">unsafe extern {     pub safe static TAU: f64;     pub safe fn sqrt(x: f64) -&gt; f64;     pub unsafe fn strlen(p: *const u8) -&gt; usize; }<\/code><\/pre>\n<p> <\/p>\n<p>\u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432 \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u0431\u043b\u043e\u043a\u0435 <code>unsafe extern<\/code> \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u044b \u043a\u0430\u043a \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435 \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430. \u0412 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u043c \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0437\u0432\u0430\u0442\u044c <code>sqrt<\/code> \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <code>unsafe<\/code>. \u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u044b \u043d\u0438 \u043a\u0430\u043a <code>safe<\/code>, \u043d\u0438 \u043a\u0430\u043a <code>unsafe<\/code>, \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f <code>unsafe<\/code>.<\/p>\n<p> <\/p>\n<p>\u0412 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0445 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043e\u0449\u0440\u044f\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <code>unsafe extern<\/code> \u0441\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430\u043c\u0438 \u043a\u043e\u0434\u0430. \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 Rust 2024, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <code>unsafe extern<\/code> \u0441\u0442\u0430\u043d\u0435\u0442 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c.<\/p>\n<p> <\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441\u043c. \u0432 <a href=\"https:\/\/github.com\/rust-lang\/rfcs\/blob\/master\/text\/3484-unsafe-extern-blocks.md\" rel=\"nofollow noopener noreferrer\">RFC 3484<\/a> \u0438 \u0433\u043b\u0430\u0432\u0435 <a href=\"https:\/\/doc.rust-lang.org\/nightly\/edition-guide\/rust-2024\/unsafe-extern.html\" rel=\"nofollow noopener noreferrer\">\u00ab\u041d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435 extern \u0431\u043b\u043e\u043a\u0438\u00bb<\/a> \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043f\u043e \u0438\u0437\u0434\u0430\u043d\u0438\u044e.<\/p>\n<p> <\/p>\n<h3 id=\"nebezopasnye-atributy\">\u041d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b<\/h3>\n<p> <\/p>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b Rust, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <a href=\"https:\/\/doc.rust-lang.org\/reference\/abi.html#the-no_mangle-attribute\" rel=\"nofollow noopener noreferrer\"><code>no_mangle<\/code><\/a>, \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f <a href=\"https:\/\/github.com\/rust-lang\/rust\/issues\/28179\" rel=\"nofollow noopener noreferrer\"><code>\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432\u043d\u0435 \u0431\u043b\u043e\u043a\u043e\u0432 unsafe<\/code><\/a>. \u0415\u0441\u043b\u0438 \u0431\u044b \u044d\u0442\u043e \u0431\u044b\u043b \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043a\u043e\u0434, \u043c\u044b \u0431\u044b \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0431\u044b\u043b \u043f\u043e\u043c\u0435\u0449\u0435\u043d \u0432 <code>unsafe {}<\/code>. \u041d\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043d\u0435 \u0438\u043c\u0435\u043b\u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c\u043e\u0433\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0434\u043e\u0440\u0432\u0430\u0442\u044c \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 Rust, \u044d\u0442\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c\u0438 \u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p> <\/p>\n<pre><code class=\"rust\">#[unsafe(no_mangle)] pub fn my_global_function() { }<\/code><\/pre>\n<p> <\/p>\n<p>\u0421\u0442\u0430\u0440\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 (\u0431\u0435\u0437 <code>unsafe<\/code>) \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u0441\u0451 \u0435\u0449\u0451 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f, \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u043d\u0443\u0442\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0438 \u0441\u0442\u0430\u043d\u0435\u0442 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u0432 Rust 2024.<\/p>\n<p> <\/p>\n<p>\u042d\u0442\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b:<\/p>\n<p> <\/p>\n<ul>\n<li><code>no_mangle<\/code><\/li>\n<li><code>link_section<\/code><\/li>\n<li><code>export_name<\/code><\/li>\n<\/ul>\n<p> <\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441\u043c. \u0432 \u0433\u043b\u0430\u0432\u0435 <a href=\"https:\/\/doc.rust-lang.org\/nightly\/edition-guide\/rust-2024\/unsafe-attributes.html\" rel=\"nofollow noopener noreferrer\">&#171;\u041d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b&#187;<\/a> \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430 \u043f\u043e \u0438\u0437\u0434\u0430\u043d\u0438\u044e.<\/p>\n<p> <\/p>\n<h3 id=\"isklyuchenie-pustyh-tipov-pri-sopostavlenii-s-obrazcom\">\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0443\u0441\u0442\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u043f\u0440\u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0441 \u043e\u0431\u0440\u0430\u0437\u0446\u043e\u043c<\/h3>\n<p> <\/p>\n<p>\u0428\u0430\u0431\u043b\u043e\u043d\u044b, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u0443\u0441\u0442\u044b\u043c (\u0442.\u0435. \u043d\u0435\u043e\u0431\u0438\u0442\u0430\u0435\u043c\u044b\u043c) \u0442\u0438\u043f\u0430\u043c \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c:<\/p>\n<p> <\/p>\n<pre><code class=\"rust\">use std::convert::Infallible; pub fn unwrap_without_panic&lt;T&gt;(x: Result&lt;T, Infallible&gt;) -&gt; T {     let Ok(x) = x; \/\/ `Err` \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f     x }<\/code><\/pre>\n<p> <\/p>\n<p>\u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 \u043f\u0443\u0441\u0442\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a <code>enum Void {}<\/code>, \u0438\u043b\u0438 \u0441\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438 \u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u0441 \u0432\u0438\u0434\u0438\u043c\u044b\u043c \u043f\u0443\u0441\u0442\u044b\u043c \u043f\u043e\u043b\u0435\u043c \u0438 \u0431\u0435\u0437 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <code>#[non_exhaustive]<\/code>. \u042d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0432 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0438 \u0441 \u0442\u0438\u043f\u043e\u043c <code>never !<\/code>, \u0445\u043e\u0442\u044f \u044d\u0442\u043e\u0442 \u0442\u0438\u043f \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0435\u0449\u0451 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u0435\u043d.<\/p>\n<p> <\/p>\n<p>\u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u043f\u0443\u0441\u0442\u044b\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u044b. \u041f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u0441 \u043d\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u043f\u0440\u043e\u043f\u0443\u0441\u043a \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u0443\u0441\u0442\u043e\u043c\u0443 \u0442\u0438\u043f\u0443 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u0441\u044b\u043b\u043a\u0443, \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u0438\u043b\u0438 \u043f\u043e\u043b\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f:<\/p>\n<p> <\/p>\n<pre><code class=\"rust\">pub fn unwrap_ref_without_panic&lt;T&gt;(x: &amp;Result&lt;T, Infallible&gt;) -&gt; &amp;T {     match x {         Ok(x) =&gt; x,         \/\/ \u044d\u0442\u0430 \u0432\u0435\u0442\u0432\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u0441\u044b\u043b\u043a\u0430         Err(infallible) =&gt; match *infallible {},     } }<\/code><\/pre>\n<p> <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432 \u0441 \u043a\u0440\u0435\u0439\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0442\u044f\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0440\u0441\u0438\u0439 Rust, \u0432\u0435\u0442\u0432\u0438 <code>match<\/code> \u0441 \u043f\u0443\u0441\u0442\u044b\u043c\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c\u0438 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u043e\u043e\u0431\u0449\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u043c \u043a\u043e\u0434\u0435, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c.<\/p>\n<p> <\/p>\n<h3 id=\"nan-i-const\">NaN \u0438 <code>const<\/code><\/h3>\n<p> <\/p>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 (<code>f32<\/code> \u0438 <code>f64<\/code>) \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b \u0441\u0432\u043e\u0435\u0439 \u0442\u043e\u043d\u043a\u043e\u0441\u0442\u044c\u044e. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u0440\u0438\u0447\u0438\u043d \u044d\u0442\u043e\u0433\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 NaN. NaN \u2014 \u044d\u0442\u043e \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 &#171;Not a Number&#187; (&#171;\u043d\u0435 \u0447\u0438\u0441\u043b\u043e&#187;), \u043e\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 <code>0.0 \/ 0.0<\/code>. \u0422\u043e\u043d\u043a\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 NaN \u0434\u0435\u043b\u0430\u0435\u0442 \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f NaN: \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 NaN \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>f.is_sign_positive()<\/code>, \u0430 \u0442\u0430\u043a\u0436\u0435 &#171;\u043f\u043e\u043b\u0435\u0437\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443&#187;, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>f.to_bits()<\/code>. \u041e\u0431\u0430 \u043e\u043d\u0438, \u043e\u0434\u043d\u0430\u043a\u043e, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u044e\u0442\u0441\u044f <code>==<\/code> (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>false<\/code> \u0434\u043b\u044f NaN). \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0432\u0435\u0441\u044c\u043c\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\u0445, \u0434\u0435\u0442\u0430\u043b\u0438 \u0442\u043e\u0433\u043e, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f NaN \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0438\u043b\u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0438 \u043a\u0430\u043a\u043e\u0432\u0430 \u0435\u0433\u043e \u0442\u043e\u0447\u043d\u0430\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430, \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\u0445. \u0427\u0442\u043e\u0431\u044b \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443, Rust \u0438 \u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c LLVM \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e \u043a \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439, \u043a\u043e\u0433\u0434\u0430 \u0442\u043e\u0447\u043d\u044b\u0439 \u0447\u0438\u0441\u043b\u043e\u0432\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f, \u043d\u043e \u044d\u0442\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 NaN. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>f * 1.0<\/code> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f <code>f<\/code>. \u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u043b\u0438 <code>f<\/code> \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f NaN, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u043e\u0447\u043d\u044b\u0439 \u0431\u0438\u0442\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430!<\/p>\n<p> <\/p>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u043f\u0443\u0441\u043a\u0430 Rust \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u0430\u0432\u0438\u043b \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 NaN. \u042d\u0442\u043e\u0442 \u043d\u0430\u0431\u043e\u0440 <em>\u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f<\/em> \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c, \u0438 \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 <code>(0.0 \/ 0.0).is_sign_positive()<\/code>, \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b, \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043e\u043a\u0440\u0443\u0436\u0430\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u0434\u0430. \u041a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0434\u0443\u043c\u0430\u043d \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u044b\u043c, \u043e\u0431\u044f\u0437\u0430\u043d \u0438\u0437\u0431\u0435\u0433\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <code>to_bits<\/code> \u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>f.signum() == 1.0<\/code> \u0432\u043c\u0435\u0441\u0442\u043e <code>f.is_sign_positive()<\/code>. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0431\u044b\u043b\u0438 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 Rust-\u043a\u043e\u0434\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0430 NaN. \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a\u043e\u0432\u044b \u0442\u043e\u0447\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 <a href=\"https:\/\/doc.rust-lang.org\/std\/primitive.f32.html#nan-bit-patterns\" rel=\"nofollow noopener noreferrer\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439<\/a>.<\/p>\n<p> <\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u0435\u043c\u0430\u043d\u0442\u0438\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 NaN \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430, \u0432 \u044d\u0442\u043e\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439 \u0432 <code>const fn<\/code>. \u041f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c \u0432\u044b\u0448\u0435, \u0442\u0430\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u0430\u043a <code>(0.0 \/ 0.0).is_sign_positive()<\/code>, \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443 \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043d\u0435 \u043e\u0448\u0438\u0431\u043a\u0430, \u0438 \u043a\u043e\u0434 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u043b\u0430\u0433\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e <code>const fn<\/code> \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0438 \u0442\u043e\u043c\u0443 \u0436\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443.<\/p>\n<p> <\/p>\n<h3 id=\"konstanty-kak-neposredstvennye-elementy-sborki\">\u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043a\u0430\u043a \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u0431\u043e\u0440\u043a\u0438<\/h3>\n<p> <\/p>\n<p>\u041e\u043f\u0435\u0440\u0430\u043d\u0434 \u0441\u0431\u043e\u0440\u043a\u0438 <code>const<\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0446\u0435\u043b\u044b\u0435 \u0447\u0438\u0441\u043b\u0430 \u043a\u0430\u043a \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0431\u0435\u0437 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u0445 \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u0434\u043b\u044f <a href=\"https:\/\/man7.org\/linux\/man-pages\/man2\/write.2.html\" rel=\"nofollow noopener noreferrer\"><code>write<\/code><\/a> \u0432\u0440\u0443\u0447\u043d\u0443\u044e:<\/p>\n<p> <\/p>\n<pre><code class=\"rust\">const WRITE_SYSCALL: c_int = 0x01; \/\/ syscall 1 is `write` const STDOUT_HANDLE: c_int = 0x01; \/\/ `stdout` has file handle 1 const MSG: &amp;str = \"Hello, world!\\n\";  let written: usize;  \/\/ \u0421\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430: `ssize_t write(int fd, const void buf[], size_t count)` unsafe {     core::arch::asm!(         \"mov rax, {SYSCALL} \/\/ rax \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u043e\u043c\u0435\u0440 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430\",         \"mov rdi, {OUTPUT}  \/\/ rdi \u2014 `fd` (\u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442)\",         \"mov rdx, {LEN}     \/\/ rdx \u2014 `count` (\u0442\u0440\u0435\u0442\u0438\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442)\",         \"syscall            \/\/ \u0432\u044b\u0437\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0432\u044b\u0437\u043e\u0432\u0430\",         \"mov {written}, rax \/\/ \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\",         SYSCALL = const WRITE_SYSCALL,         OUTPUT = const STDOUT_HANDLE,         LEN = const MSG.len(),         in(\"rsi\") MSG.as_ptr(), \/\/ rsi - `buf *` (\u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442)         written = out(reg) written,     ); }  assert_eq!(written, MSG.len());<\/code><\/pre>\n<p> <\/p>\n<p>\u0412\u044b\u0432\u043e\u0434:<\/p>\n<p> <\/p>\n<pre><code class=\"plaintext\">Hello, world!<\/code><\/pre>\n<p> <\/p>\n<p><a href=\"https:\/\/play.rust-lang.org\/?version=stable&amp;mode=debug&amp;edition=2021&amp;gist=0cf8e21335b38011b49156c6c65929bc\" rel=\"nofollow noopener noreferrer\">\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0443<\/a>.<\/p>\n<p> <\/p>\n<p>\u0412 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u043c \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <code>LEN = const MSG.len()<\/code> \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 <code>LEN<\/code> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 <code>MSG.len()<\/code>. \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0435 (\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e <code>14<\/code>):<\/p>\n<p> <\/p>\n<pre><code class=\"plaintext\">lea     rsi, [rip + .L__unnamed_3] mov     rax, 1    # rax holds the syscall number mov     rdi, 1    # rdi is `fd` (first argument) mov     rdx, 14   # rdx is `count` (third argument) syscall # invoke the syscall mov     rax, rax  # save the return value<\/code><\/pre>\n<p> <\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 <a href=\"https:\/\/doc.rust-lang.org\/reference\/inline-assembly.html\" rel=\"nofollow noopener noreferrer\">\u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435<\/a>.<\/p>\n<p> <\/p>\n<h3 id=\"bezopasnoe-razymenovanie-unsafe-static\">\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u0440\u0430\u0437\u044b\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 unsafe <code>static<\/code><\/h3>\n<p> <\/p>\n<p>\u042d\u0442\u043e\u0442 \u043a\u043e\u0434 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0437\u0440\u0435\u0448\u0451\u043d:<\/p>\n<p> <\/p>\n<pre><code class=\"rust\">static mut STATIC_MUT: Type = Type::new(); extern \"C\" {     static EXTERN_STATIC: Type; } fn main() {      let static_mut_ptr = &amp;raw mut STATIC_MUT;      let extern_static_ptr = &amp;raw const EXTERN_STATIC; }<\/code><\/pre>\n<p> <\/p>\n<p>\u0412 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f <code>STATIC_MUT<\/code> \u0438 <code>EXTERN_STATIC<\/code> \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f <a href=\"https:\/\/doc.rust-lang.org\/reference\/expressions.html#place-expressions-and-value-expressions\" rel=\"nofollow noopener noreferrer\">\u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u043c\u0435\u0441\u0442\u0430<\/a>. \u0420\u0430\u043d\u0435\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u043d\u0435 \u0437\u043d\u0430\u043b\u0438, \u0447\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <code>raw ref<\/code> \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u043c\u0435\u0441\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u043d\u0434\u0430, \u0438 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b\u0438 \u0435\u0433\u043e \u043a\u0430\u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0442, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c.<\/p>\n<p> <\/p>\n<p>\u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435, \u0435\u0441\u043b\u0438 \u0432\u044b \u043e\u0442\u043a\u043b\u043e\u043d\u044f\u0435\u0442\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 <code>unused_unsafe<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u0442\u0430\u0440\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445. \u0421\u0442\u0430\u0440\u0430\u0439\u0442\u0435\u0441\u044c \u0430\u043d\u043d\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>#[allow(unused_unsafe)]<\/code>, \u0435\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0440\u0441\u0438\u0439 Rust, \u043a\u0430\u043a \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435:<\/p>\n<p> <\/p>\n<pre><code class=\"diff\"> static mut STATIC_MUT: Type = Type::new();  fn main() { +    #[allow(unused_unsafe)]      let static_mut_ptr = unsafe { std::ptr::addr_of_mut!(STATIC_MUT) };  }<\/code><\/pre>\n<p> <\/p>\n<p>\u041e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0431\u0443\u0434\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Rust \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0442 \u044d\u0442\u043e \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 <code>static<\/code>.<\/p>\n<p> <\/p>\n<h3 id=\"stabilizirovannye-api\">\u0421\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 API<\/h3>\n<p> <\/p>\n<ul>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/thread\/struct.Builder.html#method.spawn_unchecked\" rel=\"nofollow noopener noreferrer\"><code>std::thread::Builder::spawn_unchecked<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/str\/struct.CharIndices.html#method.offset\" rel=\"nofollow noopener noreferrer\"><code>std::str::CharIndices::offset<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/option\/enum.Option.html#method.is_none_or\" rel=\"nofollow noopener noreferrer\"><code>std::option::Option::is_none_or<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/iter\/trait.Iterator.html#method.is_sorted\" rel=\"nofollow noopener noreferrer\"><code>Iterator::is_sorted<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/iter\/trait.Iterator.html#method.is_sorted_by\" rel=\"nofollow noopener noreferrer\"><code>Iterator::is_sorted_by<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/iter\/trait.Iterator.html#method.is_sorted_by_key\" rel=\"nofollow noopener noreferrer\"><code>Iterator::is_sorted_by_key<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/future\/struct.Ready.html#method.into_inner\" rel=\"nofollow noopener noreferrer\"><code>std::future::Ready::into_inner<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/iter\/fn.repeat_n.html\" rel=\"nofollow noopener noreferrer\"><code>std::iter::repeat_n<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/iter\/struct.Take.html#impl-DoubleEndedIterator-for-Take%3CRepeat%3CT%3E%3E\" rel=\"nofollow noopener noreferrer\"><code>impl&lt;T: Clone&gt; DoubleEndedIterator for Take&lt;Repeat&lt;T&gt;&gt;<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/iter\/struct.Take.html#impl-ExactSizeIterator-for-Take%3CRepeat%3CT%3E%3E\" rel=\"nofollow noopener noreferrer\"><code>impl&lt;T: Clone&gt; ExactSizeIterator for Take&lt;Repeat&lt;T&gt;&gt;<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/iter\/struct.Take.html#impl-ExactSizeIterator-for-Take%3CRepeatWith%3CF%3E%3E\" rel=\"nofollow noopener noreferrer\"><code>impl&lt;T: Clone&gt; ExactSizeIterator for Take&lt;RepeatWith&lt;T&gt;&gt;<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/collections\/binary_heap\/struct.Iter.html#impl-Default-for-Iter%3C'_,+T%3E\" rel=\"nofollow noopener noreferrer\"><code>impl Default for std::collections::binary_heap::Iter<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/collections\/btree_map\/struct.RangeMut.html#impl-Default-for-RangeMut%3C'_,+K,+V%3E\" rel=\"nofollow noopener noreferrer\"><code>impl Default for std::collections::btree_map::RangeMut<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/collections\/btree_map\/struct.ValuesMut.html#impl-Default-for-ValuesMut%3C'_,+K,+V%3E\" rel=\"nofollow noopener noreferrer\"><code>impl Default for std::collections::btree_map::ValuesMut<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/collections\/vec_deque\/struct.Iter.html#impl-Default-for-Iter%3C'_,+T%3E\" rel=\"nofollow noopener noreferrer\"><code>impl Default for std::collections::vec_deque::Iter<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/collections\/vec_deque\/struct.IterMut.html#impl-Default-for-IterMut%3C'_,+T%3E\" rel=\"nofollow noopener noreferrer\"><code>impl Default for std::collections::vec_deque::IterMut<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/rc\/struct.Rc.html#method.new_uninit\" rel=\"nofollow noopener noreferrer\"><code>Rc&lt;T&gt;::new_uninit<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/rc\/struct.Rc.html#method.assume_init\" rel=\"nofollow noopener noreferrer\"><code>Rc&lt;T&gt;::assume_init<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/rc\/struct.Rc.html#method.new_uninit_slice\" rel=\"nofollow noopener noreferrer\"><code>Rc&lt;[T]&gt;::new_uninit_slice<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/rc\/struct.Rc.html#method.assume_init-1\" rel=\"nofollow noopener noreferrer\"><code>Rc&lt;[MaybeUninit&lt;T&gt;]&gt;::assume_init<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/sync\/struct.Arc.html#method.new_uninit\" rel=\"nofollow noopener noreferrer\"><code>Arc&lt;T&gt;::new_uninit<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/sync\/struct.Arc.html#method.assume_init\" rel=\"nofollow noopener noreferrer\"><code>Arc&lt;T&gt;::assume_init<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/sync\/struct.Arc.html#method.new_uninit_slice\" rel=\"nofollow noopener noreferrer\"><code>Arc&lt;[T]&gt;::new_uninit_slice<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/sync\/struct.Arc.html#method.assume_init-1\" rel=\"nofollow noopener noreferrer\"><code>Arc&lt;[MaybeUninit&lt;T&gt;]&gt;::assume_init<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/boxed\/struct.Box.html#method.new_uninit\" rel=\"nofollow noopener noreferrer\"><code>Box&lt;T&gt;::new_uninit<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/boxed\/struct.Box.html#method.assume_init\" rel=\"nofollow noopener noreferrer\"><code>Box&lt;T&gt;::assume_init<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/boxed\/struct.Box.html#method.new_uninit_slice\" rel=\"nofollow noopener noreferrer\"><code>Box&lt;[T]&gt;::new_uninit_slice<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/boxed\/struct.Box.html#method.assume_init-1\" rel=\"nofollow noopener noreferrer\"><code>Box&lt;[MaybeUninit&lt;T&gt;]&gt;::assume_init<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/core\/arch\/x86_64\/fn._bextri_u64.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::x86_64::_bextri_u64<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/core\/arch\/x86_64\/fn._bextri_u32.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::x86_64::_bextri_u32<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/core\/arch\/x86\/fn._mm_broadcastsi128_si256.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::x86::_mm_broadcastsi128_si256<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/core\/arch\/x86\/fn._mm256_stream_load_si256.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::x86::_mm256_stream_load_si256<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/core\/arch\/x86\/fn._tzcnt_u16.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::x86::_tzcnt_u16<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/core\/arch\/x86\/fn._mm_extracti_si64.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::x86::_mm_extracti_si64<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/core\/arch\/x86\/fn._mm_inserti_si64.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::x86::_mm_inserti_si64<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/core\/arch\/x86\/fn._mm_storeu_si16.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::x86::_mm_storeu_si16<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/core\/arch\/x86\/fn._mm_storeu_si32.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::x86::_mm_storeu_si32<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/core\/arch\/x86\/fn._mm_storeu_si64.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::x86::_mm_storeu_si64<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/core\/arch\/x86\/fn._mm_loadu_si16.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::x86::_mm_loadu_si16<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/core\/arch\/x86\/fn._mm_loadu_si32.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::x86::_mm_loadu_si32<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.u8x16_relaxed_swizzle.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::u8x16_relaxed_swizzle<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.i8x16_relaxed_swizzle.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::i8x16_relaxed_swizzle<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.i32x4_relaxed_trunc_f32x4.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::i32x4_relaxed_trunc_f32x4<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.u32x4_relaxed_trunc_f32x4.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::u32x4_relaxed_trunc_f32x4<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.i32x4_relaxed_trunc_f64x2_zero.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::i32x4_relaxed_trunc_f64x2_zero<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.u32x4_relaxed_trunc_f64x2_zero.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::u32x4_relaxed_trunc_f64x2_zero<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.f32x4_relaxed_madd.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::f32x4_relaxed_madd<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.f32x4_relaxed_nmadd.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::f32x4_relaxed_nmadd<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.f64x2_relaxed_madd.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::f64x2_relaxed_madd<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.f64x2_relaxed_nmadd.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::f64x2_relaxed_nmadd<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.i8x16_relaxed_laneselect.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::i8x16_relaxed_laneselect<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.u8x16_relaxed_laneselect.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::u8x16_relaxed_laneselect<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.i16x8_relaxed_laneselect.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::i16x8_relaxed_laneselect<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.u16x8_relaxed_laneselect.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::u16x8_relaxed_laneselect<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.i32x4_relaxed_laneselect.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::i32x4_relaxed_laneselect<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.u32x4_relaxed_laneselect.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::u32x4_relaxed_laneselect<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.i64x2_relaxed_laneselect.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::i64x2_relaxed_laneselect<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.u64x2_relaxed_laneselect.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::u64x2_relaxed_laneselect<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.f32x4_relaxed_min.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::f32x4_relaxed_min<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.f32x4_relaxed_max.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::f32x4_relaxed_max<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.f64x2_relaxed_min.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::f64x2_relaxed_min<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.f64x2_relaxed_max.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::f64x2_relaxed_max<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.i16x8_relaxed_q15mulr.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::i16x8_relaxed_q15mulr<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.u16x8_relaxed_q15mulr.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::u16x8_relaxed_q15mulr<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.i16x8_relaxed_dot_i8x16_i7x16.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::i16x8_relaxed_dot_i8x16_i7x16<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.u16x8_relaxed_dot_i8x16_i7x16.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::u16x8_relaxed_dot_i8x16_i7x16<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.i32x4_relaxed_dot_i8x16_i7x16_add.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::i32x4_relaxed_dot_i8x16_i7x16_add<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/core\/arch\/wasm32\/fn.u32x4_relaxed_dot_i8x16_i7x16_add.html\" rel=\"nofollow noopener noreferrer\"><code>core::arch::wasm32::u32x4_relaxed_dot_i8x16_i7x16_add<\/code><\/a><\/li>\n<\/ul>\n<p> <\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 API \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 <code>const<\/code>:<\/p>\n<p> <\/p>\n<ul>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/task\/struct.Waker.html#method.from_raw\" rel=\"nofollow noopener noreferrer\"><code>std::task::Waker::from_raw<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/task\/struct.Context.html#method.from_waker\" rel=\"nofollow noopener noreferrer\"><code>std::task::Context::from_waker<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/task\/struct.Context.html#method.waker\" rel=\"nofollow noopener noreferrer\"><code>std::task::Context::waker<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/primitive.u32.html#method.from_str_radix\" rel=\"nofollow noopener noreferrer\"><code>${integer}::from_str_radix<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/nightly\/std\/num\/struct.ParseIntError.html#method.kind\" rel=\"nofollow noopener noreferrer\"><code>std::num::ParseIntError::kind<\/code><\/a><\/li>\n<\/ul>\n<p> <\/p>\n<h3 id=\"prochie-izmeneniya\">\u041f\u0440\u043e\u0447\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f<\/h3>\n<p> <\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0432\u0441\u0451, \u0447\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u043e\u0441\u044c \u0432 <a href=\"https:\/\/github.com\/rust-lang\/rust\/releases\/tag\/1.82.0\" rel=\"nofollow noopener noreferrer\">Rust<\/a>, <a href=\"https:\/\/github.com\/rust-lang\/cargo\/blob\/master\/CHANGELOG.md#cargo-182-2024-10-17\" rel=\"nofollow noopener noreferrer\">Cargo<\/a> \u0438 <a href=\"https:\/\/github.com\/rust-lang\/rust-clippy\/blob\/master\/CHANGELOG.md#rust-182\" rel=\"nofollow noopener noreferrer\">Clippy<\/a>.<\/p>\n<p> <\/p>\n<h2 id=\"kto-rabotal-nad-1820\">\u041a\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430\u0434 1.82.0<\/h2>\n<p> <\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u043b\u044e\u0434\u0438 \u0441\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0432\u043c\u0435\u0441\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c Rust 1.82.0. \u0411\u0435\u0437 \u0432\u0430\u0441 \u043c\u044b \u0431\u044b \u043d\u0435 \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0438\u0441\u044c. <a href=\"https:\/\/thanks.rust-lang.org\/rust\/1.82.0\/\" rel=\"nofollow noopener noreferrer\">\u0421\u043f\u0430\u0441\u0438\u0431\u043e!<\/a><\/p>\n<p> <\/p>\n<h2 id=\"ot-perevodchikov\">\u041e\u0442 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u043e\u0432<\/h2>\n<p> <\/p>\n<p>\u0421 \u043b\u044e\u0431\u044b\u043c\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c\u0438 \u043f\u043e \u044f\u0437\u044b\u043a\u0443 Rust \u0432\u0430\u043c \u0441\u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0432 <a href=\"https:\/\/t.me\/rustlang_ru\" rel=\"nofollow noopener noreferrer\">\u0440\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u043c \u0422\u0435\u043b\u0435\u0433\u0440\u0430\u043c-\u0447\u0430\u0442\u0435<\/a> \u0438\u043b\u0438 \u0436\u0435 \u0432 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u043c <a href=\"https:\/\/t.me\/rust_beginners_ru\" rel=\"nofollow noopener noreferrer\">\u0447\u0430\u0442\u0435 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432\u044b\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432<\/a>. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043f\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430\u043c \u0438\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0442\u044c \u0441 \u043d\u0438\u043c\u0438, \u0442\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u0439\u0442\u0435\u0441\u044c \u0432 <a href=\"https:\/\/t.me\/rustlang_ru_translations\" rel=\"nofollow noopener noreferrer\">\u0447\u0430\u0442 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u043e\u0432<\/a>.<\/p>\n<p> <\/p>\n<p>\u0414\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u044b\u043c\u0438 \u0443\u0441\u0438\u043b\u0438\u044f\u043c\u0438 \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0438 <a href=\"https:\/\/habr.com\/ru\/users\/andreevlex\/\" class=\"user_link\">andreevlex<\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/telegaovoshey\/\" class=\"user_link\">TelegaOvoshey<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/users\/funkill\/\" class=\"user_link\">funkill<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/851800\/\"> https:\/\/habr.com\/ru\/articles\/851800\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 Rust \u0440\u0430\u0434\u0430 \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043e \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u044f\u0437\u044b\u043a\u0430 \u2014 1.82.0. Rust \u2014 \u044d\u0442\u043e \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0435 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435.<\/p>\n<p> <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f Rust, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0447\u0435\u0440\u0435\u0437 <code>rustup<\/code>, \u0442\u043e \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 1.82.0 \u0432\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<p> <\/p>\n<pre><code class=\"plaintext\">$ rustup update stable<\/code><\/pre>\n<p> <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0449\u0451 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d <code>rustup<\/code>, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0441 <a href=\"https:\/\/www.rust-lang.org\/install.html\" rel=\"nofollow noopener noreferrer\">\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b<\/a> \u043d\u0430\u0448\u0435\u0433\u043e \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/doc.rust-lang.org\/nightly\/releases.html#version-1820-2024-10-17\" rel=\"nofollow noopener noreferrer\">\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f \u043a \u0432\u044b\u043f\u0443\u0441\u043a\u0443<\/a> \u043d\u0430 GitHub.<\/p>\n<p> <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u0430\u043c \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0443\u0449\u0438\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0438, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043d\u0430\u043b beta (<code>rustup default beta<\/code>) \u0438\u043b\u0438 nightly (<code>rustup default nightly<\/code>). \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, <a href=\"https:\/\/github.com\/rust-lang\/rust\/issues\/new\/choose\" rel=\"nofollow noopener noreferrer\">\u0441\u043e\u043e\u0431\u0449\u0430\u0439\u0442\u0435<\/a> \u043e\u0431\u043e \u0432\u0441\u0435\u0445 \u0432\u0441\u0442\u0440\u0435\u0447\u0435\u043d\u043d\u044b\u0445 \u0432\u0430\u043c\u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u0445.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-435973","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/435973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=435973"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/435973\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=435973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=435973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=435973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}