{"id":338687,"date":"2022-09-23T21:00:12","date_gmt":"2022-09-23T21:00:12","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=338687"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=338687","title":{"rendered":"<span>Rust 1.64.0: rust-analyzer \u0432 rustup, IntoFuture, ffi-\u0442\u0438\u043f\u044b \u0432 core \u0438 alloc, \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 Cargo<\/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.64.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.64.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\u0442 <code>rustup<\/code>, \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0441\u043e <a href=\"https:\/\/www.rust-lang.org\/install.html\" rel=\"nofollow noopener noreferrer\">\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b<\/a> \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 <a href=\"https:\/\/github.com\/rust-lang\/rust\/blob\/stable\/RELEASES.md#version-1640-2022-09-22\" rel=\"nofollow noopener noreferrer\">\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0430 1.64.0<\/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 beta (<code>rustup default beta<\/code>) \u0438\u043b\u0438 nightly (<code>rustup default nightly<\/code>) \u043a\u0430\u043d\u0430\u043b. \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-1640\">\u0427\u0442\u043e \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0432 1.64.0<\/h2>\n<p>  <\/p>\n<h3 id=\"uluchshenie-await-s-pomoschyu-intofuture\">\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 <code>.await<\/code> \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>IntoFuture<\/code><\/h3>\n<p>  <\/p>\n<p>\u0412 Rust 1.64 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0442\u0440\u0435\u0439\u0442 <a href=\"https:\/\/doc.rust-lang.org\/std\/future\/trait.IntoFuture.html\" rel=\"nofollow noopener noreferrer\"><code>IntoFuture<\/code><\/a>. \u041e\u043d \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0442\u0440\u0435\u0439\u0442 <a href=\"https:\/\/doc.rust-lang.org\/std\/iter\/trait.IntoIterator.html\" rel=\"nofollow noopener noreferrer\"><code>IntoIterator<\/code><\/a>, \u043d\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0446\u0438\u043a\u043b\u043e\u0432 <code>for ... in ...<\/code>, <code>IntoFuture<\/code> \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 <code>.await<\/code>. \u0421 <code>IntoFuture<\/code> \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>.await<\/code> \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0444\u0443\u0442\u0443\u0440\u0430\u0445, \u043d\u043e \u0438 \u043d\u0430 <em>\u0432\u0441\u0451\u043c, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043e \u0432 <code>Future<\/code> \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <code>IntoFuture<\/code><\/em>, \u0447\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0430\u0448\u0435 API \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f!<\/p>\n<p>  <\/p>\n<p>\u0412\u043e\u0437\u044c\u043c\u0451\u043c, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0431\u0438\u043b\u0434\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">pub struct Error { ... } pub struct StorageResponse { ... }: pub struct StorageRequest(bool);  impl StorageRequest {     \/\/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 `StorageRequest`.     pub fn new() -> Self { ... }     \/\/\/ \u0420\u0435\u0448\u0438\u0442\u044c, \u0431\u0443\u0434\u0435\u0442 \u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c.     pub fn set_debug(self, b: bool) -> Self { ... }     \/\/\/ \u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442\u0432\u0435\u0442.     pub async fn send(self) -> Result&lt;StorageResponse, Error> { ... } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0438\u043f\u0438\u0447\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435, \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e, \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let response = StorageRequest::new()  \/\/ 1. \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440     .set_debug(true)                  \/\/ 2. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438     .send()                           \/\/ 3. \u0421\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u0442\u044c Future     .await?;                          \/\/ 4. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Future + \u043f\u0440\u043e\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435\u043f\u043b\u043e\u0445\u043e, \u043d\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <code>IntoFuture<\/code>, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430 \u043e\u0434\u0438\u043d \u0448\u0430\u0433 <em>&#171;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0444\u0443\u0442\u0443\u0440\u044b&#187;<\/em> (\u0441\u0442\u0440\u043e\u043a\u0430 3) \u0438 <em>&#171;\u0437\u0430\u043f\u0443\u0441\u043a \u0444\u0443\u0442\u0443\u0440\u044b&#187;<\/em> (\u0441\u0442\u0440\u043e\u043a\u0430 4):<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">let response = StorageRequest::new()  \/\/ 1. \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440     .set_debug(true)                  \/\/ 2. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438     .await?;                          \/\/ 3. \u0421\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u0442\u044c + \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Future + \u043f\u0440\u043e\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438<\/code><\/pre>\n<p>  <\/p>\n<p>\u041c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0432 <code>IntoFuture<\/code> \u0434\u043b\u044f <code>StorageRequest<\/code>. <code>IntoFuture<\/code> \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0442 \u043d\u0430\u0441 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u0442\u0443\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c. \u0415\u0451 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0443\u043f\u0430\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0438 \u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c \u0434\u043b\u044f \u043d\u0435\u0451 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"rust\">\/\/ \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432. use std::pin::Pin; use std::future::{Future, IntoFuture};  pub struct Error { ... } pub struct StorageResponse { ... } pub struct StorageRequest(bool);  impl StorageRequest {     \/\/\/ \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 `StorageRequest`.     pub fn new() -> Self { ... }     \/\/\/ \u0420\u0435\u0448\u0438\u043c, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043e\u0442\u043b\u0430\u0434\u043a\u0438.     pub fn set_debug(self, b: bool) -> Self { ... }     \/\/\/ \u041e\u0442\u043f\u0440\u0430\u0432\u0438\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043e\u0442\u0432\u0435\u0442     pub async fn send(self) -> Result&lt;StorageResponse, Error> { ... } }  \/\/ \u041d\u043e\u0432\u0430\u044f \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \/\/ 1. \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u0438\u043f \u0444\u0443\u0442\u0443\u0440\u044b \/\/ 2. \u0418\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u043c `IntoFuture` \u0434\u043b\u044f `StorageRequest` pub type StorageRequestFuture = Pin&lt;Box&lt;dyn Future&lt;Output = Result&lt;StorageResponse, Error> + Send + 'static>> impl IntoFuture for StorageRequest {     type IntoFuture = StorageRequestFuture;     type Output = &lt;StorageRequestFuture as Future>::Output;     fn into_future(self) -> Self::IntoFuture {         Box::pin(self.send())     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 API \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u043d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c Rust Async WG \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0439 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0444\u0443\u0442\u0443\u0440\u044b \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <a href=\"https:\/\/rust-lang.github.io\/impl-trait-initiative\/explainer\/tait.html\" rel=\"nofollow noopener noreferrer\"><code>impl Trait<\/code> \u0432 <code>type<\/code> (&#171;Type Alias Impl Trait&#187; \u0438\u043b\u0438 TAIT)<\/a>. \u042d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e <code>IntoFuture<\/code> \u0437\u0430 \u0441\u0447\u0451\u0442 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u044b \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u0430 \u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0437\u0430 \u0441\u0447\u0451\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0438\u0437 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u0430 \u0443\u043f\u0430\u043a\u043e\u0432\u043a\u0438 (<code>Box<\/code>).<\/p>\n<p>  <\/p>\n<h3 id=\"c-sovmestimye-tipy-ffi-v-core-i-alloc\">C-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0435 \u0442\u0438\u043f\u044b FFI \u0432 core \u0438 alloc<\/h3>\n<p>  <\/p>\n<p>\u0412\u044b\u0437\u044b\u0432\u0430\u044f \u0438\u043b\u0438 \u0431\u0443\u0434\u0443\u0447\u0438 \u0432\u044b\u0437\u0432\u0430\u043d\u043d\u044b\u043c C ABI, \u043a\u043e\u0434 Rust \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u044b \u0442\u0438\u043f\u043e\u0432, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <code>c_uint<\/code> \u0438\u043b\u0438 <code>c_ulong<\/code> \u0434\u043b\u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0442\u0438\u043f\u043e\u0432 \u0438\u0437 C \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0435, \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438\u043b\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0439.<\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u043d\u044c\u0448\u0435 \u044d\u0442\u0438 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u044b \u0442\u0438\u043f\u043e\u0432 \u0431\u044b\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 <code>std<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u0434, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0434\u043b\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e <code>core<\/code> \u0438\u043b\u0438 <code>alloc<\/code>, \u043d\u0435 \u043c\u043e\u0433 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0442\u0438\u043f\u044b.<\/p>\n<p>  <\/p>\n<p>Rust 1.64 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u044b \u0442\u0438\u043f\u0430 <code>c_*<\/code> \u0432 <a href=\"https:\/\/doc.rust-lang.org\/core\/ffi\/index.html\" rel=\"nofollow noopener noreferrer\"><code>core::ffi<\/code><\/a>, \u0430 \u0442\u0430\u043a\u0436\u0435 <a href=\"https:\/\/doc.rust-lang.org\/core\/ffi\/struct.CStr.html\" rel=\"nofollow noopener noreferrer\"><code>core::ffi::CStr<\/code><\/a> \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 C. Rust 1.64 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <a href=\"https:\/\/doc.rust-lang.org\/alloc\/ffi\/struct.CString.html\" rel=\"nofollow noopener noreferrer\"><code>alloc::ffi::CString<\/code><\/a> \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u0441\u0442\u0440\u043e\u043a\u0430\u043c\u0438 C, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0440\u0435\u0439\u0442 <code>alloc<\/code>, \u0430 \u043d\u0435 \u043f\u043e\u043b\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <code>std<\/code>.<\/p>\n<p>  <\/p>\n<h3 id=\"rust-analyzer-teper-dostupen-cherez-rustup\">Rust-analyzer \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0447\u0435\u0440\u0435\u0437 rustup<\/h3>\n<p>  <\/p>\n<p><a href=\"https:\/\/rust-analyzer.github.io\/\" rel=\"nofollow noopener noreferrer\">Rust-analyzer<\/a> \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0445 \u0432 Rust. \u042d\u0442\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u043a rust-analyzer, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c. \u041e\u043d \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043a\u0430\u043a <a href=\"https:\/\/rust-lang.github.io\/rustup\/concepts\/components.html\" rel=\"nofollow noopener noreferrer\">\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 rustup<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">rustup component add rust-analyzer<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0443\u044e rustup, \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0435\u0451 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">rustup run stable rust-analyzer<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 rustup \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 <code>rust-analyzer<\/code> \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f.<\/p>\n<p>  <\/p>\n<p>\u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u043f\u0443\u0441\u043a\u0438, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 rust-analyzer, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u044e\u0442\u0441\u044f \u0447\u0430\u0449\u0435. \u041e\u043d\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043d\u0430 <a href=\"https:\/\/github.com\/rust-lang\/rust-analyzer\/releases\" rel=\"nofollow noopener noreferrer\">\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u043e\u0432 rust-analyzer<\/a>. \u042d\u0442\u043e \u043d\u0435 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=rust-lang.rust-analyzer\" rel=\"nofollow noopener noreferrer\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f VSCode<\/a>, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442 \u0432\u044b\u043f\u0443\u0441\u043a\u0438 \u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<\/p>\n<p>  <\/p>\n<h3 id=\"uluchsheniya-cargo-nasledovanie-rabochego-prostranstva-i-mnogocelevye-sborki\">\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f Cargo: \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438 \u043c\u043d\u043e\u0433\u043e\u0446\u0435\u043b\u0435\u0432\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438<\/h3>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438\u043b\u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u043a\u0440\u0435\u0439\u0442\u043e\u0432 \u0432 \u043e\u0434\u043d\u043e\u043c \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 Cargo, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0449\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u0435\u0439 \u043c\u0435\u0436\u0434\u0443 \u043a\u0440\u0435\u0439\u0442\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u043e\u0431\u0449\u0438\u0435 \u043d\u043e\u043c\u0435\u0440\u0430 \u0432\u0435\u0440\u0441\u0438\u0439, URL-\u0430\u0434\u0440\u0435\u0441\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u0438\u043b\u0438 <code>rust-version<\/code>. \u042d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043a\u0440\u0435\u0439\u0442\u0430\u043c\u0438 \u043f\u0440\u0438 \u0438\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0441\u043c. \u0432 <a href=\"https:\/\/doc.rust-lang.org\/cargo\/reference\/workspaces.html#the-package-table\" rel=\"nofollow noopener noreferrer\"><code>workspace.package<\/code><\/a>, <a href=\"https:\/\/doc.rust-lang.org\/cargo\/reference\/workspaces.html#the-dependencies-table\" rel=\"nofollow noopener noreferrer\"><code>workspace.dependencies<\/code><\/a> \u0438 <a href=\"https:\/\/doc.rust-lang.org\/cargo\/reference\/specifying-dependencies.html#inheriting-a-dependency-from-a-workspace\" rel=\"nofollow noopener noreferrer\">&#171;\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430&#187;<\/a>.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0441\u0431\u043e\u0440\u043a\u0435 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0446\u0438\u0439 <code>--target<\/code> \u0432 <code>cargo build<\/code>, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0438\u0445 \u0432\u0441\u0435 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e. \u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u043b\u044f <a href=\"https:\/\/doc.rust-lang.org\/cargo\/reference\/config.html#buildtarget\" rel=\"nofollow noopener noreferrer\"><code>build.target<\/code><\/a> \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u0432 <code>.cargo\/config.toml<\/code>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0446\u0435\u043b\u0435\u0439.<\/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<p>\u0421\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0435\u0439\u0442\u043e\u0432:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/future\/trait.IntoFuture.html\" rel=\"nofollow noopener noreferrer\"><code>future::IntoFuture<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/num\/struct.NonZeroUsize.html#method.checked_mul\" rel=\"nofollow noopener noreferrer\"><code>num::NonZero*::checked_mul<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/num\/struct.NonZeroUsize.html#method.checked_pow\" rel=\"nofollow noopener noreferrer\"><code>num::NonZero*::checked_pow<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/num\/struct.NonZeroUsize.html#method.saturating_mul\" rel=\"nofollow noopener noreferrer\"><code>num::NonZero*::saturating_mul<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/num\/struct.NonZeroUsize.html#method.saturating_pow\" rel=\"nofollow noopener noreferrer\"><code>num::NonZero*::saturating_pow<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/num\/struct.NonZeroIsize.html#method.abs\" rel=\"nofollow noopener noreferrer\"><code>num::NonZeroI*::abs<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/num\/struct.NonZeroIsize.html#method.checked_abs\" rel=\"nofollow noopener noreferrer\"><code>num::NonZeroI*::checked_abs<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/num\/struct.NonZeroIsize.html#method.overflowing_abs\" rel=\"nofollow noopener noreferrer\"><code>num::NonZeroI*::overflowing_abs<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/num\/struct.NonZeroIsize.html#method.saturating_abs\" rel=\"nofollow noopener noreferrer\"><code>num::NonZeroI*::saturating_abs<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/num\/struct.NonZeroIsize.html#method.unsigned_abs\" rel=\"nofollow noopener noreferrer\"><code>num::NonZeroI*::unsigned_abs<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/num\/struct.NonZeroIsize.html#method.wrapping_abs\" rel=\"nofollow noopener noreferrer\"><code>num::NonZeroI*::wrapping_abs<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/num\/struct.NonZeroUsize.html#method.checked_add\" rel=\"nofollow noopener noreferrer\"><code>num::NonZeroU*::checked_add<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/num\/struct.NonZeroUsize.html#method.checked_next_power_of_two\" rel=\"nofollow noopener noreferrer\"><code>num::NonZeroU*::checked_next_power_of_two<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/num\/struct.NonZeroUsize.html#method.saturating_add\" rel=\"nofollow noopener noreferrer\"><code>num::NonZeroU*::saturating_add<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/os\/unix\/process\/trait.CommandExt.html#tymethod.process_group\" rel=\"nofollow noopener noreferrer\"><code>os::unix::process::CommandExt::process_group<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/os\/windows\/fs\/trait.FileTypeExt.html#tymethod.is_symlink_dir\" rel=\"nofollow noopener noreferrer\"><code>os::windows::fs::FileTypeExt::is_symlink_dir<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/os\/windows\/fs\/trait.FileTypeExt.html#tymethod.is_symlink_file\" rel=\"nofollow noopener noreferrer\"><code>os::windows::fs::FileTypeExt::is_symlink_file<\/code><\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0422\u0438\u043f\u044b, \u0440\u0430\u043d\u0435\u0435 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432 <code>std::ffi<\/code> \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0432 <code>core<\/code> \u0438 <code>alloc<\/code>:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/core\/ffi\/struct.CStr.html\" rel=\"nofollow noopener noreferrer\"><code>core::ffi::CStr<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/core\/ffi\/struct.FromBytesWithNulError.html\" rel=\"nofollow noopener noreferrer\"><code>core::ffi::FromBytesWithNulError<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/alloc\/ffi\/struct.CString.html\" rel=\"nofollow noopener noreferrer\"><code>alloc::ffi::CString<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/alloc\/ffi\/struct.FromVecWithNulError.html\" rel=\"nofollow noopener noreferrer\"><code>alloc::ffi::FromVecWithNulError<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/alloc\/ffi\/struct.IntoStringError.html\" rel=\"nofollow noopener noreferrer\"><code>alloc::ffi::IntoStringError<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/alloc\/ffi\/struct.NulError.html\" rel=\"nofollow noopener noreferrer\"><code>alloc::ffi::NulError<\/code><\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0422\u0438\u043f\u044b, \u0440\u0430\u043d\u0435\u0435 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432 <code>std::os::raw<\/code> \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0432 <code>core::ffi<\/code> \u0438 <code>std::ffi<\/code>:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/ffi\/type.c_char.html\" rel=\"nofollow noopener noreferrer\"><code>ffi::c_char<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/ffi\/type.c_double.html\" rel=\"nofollow noopener noreferrer\"><code>ffi::c_double<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/ffi\/type.c_float.html\" rel=\"nofollow noopener noreferrer\"><code>ffi::c_float<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/ffi\/type.c_int.html\" rel=\"nofollow noopener noreferrer\"><code>ffi::c_int<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/ffi\/type.c_long.html\" rel=\"nofollow noopener noreferrer\"><code>ffi::c_long<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/ffi\/type.c_longlong.html\" rel=\"nofollow noopener noreferrer\"><code>ffi::c_longlong<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/ffi\/type.c_schar.html\" rel=\"nofollow noopener noreferrer\"><code>ffi::c_schar<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/ffi\/type.c_short.html\" rel=\"nofollow noopener noreferrer\"><code>ffi::c_short<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/ffi\/type.c_uchar.html\" rel=\"nofollow noopener noreferrer\"><code>ffi::c_uchar<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/ffi\/type.c_uint.html\" rel=\"nofollow noopener noreferrer\"><code>ffi::c_uint<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/ffi\/type.c_ulong.html\" rel=\"nofollow noopener noreferrer\"><code>ffi::c_ulong<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/ffi\/type.c_ulonglong.html\" rel=\"nofollow noopener noreferrer\"><code>ffi::c_ulonglong<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/ffi\/type.c_ushort.html\" rel=\"nofollow noopener noreferrer\"><code>ffi::c_ushort<\/code><\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0411\u044b\u043b\u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441 <code>Poll<\/code>, \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0444\u0443\u0442\u0443\u0440:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/future\/fn.poll_fn.html\" rel=\"nofollow noopener noreferrer\"><code>future::poll_fn<\/code><\/a><\/li>\n<li><a href=\"https:\/\/doc.rust-lang.org\/stable\/std\/task\/macro.ready.html\" rel=\"nofollow noopener noreferrer\"><code>task::ready!<\/code><\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041c\u044b \u043d\u0430\u0434\u0435\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0441\u043c\u043e\u0436\u0435\u043c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 API, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0431\u0443\u0434\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0445 \u0434\u0435\u0442\u0430\u043b\u0435\u0439, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a <code>Poll<\/code> \u0438 <code>Pin<\/code>. \u041d\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0443\u043f\u0440\u043e\u0441\u0442\u044f\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u043a\u043e\u0434\u0430.<\/p>\n<p>  <\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 API \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0437\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\/stable\/core\/slice\/fn.from_raw_parts.html\" rel=\"nofollow noopener noreferrer\"><code>slice::from_raw_parts<\/code><\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<h3 id=\"zamechaniya-o-sovmestimosti\">\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f \u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438<\/h3>\n<p>  <\/p>\n<ul>\n<li>\u041a\u0430\u043a \u0431\u044b\u043b\u043e <a href=\"https:\/\/blog.rust-lang.org\/2022\/08\/01\/Increasing-glibc-kernel-requirements.html\" rel=\"nofollow noopener noreferrer\">\u0440\u0430\u043d\u0435\u0435 \u0430\u043d\u043e\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043e<\/a>, \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0446\u0435\u043b\u0435\u0439 <code>linux<\/code> \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u044f\u0434\u0440\u043e Linux 3.2 \u0438 \u0432\u044b\u0448\u0435 (\u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u0435\u0445 \u0446\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u043e\u0435 \u044f\u0434\u0440\u043e). \u0422\u0430\u043a\u0436\u0435 \u0446\u0435\u043b\u0438 <code>linux-gnu<\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u0440\u0435\u0431\u0443\u044e\u0442 glibc 2.17 (\u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0442\u0435\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0431\u043e\u043b\u0435\u0435 \u043d\u043e\u0432\u0443\u044e glibc).<\/li>\n<li>Rust 1.64.0 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 <code>Ipv4Addr<\/code>, <code>Ipv6Addr<\/code>, <code>SocketAddrV4<\/code> \u0438 <code>SocketAddrV6<\/code>, \u0447\u0442\u043e\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0451 \u0431\u043e\u043b\u0435\u0435 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0439 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0439. \u042d\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u043b\u043e\u0441\u044c, \u043d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u0440\u0435\u0439\u0442\u044b \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u043b\u0430\u0433\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u043d\u0435\u0433\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f <code>std::mem::transmute<\/code>, \u0447\u0442\u043e \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u043b\u043e \u043a \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u043c \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f\u043c \u043a \u043f\u0430\u043c\u044f\u0442\u0438. \u0422\u0430\u043a\u0438\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 <em>\u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435<\/em> \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c. \u0427\u0442\u043e\u0431\u044b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0443\u0449\u0435\u0440\u0431, \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441 \u0430\u0432\u0442\u043e\u0440\u0430\u043c\u0438 \u0432\u0441\u0435\u0445 \u0435\u0449\u0451 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043a\u0440\u0435\u0439\u0442\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0433\u043e\u0434\u0430. \u041f\u043e\u0434\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0435 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043c\u044f\u0433\u0447\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>cargo update<\/code>.<\/li>\n<li>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 <a href=\"https:\/\/blog.rust-lang.org\/2022\/07\/01\/RLS-deprecation.html\" rel=\"nofollow noopener noreferrer\">\u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 RLS<\/a> \u044d\u0442\u043e \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0432\u044b\u043f\u0443\u0441\u043a, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u043a\u043e\u043f\u0438\u044e RLS. \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 Rust 1.65.0, RLS \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043c\u0435\u043d\u0451\u043d \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c LSP, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u043c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u0431 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0430\u043d\u0438\u0438.<\/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>\u0412\u044b\u043f\u0443\u0441\u043a Rust 1.64 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 Rust \u0434\u043b\u044f Windows \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0441 PGO, \u0447\u0442\u043e \u0434\u0430\u0451\u0442 \u043f\u0440\u0438\u0440\u043e\u0441\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043e\u0434\u0430 \u043d\u0430 10-20%.<\/li>\n<li>\u0415\u0441\u043b\u0438 \u0432\u044b \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u043b\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0443\u044e \u043f\u043e\u043b\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u0442\u043e rustc \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u043b. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 <code>unused_tuple_struct_fields<\/code>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043e \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043f\u043e\u043b\u044f\u0445 \u0432 \u043a\u043e\u0440\u0442\u0435\u0436\u043d\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445. \u0412 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u043c\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e. \u0414\u043b\u044f \u043f\u043e\u043b\u0435\u0439 \u0435\u0434\u0438\u043d\u0438\u0447\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 (<code>()<\/code>) \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u0434\u0430 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u043a\u043e\u0440\u0442\u0435\u0436\u0430.<\/li>\n<\/ul>\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\/blob\/stable\/RELEASES.md#version-1640-2022-09-22\" rel=\"nofollow noopener noreferrer\">Rust<\/a>, <a href=\"https:\/\/github.com\/rust-lang\/cargo\/blob\/master\/CHANGELOG.md#cargo-164-2022-09-22\" rel=\"nofollow noopener noreferrer\">Cargo<\/a> \u0438 <a href=\"https:\/\/github.com\/rust-lang\/rust-clippy\/blob\/master\/CHANGELOG.md#rust-164\" rel=\"nofollow noopener noreferrer\">Clippy<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"uchastniki-1640\">\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 1.64.0<\/h3>\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.64.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.64.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<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/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\/post\/689876\/\"> https:\/\/habr.com\/ru\/post\/689876\/<\/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.64.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.64.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\u0442 <code>rustup<\/code>, \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0441\u043e <a href=\"https:\/\/www.rust-lang.org\/install.html\" rel=\"nofollow noopener noreferrer\">\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b<\/a> \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 <a href=\"https:\/\/github.com\/rust-lang\/rust\/blob\/stable\/RELEASES.md#version-1640-2022-09-22\" rel=\"nofollow noopener noreferrer\">\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0430 1.64.0<\/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 beta (<code>rustup default beta<\/code>) \u0438\u043b\u0438 nightly (<code>rustup default nightly<\/code>) \u043a\u0430\u043d\u0430\u043b. \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-338687","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/338687","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=338687"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/338687\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=338687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=338687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=338687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}