ΡΠ΅Π»ΠΈΠ· Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ , ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Mozilla. ΠΠ·ΠΈΠΊΡΡ Π΅ ΡΠΎΠΊΡΡΠΈΡΠ°Π½ Π²ΡΡΡ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠ° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ, ΠΊΠ°ΡΠΎ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»Ρ ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° ΡΠ±ΠΎΡΡΠΈΠΊ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ ΠΈ runtime.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² Rust ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈ Π³ΠΎ Π·Π°ΡΠΈΡΠ°Π²Π° ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΏΡΠΎΠΈΠ·ΡΠΈΡΠ°ΡΠΈ ΠΎΡ Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠ°ΡΠΎ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π·ΠΎΠ½Π° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΠ»Π΅Π΄ Π½Π΅ΠΉΠ½ΠΎΡΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅, ΡΠ°Π·ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½Π΅ Π½Π° Π½ΡΠ»Π΅Π²ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΈΠ·Π²ΡΠ½ Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° Π±ΡΡΠ΅ΡΠ° ΠΈ Ρ.Π½. ΠΠ° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΡΡΠ΅Π· ΠΏΠ°ΠΊΠ΅ΡΠ΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ. , ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Ρ Π΅Π΄Π½ΠΎ ΠΊΠ»ΠΈΠΊΠ²Π°Π½Π΅. ΠΠ° Ρ ΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ .
ΠΡΠ½ΠΎΠ²Π½ΠΈ :
- Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΡ ΡΠΈΠΏΠ°ΠΆ (trait) , ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΡΠΈΠΉΡΠΎ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π΅ Π·Π°Π²ΡΡΡΠ΅Π½ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅ async / .await. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠ΅ ΡΡΠ΅Π· Future Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ»Π΅Π·Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ°, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ΅ ΠΈΠ·ΡΠ°ΠΊΠ²Π° Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡΡΠ° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ;
- Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° , ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠ° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°. ΠΠ° Π·Π°Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ Π² std ΡΠ΅Π³Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΈΠΏΡΡ , ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ΅Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ° ΠΎΡ alloc. ΠΡΠ΄Π΅Π»Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° 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 ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π² Π³ΡΠ°ΡΠ° Π½Π° ΠΏΠΎΡΠΎΠΊΠ° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΡΠ΅ Π·Π° Π·Π°Π΅ΠΌΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ (borrow checker) ΠΈ Π΄Π° ΡΠ΅ Π΄ΠΎΠΏΡΡΠ½Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½ΡΠΊΠΎΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΠΊΠΎΡΠ΅ΠΊΡΠ΅Π½ ΠΊΠΎΠ΄, ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π²ΠΎΠ΄Π΅ΡΠ΅ Π΄ΠΎ Π³ΡΠ΅ΡΠΊΠΈ. ΠΠΎΠ²ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ;
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π°ΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΈ ΠΌΠ°ΡΠΈΠ²ΠΈ , ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ , Π°ΠΊΠΎ Π½Π΅ Π΅ ΠΈΠ·ΡΠΈΡΠ½ΠΎ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ Π΄ΡΡΠ³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, std::HashMap, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° SipHash 1-3). ΠΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΡΡΠ°Π½Π° ΡΡΡΠΈΡ, Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π²Π°Ρ Π² ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ;
- Π ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ cargo ΠΎΠΏΡΠΈΡΡΠ° ββofflineβ, ΠΊΠΎΡΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π±Π΅Π· ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ, ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ°ΠΌΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΈ. ΠΠΊΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠ° Π»ΠΈΠΏΡΠ²Π° Π² Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ ΠΊΠ΅Ρ, ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·Π²Π΅Π΄Π΅Π½Π° Π³ΡΠ΅ΡΠΊΠ°. ΠΠ° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ Π² Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ ΠΊΠ΅Ρ ΠΏΡΠ΅Π΄ΠΈ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π² offline ΡΠ΅ΠΆΠΈΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βcargo fetchβ;
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΌΠ°ΠΊΡΠΎΡΠ° βdbg!β Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°;
- ΠΡΠΈΠ·Π½Π°ΠΊΡΡ βconstβ, ΠΊΠΎΠΉΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈ, Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ Π·Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅
Layout::from_size_align_unchecked,
mem::needs_drop,
NonNull::dangling ΠΈ
NonNull::cast; - Π ΡΠ°Π·ΡΡΠ΄ ΡΡΠ°Π±ΠΈΠ»Π½ΠΈ Π΅ ΠΏΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π½ΠΎΠ²Π° ΠΏΠΎΡΡΠΈΡ API, Π² ΡΠΎΠ²Π° ΡΠΈΡΠ»ΠΎ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ
task::Waker, task::Poll,
VecDeque::rotate_left, VecDeque::rotate_right,
Read::read_vectored, Write::write_vectored,
Iterator::copied,
BorrowMut (Π·Π° ΡΡΡΠΈΠ½Π³ΠΎΠ²Π΅) ΠΈ str::as_mut_ptr.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
