ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° Rust ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΡΠ΅Π΄ΠΏΠ°Π·Π²Π° ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΏΡΠΎΠΈΠ·ΡΠΈΡΠ°ΡΠΈ ΠΎΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ, ΠΊΠ°ΡΠΎ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ ΡΠ»Π΅Π΄ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅, Π΄Π΅ΡΠ΅ΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΡΠ»Π΅Π² ΡΠΊΠ°Π·Π°ΡΠ΅Π», ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡΡΠ΅Ρ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΡΠ΅ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π·Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ³Π»ΠΎΠ±ΡΠ²Π°Π½Π΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ°
- Π§Π΅ΡΡΠ°ΡΠ° Π΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π°
ΠΡΠ΄Π΅ΡΠ΅ , ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΡΠΈΡΡΠΎ ΠΎΡΠ΅Π½ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ Π΄Π° Π½Π΅ Π΅ Π·Π°Π²ΡΡΡΠ΅Π½Π°, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ async / .await Π±Π»ΠΎΠΊΠΎΠ²Π΅. ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Future, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Π° ΡΠ°Π±ΠΎΡΠ° Π² Π½ΠΈΡΠΊΠ°ΡΠ°, ΠΊΠ°ΡΠΎ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠ°ΡΠ΅ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡΡΠ° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ; - ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π°
ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Ρ , ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ, ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°. Π Π°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² std Π²Π΅ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΈΠΏΠ°ΠΠΠ¦ , ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ°Ρ ΠΎΡ Π°Π»ΠΎΠΊ. ΠΡΠ΄Π΅Π»Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° alloc ΠΈΠΌΠ° ΡΠΌΠΈΡΡΠ» Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΠΎΠ±Π²ΡΡΠ·Π°Π½ΠΈ ΡΡΡ std (β#![no_std]β), ΠΊΠ°ΠΊΡΠΎ ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π±Π΅Π· std; - ΠΠ° Π΄Π° Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΡΠ΅ Π·Π° ΠΏΡΠ°Π²ΠΈΠ»Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅
ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΡΠΈΠΏΠΠΎΠΆΠ΅ Π±ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡΠ° , ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡΡΠ° mem::uninitialized ΠΊΠ°ΡΠΎ ΠΏΠΎ-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π°. Π€ΡΠ½ΠΊΡΠΈΡΡΠ° mem::uninitialized Π΅ ΡΠ΄ΠΎΠ±Π½Π° Π·Π° Π±ΡΡΠ·ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ°ΡΠΈΠ²ΠΈ, Π½ΠΎ Π·Π°Π±Π»ΡΠΆΠ΄Π°Π²Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ°, Π·Π°ΡΠΎΡΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π°, Π½ΠΎ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΠΎΡΡΠ°Π²Π° Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π°. MaybeUninit Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΡΠΈΡΠ½ΠΎ Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ°, ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π΅ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π°, Π·Π° Π΄Π° Π²Π·Π΅ΠΌΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΠΎ Π½Π΅Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ ΡΠΎΠ²Π°, ΠΈ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅ ΡΡΠ΅Π· βmaybe_t:β ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΡΠΏΠΊΠ° ΠΏΠΎ ΡΡΡΠΏΠΊΠ°, ΠΎΡΠ±Π΅Π»ΡΠ·Π²Π°ΠΉΠΊΠΈ Π½Π΅ΠΉΠ½ΠΎΡΠΎ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ β.assume_init()β. Π‘ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° MaybeUninit ΡΡΠ½ΠΊΡΠΈΡΡΠ° mem::uninitialized Π΅ ΠΎΡΡ Π²ΡΡΠ»Π΅Π½Π° ΠΈ Π½Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅; - Π’Π΅Ρ Π½ΠΈΠΊΠ°ΡΠ° NLL (Non-Lexical Lifetimes), ΠΊΠΎΡΡΠΎ ΡΠ°Π·ΡΠΈΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΠΆΠΈΠ²ΠΎΡΠ° Π½Π° Π·Π°ΠΈΠΌΡΡΠ²Π°Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, Π΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π° Π·Π° Π΅Π·ΠΈΠΊΠ° Rust 2015 (ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ NLL ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°ΠΌΠΎ ΠΎΡ Rust 2018). ΠΠΌΠ΅ΡΡΠΎ Π΄Π° Π°Π½Π³Π°ΠΆΠΈΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½Π° Π½Π° ΠΆΠΈΠ²ΠΎΡ Π½Π° Π»Π΅ΠΊΡΠΈΠΊΠ°Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ, NLL ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π° Π½Π° Π½ΠΈΠ²ΠΎ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π² Π³ΡΠ°ΡΠΈΠΊΠ°ΡΠ° Π½Π° ΠΏΠΎΡΠΎΠΊΠ° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΠ²ΠΈΡΠΈΡΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° Π·Π°Π΅ΠΌΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π·Π°Π΅ΠΌΠ°Π½Π΅) ΠΈ Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½ΡΠΊΠΎΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΠΏΡΠ°Π²ΠΈΠ»Π΅Π½ ΠΊΠΎΠ΄, ΡΠΈΠ΅ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π΅ Π΄ΠΎΠ²Π΅Π»ΠΎ Π΄ΠΎ Π³ΡΠ΅ΡΠΊΠ°. ΠΠΎΠ²ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΡΠΎ ΠΏΡΠ°Π²ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ;
- ΠΠΊΠ»ΡΡΠ΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π°ΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΈ ΠΌΠ°ΡΠΈΠ²ΠΈ
HashMap , Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°Π¨Π²Π΅ΠΉΡΠ°ΡΡΠΊΠ° ΠΌΠ°ΡΠ° (Π·Π°ΡΠ΅ΠΆΠ΄Π° ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎhashbrown::HashMap , ΠΎΡΠ²Π΅Π½ Π°ΠΊΠΎ ΠΈΠ·ΡΠΈΡΠ½ΠΎ Π½Π΅ Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ Π΄ΡΡΠ³ΠΎ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ std::HashMap, ΠΊΠΎΠΉΡΠΎ Π΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° SipHash 1-3). Π‘ΠΎΡΡΡΠ΅ΡΠ½ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΡΡΠ°Π²Π° ΡΡΡΠΈΡΡ, Π° ΡΠ°Π·Π»ΠΈΠΊΠΈΡΠ΅, Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π°Ρ Π΄ΠΎ ΠΏΠΎΠ²ΠΈΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ; - Π ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠΎΠ²Π°ΡΠΈ
Π΄ΠΎΠ±Π°Π²ΠΈ ΠΎΠΏΡΠΈΡΡΠ° β--offlineβ, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ°Π±ΠΎΡΠ° Π±Π΅Π· Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, Π² ΠΊΠΎΡΡΠΎ ΠΏΡΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ°ΠΌΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈ Π² Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠΊΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠ° Π½Π΅ Π΅ Π² Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ ΠΊΠ΅Ρ, ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·Π²Π΅Π΄Π΅Π½Π° Π³ΡΠ΅ΡΠΊΠ°. ΠΠ° Π΄Π° Π·Π°ΡΠ΅Π΄ΠΈΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π² Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ ΠΊΠ΅Ρ, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΈΠ·Π»Π΅Π·Π΅ΡΠ΅ ΠΎΡΠ»Π°ΠΉΠ½, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βcargo fetchβ; - ΠΡΠ²Π΅Π΄Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΌΠ°ΠΊΡΠΎΡΠ° βdbg!β ΠΏΠΎΡΠΎΡΠ²Π°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°;
- ΠΡΡΠΈΠ±ΡΡΡΡ βconstβ, ΠΊΠΎΠΉΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈ
Layout::from_size_align_unchecked,
mem::needs_drop,
NonNull::Π²ΠΈΡΡΡΠΈ ΠΈ
NonNull::cast; - ΠΠΎΠ²Π° ΡΠ°ΡΡ ΠΎΡ API Π΅ ΠΏΡΠ΅Ρ
Π²ΡΡΠ»Π΅Π½Π° Π² ΡΡΠ°Π±ΠΈΠ»Π½Π°ΡΠ° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ
task::Waker, task::Poll,
VecDeque::rotate_left, VecDeque::rotate_right,
Read::read_vectored, Write::write_vectored,
ΠΡΠ΅ΡΠ°ΡΠΎΡ::ΠΊΠΎΠΏΠΈΡΠ°Π½,
BorrowMut (Π·Π° Π½ΠΈΠ·ΠΎΠ²Π΅) ΠΈ str::as_mut_ptr.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru