Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ Π² ΡΠ°ΡΡΠ΅
ΠΠ°ΠΊΡΠΎΡΡ Π² ΠΈΠ³ΡΠ΅ Rust: ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅?
ΠΠ°ΠΊΡΠΎΡΡ ΠΈ ΡΠΈΡΡ β ΡΠ°ΠΊΠΎΠ²Π°Ρ ΠΎΠΏΡΡ ΠΎΠ»Ρ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΈΠ³ΡΠ°Ρ . ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ ΡΠ΅ ΠΈΠ³ΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π΄Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π½Π°Π΄ Π΄ΡΡΠ³ΠΈΠΌΠΈ, Π΄Π°ΠΆΠ΅ Π½Π΅ ΡΠ°ΠΌΡΠΌ ΡΠ΅ΡΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΈΠ³ΡΡ Grand Theft Auto 5, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Ρ Online ΡΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ. Π£ΠΆ Π½Π΅ Π·Π½Π°Ρ, ΠΊΠ°ΠΊ Π² Π½Π΅ΠΉ Π΄Π΅Π»Π° ΠΎΠ±ΡΡΠΎΡΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π½ΠΎ Π³ΠΎΠ΄-Π΄Π²Π° Π½Π°Π·Π°Π΄ ΡΠΈΡΠ΅ΡΡΡΠ²ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ³ΡΠ΅ Π±ΡΠ»ΠΎ ΡΠ΅ΠΌ-ΡΠΎ ΠΎΠ±ΡΠ΄Π΅Π½Π½ΡΠΌ.
ΠΠ°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π°-ΡΡΠΈ Π³ΠΎΠ΄Π° ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π»ΠΈΠ·Π° ΠΈΠ³ΡΡ Π½Π° ΠΠ ΠΈΠ³ΡΠΎΠΊΠΈ ΠΈ ΡΠ΄ΠΈΠ²Π»ΡΠ»ΠΈΡΡ ΡΠΈΡΠ΅ΡΠ°ΠΌ, ΠΏΡΡΠ°Π»ΠΈΡΡ ΠΈΡ ΠΊΠΈΠΊΠ½ΡΡΡ ΠΈΠ· ΡΠ΅ΡΡΠΈΠΈ, Π½ΠΎ ΡΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ Π·Π°Ρ ΠΎΠ΄Ρ Π½Π° ΠΈΠ³ΡΠΎΠ²ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ Ρ Π²ΠΈΠΆΡ Π½Π°Π΄ΠΏΠΈΡΡ ΠΏΠΎ ΡΠΈΠΏΡ Β«Π§ΠΈΡΠ΅ΡΡ Π΅ΡΡΡ? ΠΠ°ΠΊΡΡΡΠΈΡΠ΅ Π΄Π΅Π½Π΅Π³ ΠΏΠ»Π·Β».
ΠΡΠ΄Ρ ΡΠ΅ΡΡΠ΅Π½ β Ρ ΠΈ ΡΠ°ΠΌ Π³ΡΠ΅ΡΠ΅Π½. ΠΠ²Π° ΡΠ°Π·Π° Ρ Π·Π°ΠΊΠ°Π·ΡΠ²Π°Π» ΠΏΡΠΎΠΊΠ°ΡΠΊΡ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ°, ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π½Π°ΠΊΡΡΡΠΈΠ²Π°Π» ΠΈΠ³ΡΠΎΠ²ΡΡ Π²Π°Π»ΡΡΡ ΠΈ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΎΡΡΠ°. Π Π·Π½Π°Π΅ΡΠ΅ ΡΡΠΎ? GTA 5 ΠΌΠ½Π΅ ΡΠΆΠ΅ Π½Π°Π΄ΠΎΠ΅Π»Π°, Π° Π²ΠΈΠ½ΠΎΠΉ ΡΡΠΎΠΌΡ ΠΏΠΎΡΠ»ΡΠΆΠΈΠ»ΠΎ ΡΠΎ, ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ ΠΈ ΡΠ°ΠΊ ΡΠΆΠ΅ Π² Π½Π΅ΠΉ Π²ΡΡ Π΅ΡΡΡ, ΠΌΠ½Π΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π½Π°Π΄ΠΎ ΡΠ°ΠΌ Π΄Π΅Π»Π°ΡΡ. ΠΠ°ΡΡΠ» ΡΠ°Π· Π² Π³ΠΎΠ΄, ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π²ΡΡΠ΅Π». ΠΠΎΡ ΡΠ°ΠΊ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΠ³ΡΠ°Ρ Ρ Π² ΠΠ’Π.
ΠΠΎ Π²Π΅ΡΠ½ΡΠΌΡΡ ΠΊ ΠΈΠ³ΡΠ΅ Rust. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π² Π½Π°ΡΠ΅ΠΉ Π»ΡΠ±ΠΈΠΌΠΎΠΉ ΠΈΠ³ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΠΎΠ². Π§ΠΈΡΠ΅ΡΡ ΡΠΎΠΆΠ΅ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ, Π½ΠΎ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΈ ΡΠ°ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°. Π ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΠΈ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΠ°ΡΠ΅, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΆΠ΅ ΡΠ·Π½Π°Π΅ΠΌ ΠΏΡΠΎ Π½Π°ΡΠ΅Π³ΠΎ Π²ΡΠ°Π³Π° ΠΏΠΎΠ±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΠ°ΠΊΡΠΎΡΡ Π² ΠΈΠ³ΡΠ΅ Rust
ΠΠ°ΠΊΡΠΎΡ β ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π° Π²Π°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π·Π°Π΄Π°ΡΡ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ Π³Π°ΡΠΈΡ ΠΎΡΠ΄Π°ΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌ ΠΎΡΡΠΆΠΈΠΈ.
Π― Π½Π΅ Π±ΡΠ΄Ρ Π²Π°ΠΌ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, Π³Π΄Π΅ Π½Π°ΠΉΡΠΈ ΠΌΠ°ΠΊΡΠΎΡΡ, Ρ ΠΊΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ ΠΏΠΎΠΊΡΠΏΠ°ΡΡ ΠΈΡ , Π΄Π° ΠΈ ΡΡΠΎΠΈΡ Π»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈΡ ΠΏΠΎΠΊΡΠΏΠ°ΡΡ. ΠΠ°ΠΆΠ΅ ΠΏΡΠΈ Π²ΡΡΠΌ ΡΠ²ΠΎΡΠΌ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ, Π½Π΅ ΠΈΠΌΠ΅Ρ ΠΏΡΠ°Π²Π° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π»ΡΠ΄ΠΈ ΠΊΠΎΡΠΎΡΡΠΌ Π½ΡΠΆΠ½Ρ ΠΌΠ°ΠΊΡΠΎΡΡ Π½Π°ΠΉΠ΄ΡΡ ΠΈΡ , Π½ΠΎ ΠΏΡΡΡΡ ΡΠΆ ΠΎΠ½ΠΈ Π»ΡΡΡΠ΅ ΠΏΠΎΡΡΠ°ΡΡΡ ΡΠ²ΠΎΡ Π²ΡΠ΅ΠΌΡ ΠΈ Π΄Π΅Π½ΡΠ³ΠΈ, Π½Π΅ΠΆΠ΅Π»ΠΈ ΡΡΠΎ Π±ΡΠ΄Ρ Π΄Π΅Π»Π°ΡΡ Ρ.
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π² Π Π°ΡΡΠ΅
Π ΡΡΠΌ ΠΆΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ Ρ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ Π² Rust ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΈΠ³ΡΠΎΠΊΠ°ΠΌΠΈ? ΠΠ° Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎ β ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ³ΡΠΎΠΊ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΆΠΈΠΌΠ°ΡΡ Ρ ΠΏΡΠ»Π΅ΠΌΡΡΠ° Π½Π° 300 ΠΌΠ΅ΡΡΠΎΠ², ΠΏΠΎΠΏΠ°Π΄Π°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ Π² ΠΎΠ΄Π½Ρ ΡΠΎΡΠΊΡ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΅ΡΡΡ ΠΈ ΡΠ°ΠΊΠΈΠ΅ Π»ΡΠ΄ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΏΠΎ ΡΡΡΠ΅Π»ΡΠ±Π΅ Π² ΠΎΠ΄Π½Ρ ΡΠΎΡΠΊΡ, Π½ΠΎ Π½Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΆΠ΅ ΠΈΠ³ΡΠΎΠΊ ΡΠ°ΠΊ ΡΡΡΠ΅Π»ΡΠ΅Ρ. ΠΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΆΠ΅ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΡΡΠ° ΠΌΠΎΠ³ΡΡ Ρ ΠΎΡΡ Π²ΡΡ ΠΊΠ°ΡΡΡ ΠΏΠΎΠ»ΠΈΠ²Π°ΡΡ Π³ΡΠ°Π΄ΠΎΠΌ ΠΏΡΠ»Ρ.
ΠΠ°ΠΊ Π±ΠΎΡΠΎΡΡΡΡ Ρ ΠΌΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ
ΠΠΎΡΡΠ±Π° Ρ ΠΌΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ β ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ Π΄Π΅Π»ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ³ΡΠΎΠΊ. ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΠΏΡΠΈ Π²ΡΡΡΠ΅ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΠ° ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ Π½Π° Π½Π΅Π³ΠΎ ΠΆΠ°Π»ΠΎΠ±Ρ. Π£ Π½Π°Ρ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΠΎΠ΄Ρ Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ, Π³Π΄Π΅ ΠΌΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΆΠ°Π»ΠΎΠ± Π² Rust.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΠ³ΡΠ°Π΅ΡΠ΅ Π½Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΡΠΎ ΡΠ°ΠΌ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π΅ΡΡΡ ΠΌΠΎΠ΄Π΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π²Π°ΡΡ ΠΆΠ°Π»ΠΎΠ±Ρ, Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΈΠ³ΡΠΎΠΊΠ° Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, ΠΈ, Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄Π΅ΡΠ°ΡΠΈΠ΅ΠΉ Π±ΡΠ΄ΡΡ Π½Π°ΠΉΠ΄Π΅Π½Ρ ΠΌΠ°ΠΊΡΠΎΡΡ, ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΊΠ°Π·Π°Π½ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΡΡΡΠΎΠ³ΠΎΡΡΠΈ Π·Π°ΠΊΠΎΠ½Π°, Ρ ΠΎΡΡ ΠΈ ΠΈΠ³ΡΠΎΠ²ΠΎΠ³ΠΎ. ΠΠΎΡΠΎΡΠ΅, Π·Π°Π±Π°Π½ΡΡ Π½Π΅Π³ΠΎΠ΄ΡΡ.
ΠΠΎ ΠΊΠ°ΠΊ ΠΆΠ΅ Ρ Π½ΠΈΠΌΠΈ ΠΏΠ΅ΡΠ΅ΡΡΡΠ΅Π»ΠΈΠ²Π°ΡΡΡΡ? ΠΠΈΡΠ½ΠΎ Ρ Π΄Π΅Π»Π°Ρ ΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ β Π½Π΅ ΠΌΠΎΠ³Ρ Π²Π·ΡΡΡ ΡΡΡΠ΅Π»ΡΠ±ΠΎΠΉ, ΡΡΠ³ΡΠ°Ρ ΠΎΡ ΡΠ°ΠΊΡΠΈΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ, ΠΏΡΡΠ°ΡΡΡΡ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠ°, Π·Π°ΠΊΠΈΠ΄Π°ΡΡ Π΅Π³ΠΎ Π΄ΡΠΌΠ°ΠΌΠΈ ΠΈ Π³ΡΠ°Π½Π°ΡΠ°ΠΌΠΈ, Π±Π»Π°Π³ΠΎ Π΅ΡΡΡ Π³ΡΠ°Π½Π°ΡΠΎΠΌΡΡ.
ΠΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΊ ΠΌΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΏΠ»ΠΎΡΠ½ΡΡ, ΡΠΎ ΡΡΡ ΡΠΆΠ΅ Π²Π°ΡΠΈ ΡΠ°Π½ΡΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ. ΠΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠΏΡΡΡΠΈΡΡ ΠΏΠ°ΡΡ ΠΏΡΠ»Ρ Π² Π³ΠΎΠ»ΠΎΠ²Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅Ρ Π²Π°Ρ ΠΎΠΏΠΏΠΎΠ½Π΅Π½Ρ.
ΠΠ°ΠΊΡΠΎΡΡ Π² ΠΈΠ³ΡΠ΅ Rust Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ
ΠΠ΅ ΡΠ°ΠΊ Π΄Π°Π²Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Rust Π²Π²Π΅Π»ΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΡΡΠ΅ΠΊ Bloody, X7 ΠΈ ΠΏΡΠΎΡΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΡ ΡΠ΅ΡΠ΅Π· Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ΅ ΠΠ. Π’Π°ΠΊΠΈΠ΅ Π΄Π΅Π²Π°ΠΉΡΡ Π±ΡΠ»ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ Π·Π°ΠΉΡΠΈ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π΅Π»ΡΠ·Ρ! ΠΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Ρ ΡΠ΅Π»ΡΡ Π·Π°ΡΠΈΡΡ ΠΈΠ³ΡΠΎΠΊΠΎΠ² ΠΎΡ ΠΌΠ°ΠΊΡΠΎΡΠ½ΠΈΠΊΠΎΠ². ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π²ΠΎΠΏΡΠΎΡ β ΠΊΠ°ΠΊ ΠΈΠ³ΡΠ°ΡΡ Ρ ΠΌΡΡΠΊΠΎΠΉ Π±Π»Π°Π΄ΠΈ Π² ΡΠ°ΡΡ? ΠΡΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΠ΅ Π»Π΅Π³Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΈΠ³ΡΡΡΠ½Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ: ΠΈ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΌΡΡΠΊΠΎΠΉ, Π½ΠΎ ΠΌΠ°ΠΊΡΠΎΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ, ΠΈ Π΄Π»Ρ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅Π² ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² (Π·Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ). Π£ Π½Π°Ρ Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΡΠ°ΡΡΡ, Π³Π΄Π΅ ΠΌΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΈΠ³ΡΠ°ΡΡ Π² rust Ρ ΠΌΡΡΠΊΠΎΠΉ bloody. Π’Π°ΠΌ ΠΌΡ ΡΠ°ΡΡΠΊΠ°Π·Π°Π»ΠΈ ΠΏΡΠΎ ΠΎΠ±Ρ ΠΎΠ΄ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΡΡΠΊΠΈ bloody rust, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·Π°Π»ΠΈ ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅ Π±Π»Π°Π΄ΠΈ Π² ΡΠ°ΡΡ.
ΠΠΈΡΠ΅ΠΌ API Π½Π° Rust Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΠΎΠ±Π°ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°Π·Π±ΠΎΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΌΠ°ΠΊΡΠΎΡΠ° Π·Π°ΡΠ°ΡΡΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² «Π·Π°ΠΊΠ°Ρ ΡΠΎΠ»Π½ΡΠ° Π²ΡΡΡΠ½ΡΡ», ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΡΠ°ΡΡ Π½Π° ΠΎΡΠ΅Π½Ρ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅.
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Ρ ΠΎΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΠ΄Π°ΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°ΠΌΠΈ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ², ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ.
ΠΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π·Π°Π΄Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ΅ΡΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²: ΠΌΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ RPC API Π² Π²ΠΈΠ΄Π΅ ΡΡΠ΅ΠΉΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠΎΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ, ΡΠ°ΠΊ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ; Π° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π½Π°ΠΌ Π±Π΅Π· ΠΊΡΡΠΈ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ API, Π·Π°Π΄Π°ΡΠ° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½Π°Ρ, ΠΈ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΡΠΎΡΠ΅Π³ΠΎ, ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ².
Π‘Π°ΠΌ API Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΏΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ: Π΅ΡΡΡ 4 ΡΠΈΠΏΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ²:
ΠΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π²Π°Π»ΠΈΠ΄Π½ΡΠΌ JSON ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ.
Π ΠΈΠ΄Π΅Π°Π»Π΅ Ρ ΠΎΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅:
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΠΏΠΎΠΌΠ½Ρ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΌΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ Π² Rust’Π΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π½Π° Π²Ρ
ΠΎΠ΄ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
Π ΡΠ°ΠΌΠΊΠ°Ρ
ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΄Π²Π° Π²ΠΈΠ΄Π° ΡΠ°ΠΊΠΈΡ
ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²: derive-ΠΌΠ°ΠΊΡΠΎΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΡΡΡΠΊΡΡΡΡ (ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΎΠ½ΠΈ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ ΠΏΠΎ serde ), ΠΈ Π°ΡΡΠΈΠ±ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠΏΠ΅ΠΊΡΡΠ° Π·Π°Π΄Π°Ρ.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠ°ΠΊΡΠΎΡ FromUrlQuery
ΠΠ°ΠΊ ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΠ°ΠΌΡΠΉ ΠΈΠ΄ΠΈΠΎΠΌΠ°ΡΠΈΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² β ΡΡΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΡΠ°, Π° ΠΏΠΎΡΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π΅Π³ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π² Π΄Π΅ΡΠ°ΠΉΠ²-ΠΌΠ°ΠΊΡΠΎΡΠ°Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ΄, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅Π»Π΅ΠΉ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π½Π΅Π΄ΠΎΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ.
ΠΡΠ°ΠΊ, ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΡΠ²ΠΈΠΌ Π½Π°Ρ ΡΡΠ΅ΠΉΡ ΠΏΠΎ ΡΠ°Π·Π±ΠΎΡΡ URL query. ΠΠ°Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΠ· ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠΎΡ ΡΡΠ΅ΠΉΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½. ΠΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊ:
Π§ΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΡΠΎΡ ΡΡΠ΅ΠΉΡ, Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΉ ΠΌΠ°ΠΊΡΠΎΡ. ΠΠ°Π½Π½ΡΠΉ ΠΌΠ°ΠΊΡΠΎΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΈΠΏΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² derive ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ±ΡΡΠ½ΠΎ ΠΊΠΎΠ΄ ΡΠ°Π·Π±ΠΎΡΠ° AST ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΌΠ°ΠΊΡΠΎΡΠ° ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΊΠΎΡΠΌΠ°Ρ, Π²ΡΠ³Π»ΡΠ΄ΡΡΠΈΠΉ ΠΊΠ°ΠΊ ΠΊΡΡΠ° Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ, ΠΏΠΎΠ½ΡΡΡ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ.
Π darling ‘Π΅ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ², Π½ΠΎ Π½Π°Ρ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π½ΠΈΡ .
Π₯ΠΎΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ Π·Π½Π°ΡΡ, ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ΅ ΡΡΠΎ ΠΏΠΎΠ»Π΅ ΠΈΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠ³Π½Π°ΡΡΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ:
Π Π²ΡΠ΅, Π½Π° ΡΡΠΎΠΌ Π½Π°Ρ ΠΏΠ°ΡΡΠ΅Ρ Π³ΠΎΡΠΎΠ².
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°.
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ FromUrlQuery :
ΠΠ°, ΡΡΠΎ Π²ΡΠ΅ ΡΠΆΠ΅ Π½Π΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΈΠ»ΠΈ ΠΎΡΠ΅Π½Ρ ΡΡΡΠΈΠ½Π½ΡΠΌ, ΠΏΠΎ ΡΡΡΠΈ ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΈΡΠ΅ΠΌ ΡΠΎ, ΡΡΠΎ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ, Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ Π½Π΅ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΊΠΎΠ³Π½ΠΈΡΠΈΠ²Π½ΡΠΌΠΈ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌΠΈ, Π° Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ»ΡΡΠ°Ρ Π²Π΅ΡΡΠΌΠ° Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΡΠΉ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΠΎ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΆΠΈΠ·Π½Ρ Π±ΡΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ; Π²ΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ Π΄Π΅ΡΠ°ΠΉΠ² ΠΌΠ°ΠΊΡΠΎΡ, Π° Π°ΡΡΠΈΠ±ΡΡΠ½ΡΠΉ.
ΠΠΈΡΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΎΡ http_api
ΠΠΎΠ΄ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΠΎΡ ΡΠ°ΠΊ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ Π°ΡΡΠΈΠ±ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΠ³Π°ΡΡΡΡ Π½Π° Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΈΠΌΡ.
Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΡΠ°
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΠ΅ΠΉΡΠ° Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠ±ΡΡΠ²ΠΈΠΌ ΡΠΈΠΏΡ HTTP Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠΌΠ΅Π΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ:
Π ΠΎΠ±ΡΡΠ²ΠΈΠΌ Π½Π°Π±ΠΎΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΠ°Π·Π±ΠΎΡΡ ΡΠΈΠ³Π½Π°ΡΡΡΡ. ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» Π²ΡΡΠ΅, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ
Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° β Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΈ Π±Π΅Π· ΠΎΠ½ΠΎΠ³ΠΎ:
Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠ°Π·Π±ΠΎΡΡ ΡΡΠ΅ΠΉΡΠ° Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Π² ΡΠ΅Π»ΠΎΠΌ. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΡΠ΅ΠΉΡ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΡΡΠΎΠΈΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠ°Π·Π±ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ
ΠΌΡ ΠΎΠΏΠΈΡΠ°Π»ΠΈ Π²ΡΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π°ΡΡΠΈΠ±ΡΡΠΎΠ².
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ Π΅Π³ΠΎ Π±Π΅Π· ΠΎΡΠΎΠ±ΡΡ
ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ:
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π½Π° GET Π·Π°ΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ JSON, ΡΠΎ ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΈΡΠ΅ΠΌ ΡΡΠΎ-ΡΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΡΡΠΈΠ»Π΅:
ΠΠ»Ρ ΡΠ»ΡΡΠ°Ρ Ρ GET Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΌΡ Π»ΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΎΠ±Π΅ΡΡΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ Π²ΡΡΠ΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠ»ΡΡΡ Π² ΡΠ΅ΠΏΠΎΡΠΊΡ:
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ Π΄Π²ΡΡ ΡΠΈΠΏΠΎΠ² Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠΈΡΡΡΡΡ ΡΡ ΠΎΠΆΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
Π‘ΠΎΠ±ΠΈΡΠ°Π΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ
Π ΡΠ΅ΠΏΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΎΡΠ° or ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌ Π²ΡΠ΅ ΡΠΈΠ»ΡΡΡΡ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ Ρ Ρ
ΠΎΡΠ΅Π» ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ derive ΠΌΠ°ΠΊΡΠΎΡΡ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½Ρ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ,
Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΠΌ.
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΠΉΡΠΎΠ² Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π΅Π½, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ
Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ RPC, ΡΠ²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Ρ Π½Π° Rust’Π΅.
ΠΠ΅ΡΡΡΠ΄Π½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΏΠ°ΠΆΠ°-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ HTTP
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΡΠΈΠΏΠ° reqwest ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΈΠ±ΠΈΡΡΡΡ Π² ΡΠΎΠΏΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° ΠΊΠΎΡΠ½Ρ.
ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠΎΠ΄, ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎ ΡΡΠΎΠΉ
ΡΡΡΠ»ΠΊΠ΅.
Rust: Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ ΠΌΠ°ΠΊΡΠΎΡΡ
ΠΠ°ΠΊ-ΡΠΎ Ρ ΡΠΊΠ°Π·Π°Π» ΡΠ²ΠΎΠ΅ΠΌΡ ΠΊΠΎΠ»Π»Π΅Π³Π΅, ΡΡΠΎ Π² Rust ΠΈΠΌΠ΅ΡΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΡ, Π΅ΠΌΡ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΏΠ»ΠΎΡ ΠΎ. Π Π°Π½ΡΡΠ΅ Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π° ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΡΠ΅Π°ΠΊΡΠΈΡ, Π½ΠΎ Rust ΠΏΠΎΠΊΠ°Π·Π°Π» ΠΌΠ½Π΅, ΡΡΠΎ ΠΌΠ°ΠΊΡΠΎΡΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ»ΠΎΡ ΠΈ.
ΠΠ΄Π΅ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ ΡΠΌΠ΅ΡΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ? Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ.
ΠΠΎΡΠ΅ΠΌΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠΏΠ°ΡΠ°ΡΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ²
ΠΠ°ΠΊΡΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΡΠΌΠΎΠΉ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎ ΠΏΠ»ΠΎΡ ΡΡ ΡΠ΅ΠΏΡΡΠ°ΡΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΡΠΈ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅Π»Π΅Π³ΠΊΠΎ ΡΠ±Π΅ΡΠ΅ΡΡΡΡ ΠΎΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ»ΠΎΡ ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ»ΡΠΆΠ°Ρ #define Π² C, ΠΊΠΎΡΠΎΡΡΠΉ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠ»ΠΈ eval Π² JavaScript, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΠΊΠΎΠ΄Π°.
Π ΠΌΠ°ΠΊΡΠΎΡΠ°Ρ Π² Rust
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΡ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅ΡΠ΅Π½Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΠ΅Π΄ΡΡΠ², ΠΌΠ°ΠΊΡΠΎΡΡ ΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°:
ΠΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ Π·Π°Π΄Π°Ρ:
ΠΠΎΡΠ΅ΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ
ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΠΊΡΠΎΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ? ΠΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ β ΠΎΠ½ΠΈ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΈΡ , ΠΌΠ°ΠΊΡΠΎΡΡ, Π±ΡΠ»ΠΎ Π»Π΅Π³ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡ ΡΡΠΎΠΈΡ Π½Π΅ Π² ΡΠΎΠΌ, Π»ΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠΉ ΡΠΈΠΏ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ Π½Π΅Ρ, Π° Π² ΡΠΎΠΌ, Π½ΡΠΆΠ½Π° Π»ΠΈ Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ΅Π½ΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄.
ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ
ΠΠ°Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΌΠ°ΠΊΡΠΎΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, ΠΌΡ ΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, Π½Π΅ Π²ΡΡΠ°Π²Π»ΡΡ Π΅Π³ΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΡΡΠ½ΡΡ.
Π’ΠΈΠΏΠΎ-Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΎΡΠΌΠ°ΡΠΎΠΌ ΡΡΡΠΎΠΊ
ΠΠ΅Π³ΠΊΠΎΠ΅ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΄Π°Π΄ΠΈΠΌΡΡ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ ΡΠ·ΡΠΊΠ°. Rust ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ°ΠΊΠ΅Ρ log, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π³Π»Π°Π²Π½ΡΠΉ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΊ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, Π΄Π°Π½Π½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ, Π° Π½Π΅ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ.
ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΌΠΎΡΠ½ΠΎΡΡΡ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ°ΠΊΡΠΎΡΡ file! ΠΈ line! ; ΠΠ°Π½Π½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ. Π’Π°ΠΊ ΠΊΠ°ΠΊ log ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄ΠΎΠΌ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π±ΡΠΊΠ΅Π½Π΄, ΠΏΠ°ΠΊΠ΅Ρ flexi_logger.
ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ:
ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, Π½Π°ΡΠΈ Π»ΠΎΠ³ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΈΠΌΠ΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΡΠΎΠΊ.
Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΡΠ°Π²Π»ΡΠ΅Ρ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ. ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ Π½Π΅ ΡΠ΅ΡΠ°Π»ΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΠΎ Π½Π°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΌΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΠΎ ΡΡΠ΅Π²Π°ΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΠΈ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
ΠΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π»ΠΎΠ³ΠΈΡΡΡΡΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°ΡΡ file! ΠΈ line! :
Π Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π²ΡΠ²Π΅Π» Π±Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠΎΡΠ΅ΠΌΡ Π°ΡΡΠΈΠ±ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ
Rust Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΠΏΠΎΠΌΠ΅ΡΠΊΠΈ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΠ°ΠΏΡΡΠΊ cargo test Π·Π°ΠΏΡΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΡΠΈΠ±ΡΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ «ΡΠΎΠ΄Π½ΡΠΌ» Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌ, Π½ΠΎ ΠΈΠΌΠ΅ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΠ΅ΠΊΡΡ. ΠΠ° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅: Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅ ΠΈΠ· Π²Π΅ΡΠΊΠΈ stable ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡ derive, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π½ΠΎΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΠ°Ρ . Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π·Π½ΠΈΡΡ Π½ΠΈΠΆΠ΅.
Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΈΠ²Π½ΡΠΌΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ, ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Ρ ΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (boilerplate)
Derive Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ
derive ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π°ΡΡΠΈΠ±ΡΡΠΈΠ²Π½ΡΠΌΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΏΠ°ΠΆΠ΅ΠΉ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² Π½ΠΎΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΠ°Ρ , ΡΡΠΎ, Π½Π°Π΄Π΅ΡΡΡ, Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ Π³ΠΎΠ΄Ρ.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²ΡΠ΄Π°ΡΡΠΈΠΌΡΡ ΡΠ»ΡΡΠ°Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Rocket β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ REST-endpoint’ΠΎΠ² ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ° ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊ ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ°.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ
ΠΠ°ΠΊΡΠΎΡΡ Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½Ρ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
ΠΡΠ²ΠΎΠ΄Ρ
ΠΠ°ΠΊΡΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΌΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. ΠΠ°Π΄Π΅ΡΡΡ, ΡΠΌΠΎΠ³ Π²Π½ΡΡΠΈΡΡ Π²Π°ΠΌ ΠΌΡΡΠ»Ρ, ΡΡΠΎ ΠΌΠ°ΠΊΡΠΎΡΡ Π² Rust ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΌΠ΅ΡΡΠ½ΠΎ.
Π§Π΅ΡΠ½Π°Ρ ΠΌΠ°Π³ΠΈΡ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ: ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ°ΠΊΡΠΎΡΡ Π² Rust 1.15
Π ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠ° Rust β ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΌΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°ΠΌΠΈ.
ΠΠ°ΠΊ ΠΈ ΠΎΠ±Π΅ΡΠ°Π», ΡΠ΅Π³ΠΎΠ΄Π½Ρ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΈ Π² ΡΠ΅ΠΌ ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠ΅ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π² C/C++.
ΠΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠΉΠ΄Π΅ΠΌΡΡ ΠΏΠΎ ΡΠ΅Π»ΠΈΠ·Ρ 1.15 ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Π΄ΡΡΠ³ΠΈΡ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π°Ρ , ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΠ½ΠΈ ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Ρ.
Π§ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ?
Π―Π·ΡΠΊ Rust ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ. ΠΠ·Π΄Π°ΡΠ΅Π»ΠΈ, Π½Π°ΡΡΡΠ°Π»ΡΠ½ΠΎ, Π½Π΅ ΡΡΠΏΠ΅Π²Π°ΡΡ ΠΈ Π½Π΅ Π±Π΅ΡΡΡΡΡ Π²ΡΠΏΡΡΠΊΠ°ΡΡ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΡΡΡΠ°ΡΠ΅Π²Π°ΡΡ Π΅ΡΠ΅ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°Ρ Π²ΡΡΠΎΡ Π½Π΅Ρ ΠΊΡΠ°ΡΠΊΠ°.
ΠΠΎΡΡΠΎΠΌΡ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π² ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΠ½ΠΈΠ³Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΡΠ²Π΅ΡΠΎΠ² Π½Π° Π²ΠΎΠΏΡΠΎΡΡ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². ΠΠ»Ρ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ°ΡΡΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΠ°Π·Π΄Π΅Π» FAQ.
Π’Π΅ΠΌ, ΠΊΡΠΎ ΡΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ , ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²Π·ΡΠΎΡΠ»ΡΠΉ, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Π΄ΡΡΠ³Π°Ρ ΠΊΠ½ΠΈΠ³Π°. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΎΠ½Π° Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄Π°Π΅Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΠΉΡΠΈ Π½Π° ΡΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅. Π ΡΠ΅ΠΌ, ΠΊΠΎΠΌΡ Π½ΡΠ°Π²ΠΈΡΡΡ ΡΡΠΈΡΡΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ , ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ Rust by Example.
ΠΡΠ΄ΡΠΌ, Π·Π½Π°ΠΊΠΎΠΌΡΠΌ Ρ C++, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΠΊΠ½ΠΈΠ³Π°, Π° ΡΠΎΡΠ½Π΅Π΅ porting guide, ΡΡΠ°ΡΠ°ΡΡΠ°ΡΡΡ ΠΏΠΎΠ΄Π°ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ C++ ΠΈ Π΄Π΅Π»Π°ΡΡΠ°Ρ Π°ΠΊΡΠ΅Π½Ρ Π½Π° ΡΠ°Π·Π»ΠΈΡΠΈΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΈ Π½Π° ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Rust ΡΠ΅ΡΠ°Π΅Ρ Π»ΡΡΡΠ΅.
ΠΡΠ»ΠΈ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΡΠ·ΡΠΊΠ° ΠΈ Π²Π·Π³Π»ΡΠ΄ Ρ ΡΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ Π±Π°ΡΡΠΈΠΊΠ°Π΄, ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π±Π»ΠΎΠ³ΠΈ Aaron Turon ΠΈ Niko Matsakis. Π Π΅Π±ΡΡΠ° ΠΏΠΈΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΆΠΈΠ²ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΈ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΎ ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ ΡΠ·ΡΠΊΠ° ΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΈΡ ΡΠ΅ΡΠ°ΡΡ. ΠΠ°ΡΠ°ΡΡΡΡ ΠΈΠ· ΡΡΠΈΡ Π±Π»ΠΎΠ³ΠΎΠ² ΡΠ·Π½Π°Π΅ΡΡ ΠΊΡΠ΄Π° Π±ΠΎΠ»ΡΡΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠ΅ΠΌ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ².
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π±ΠΎΠΈΡΠ΅ΡΡ Π΄ΡΠ°ΠΊΠΎΠ½ΠΎΠ² ΠΈ ΡΠ΅ΠΌΠ½ΡΡ ΡΠ³Π»ΠΎΠ², ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° Π Π°ΡΡΠΎΠ½ΠΎΠΌΠΈΠΊΠΎΠ½. Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Ρ, ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ ΡΠΆΠ΅ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Rust ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠΏΡΠΎΡΠ΅ΠΌ, Ρ ΠΎΡΠ²Π»Π΅ΠΊΡΡβ¦
ΠΠΎΠ²ΠΎΠ΅ Π² Rust 1.15
Π‘ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²ΡΠΏΡΡΠΊΠ° 1.14 ΠΏΡΠΎΡΠ»ΠΎ ΠΎΠΊΠΎΠ»ΠΎ 6 Π½Π΅Π΄Π΅Π»Ρ. ΠΠ° ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π² Π½ΠΎΠ²ΡΠΉ ΡΠ΅Π»ΠΈΠ· ΡΡΠΏΠ΅Π»ΠΈ Π²ΠΎΠΉΡΠΈ 1443 ΠΏΠ°ΡΡΠ° (Π½Π΅ΡΠ»Π°Π±ΠΎ, ΠΏΡΠ°Π²Π΄Π°?) ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π±Π°Π³ΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΠΈΠ΅ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ. Π Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π½Π° Π΄Π½ΡΡ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΠΈ Ρ ΠΎΡΡΠΈΠΊΡ 1.15.1, Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ, Π½ΠΎ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ.
ΠΠ° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π°Π½ΠΎΠ½ΡΠ° ΠΈΠ»ΠΈ ΠΊ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (changelog). ΠΠ΄Π΅ΡΡ ΠΆΠ΅ ΠΌΡ ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΡΠ΅ΠΌΡΡ Π½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ .
Cargo ΡΠΆΠ΅ Π²Π·ΡΠΎΡΠ»ΡΠΉ
CΠΈΡΡΠ΅ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Rust Π±ΡΠ»Π° ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π° Π½Π° ΡΠ°ΠΌ Rust Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Cargo β ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΏΡΠΈΠ½ΡΡΠΎΠΉ Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ Rust.
Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Cargo ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠΎ Π±ΡΠ» Π΄ΠΎΠ»Π³ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π½ΠΎ ΠΎΠ½ Π½Π°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ ΠΏΡΠΈΠ½Π΅Ρ ΡΠ²ΠΎΠΈ ΠΏΠ»ΠΎΠ΄Ρ. ΠΠ²ΡΠΎΡΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ Π½ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Ρ Π΄Π΅ΠΊΠ°Π±ΡΡ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° Π² master Π²Π΅ΡΠΊΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ ΠΏΠΎΠΊΠ° Π²ΡΠ΅ ΠΈΠ΄Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ.
Π£ΠΆΠ΅ Π΄Π°ΠΆΠ΅ Π·Π°Π²Π΅Π»ΠΈ ΡΠΆΠ΅ Π²ΠΌΠ΅ΡΠΆΠΈΠ»ΠΈ pull request Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ makefile; ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π° Π½Π° ΡΠ΅Π»ΠΈΠ· 1.17.
ΠΡΠ΅ ΡΡΠΎ Π³ΠΎΡΠΎΠ²ΠΈΡ ΠΏΠΎΡΠ²Ρ ΠΊ ΠΏΡΡΠΌΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ· crates.io Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΠΊΠ°ΠΊ ΠΈ Π² Π»ΡΠ±ΠΎΠΌ Π΄ΡΡΠ³ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅. Π Π΅ΡΠ΅ ΡΡΠΎ Π½Π΅ΠΏΠ»ΠΎΡ Π°Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Cargo.
ΠΠΎΠ²ΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠΆΠ΅ Π΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Rust Π² embedded ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ Π΄Π»Ρ Π²ΡΡΡΠ½Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ ΡΡΠΎΠΉ ΠΏΠΎΠΊΠ° ΠΌΠ°Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠΉ, Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠΉ Π³ΡΡΠΏΠΏΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΡΡΡΡΠ΅Π΅! ΠΡΡΠ΅! Π‘ΠΈΠ»ΡΠ½Π΅Π΅!
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΡΠ°Π» Π±ΡΡΡΡΠ΅Π΅. Π Π½Π΅Π΄Π°Π²Π½ΠΎ Π΅ΡΠ΅ ΠΈ ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΡΠ»Π° Π² ΡΠ°Π·Ρ Π±Π΅ΡΠ°-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ° ΠΌΠΎΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠΌΠ΅Π½ΡΡΠΈΠ»ΠΎΡΡ Ρ
4 ΡΠ΅ΠΊΡΠ½Π΄, Ρ ΠΎΡΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ° Π²ΡΠ΅ Π΅ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΠΎΠΊΠ° ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½ΠΎΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΠ°Ρ ΠΈ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ ΡΠ°Π΄ΡΠ΅Ρ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ slice::sort() Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½ ΠΈ ΡΡΠ°Π» Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅. Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΎ Π³ΠΈΠ±ΡΠΈΠ΄Π½Π°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠΎΠ΄ Π²Π»ΠΈΡΠ½ΠΈΠ΅ΠΌ Timsort. Π Π°Π½ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π°ΡΡ ΠΎΠ±ΡΡΠ½Π°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ.
Π C++ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π»ΠΎΠΆΠΈΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°. Π Π°Π±ΠΎΡΡ Π² ΡΡΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π²Π΅Π΄ΡΡΡΡ, Π½ΠΎ ΠΏΠΎΠΊΠ° Π²ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ.
Π‘ΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ Rust Π²ΡΠ΅Π³Π΄Π° ΡΠΌΠ΅Π» Π·Π°Π΄Π°Π²Π°ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ°ΠΆΠ΅ΠΉ, Π½ΠΎ Ρ Π½Π΅Π΄Π°Π²Π½ΠΈΡ ΠΏΠΎΡ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π° ΡΠΎΡΠ½Π΅Π΅ ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π·Π°Π΄Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠ³ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ°ΡΡΠ½ΡΡ ΡΠ»ΡΡΠ°Π΅Π², Π½Π΅ Π½Π°ΡΡΡΠ°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° IDE
ΠΡΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅Ρ Π² ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΌ Rust, Π½ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π½ΠΎΠ²ΠΎΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ, ΡΡΠΎΠ±Ρ ΠΎ Π½Π΅ΠΉ ΡΠΌΠΎΠ»ΡΠ°ΡΡ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Rust Language Server ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ ΠΎ Π²ΡΡ ΠΎΠ΄Π΅ Π°Π»ΡΡΠ°-Π²Π΅ΡΡΠΈΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ Π΄Π΅ΡΠΈΡΠ°.
Language Server Protocol ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°ΠΌ ΠΈ ΡΡΠ΅Π΄Π°ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠ±ΡΠ°ΡΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌΠΈ. ΠΠ½ Π°Π±ΡΡΡΠ°Π³ΠΈΡΡΠ΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³, ΡΠ°Π±ΠΎΡΡ Ρ Π±ΡΡΠ΅ΡΠ°ΠΌΠΈ ΠΈ Ρ.Π΄.
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΈΠ»ΠΈ IDE, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ LSP Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π²ΡΠ΅Ρ LSP-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ ΡΠ·ΡΠΊΠΎΠ².
Π£ΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°Ρ , ΡΠΎΠ»ΡΠΊΠΎ Π°Π²ΡΠΎΡΡ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ²Π΅ΡΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ ΡΠ²ΠΎΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ, ΠΈΠ±ΠΎ ΠΊΠΎΠ΄ Π΅ΡΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠΎΠΉ.
ΠΠ°ΠΊΡΠΎΡΡ Π² Rust
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠΈΠΌ Π±Π°ΡΠ°Π½Π°ΠΌ.
Π‘ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Ρ ΠΎΡΠ΅Π»ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠΌΠ΅Π½ΡΡΠ΅, Π° ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ±ΠΎΠ»ΡΡΠ΅. Π ΡΠ°Π·Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ ΡΡΠΈΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΠΈ, Π½ΠΎ ΡΡΠ»ΠΎΠ²Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°:
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΉ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ: ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠ»Π°ΡΡΡ ΠΈ Ρ. ΠΏ.
Π Π²ΡΠΎΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ ΠΌΠ°ΠΊΡΠΎΡΡ, ΠΈΠ½ΠΊΠ»ΡΠ΄Ρ ΠΈ ΠΏΡΠΎΡΠΈΠΉ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΈΠ½Π³. Π ΡΠ·ΡΠΊΠ΅ Rust Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ ΡΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°:
ΠΠ±ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ (Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ macro by example) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΎΡΠ΅ΡΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½ΠΎ Π²ΡΠ΄Π΅Π»ΡΡΡ Π΅Π³ΠΎ Π² ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ, Π»ΠΈΠ±ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ°ΠΊΡΠΎΡΡ vec! ΠΈΠ»ΠΈ println! ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ°ΠΊΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ². ΠΠ°Π΄Π°ΡΡΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. Π Π°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΠΎΠ±ΡΠ°Π·ΡΡ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Π±Π°Π·Π΅ ΡΠ°Π±ΠΎΡΡ 1986-Π³ΠΎ Π³ΠΎΠ΄Π°, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠΎΠΏΡΡΠΊΠΎΠΉ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ², ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π° Π½Π° Rust, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π±ΠΎΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ². ΠΡΠΈ ΡΠΎΠΊΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°.
ΠΠ»Π°Π³ΠΈΠ½Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΌΡΠΌ ΠΌΠΎΡΠ½ΡΠΌ, Π½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΠΈ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌ (Π² ΡΠΌΡΡΠ»Π΅ API) ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½ΠΎΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΠ°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°. Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠΈΠΌΡΠΊΠΈΡ ΡΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΡΠ»ΠΎΠ²ΡΡ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ ΠΌΠ°ΠΊΡΠΎΡΠ°
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ°ΠΊΡΠΎΡΡ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ°ΠΊΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΅Π»ΡΠΉ impl Π±Π»ΠΎΠΊ, ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ ΡΠΈΠΏΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΊΡΠΎ-Π²ΡΡΠ°Π²ΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΠΌΠ΅ΡΡΠ°Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ:
ΠΠ°ΠΊΡΠΎΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ , ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΡΠΈΡ impl Π΄Π»Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±ΠΈΠ»ΠΎΡΠ΅ΠΊΠ΅ Rust ΠΌΠ°ΠΊΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΏΠ°ΠΆΠ° PartialEq Π΄Π»Ρ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΉ ΡΡΠ΅Π·ΠΎΠ², ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ Π²Π΅ΠΊΡΠΎΡΠΎΠ²:
Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ΠΌΠ΅ΡΠ°ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΡΡΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ»ΠΎΠ²ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΡΡΡΠ΅ΡΠΈΠ² Π² ΠΊΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠ°, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ±Π΅ΡΠ΅Ρ ΡΡ Π²Π΅ΡΠ²Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ Π² Π΄Π΅ΡΠ΅Π²Π΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠ° Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΡΠ»ΠΈ Π² ΡΠ΅Π»Π΅ ΠΌΠ°ΠΊΡΠΎΡΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π΅ Π½Π°ΡΠ»ΠΎΡΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
Π§ΠΈΡΡΠΎΡΠ° ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ
ΠΠ°ΠΊΡΠΎΡ Π² Rust Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π΅ Π²ΡΡΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π°Π»ΠΈΠ΄Π½ΡΠΌ ΠΌΠ°ΠΊΡΠΎΡΠΎΠΌ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π² C/C++.
Π Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½ΠΎΠΌ Ρ Π²ΠΈΠ΄Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° ΠΌΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π²ΡΡΠ°ΡΠΈΠ»ΠΈ Π΄Π²Π°, Π²ΡΡΠΈΡΠ»ΠΈΠ»ΠΈ Π½Π΅ ΡΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ, Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΡΡΠΎΠΊΠΎΠΉ Π΅ΡΠ΅ ΠΈ ΡΠΏΡΠΎΠ²ΠΎΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π’ΡΠΈ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π° Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° β ΡΡΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ²Π°ΡΠΎ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ, Π½ΠΎ ΠΌΡ Π²ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΎΡΠ½Π½Π°Ρ ΡΠΌΠ΅Π½Π° ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ Π»ΡΠ΄Π΅ΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΡΡΠ°ΡΡ Π΄Π°ΠΆΠ΅ Ρ ΠΎΡΠΎΡΠΈΠΉ Π½Π΅ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄.
ΠΠΎΡΠ΅Π½Ρ Π·Π»Π° Π»Π΅ΠΆΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ C/C++ ΠΎΡΡΠ΄ΡΠ΅Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΅ΠΊΡΡΠ°, Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΡΡΠ΅Π½Π½ΡΡ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ°ΠΏΡΠΎΡΠΈΠ², ΠΌΠ°ΠΊΡΠΎΡΡ Π² Rust ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°ΠΌΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅.
Π’Π°ΠΊΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π³ΠΈΠ³ΠΈΠ΅Π½ΠΈΡΠ½ΡΠΌΠΈ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΌΠ°ΠΊΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π²ΠΈΠ΄ΠΈΠΌΡΡ Π·Π° Π΅Π³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ.
ΠΠ°ΡΠΎ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΌΠ°ΠΊΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π²ΠΎΠ΄ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΡΡΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π²ΡΡΠ΅ ΠΏΠΎ ΠΊΠΎΠ΄Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡ vec! ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΠ²Ρ:
ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ Π²
ΠΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ
ΠΠΎΠ³Π΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΠ±ΡΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, Π² Π±ΠΎΠΉ ΠΈΠ΄ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠ΅.
ΠΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΡΠΎΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π²Π΅ΡΠ½ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ², ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, Π° ΡΠΎΡΠ½Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΡ ΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΈΠ·ΡΡΠ°ΡΡ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ΄ΠΎΠΏΡΡΠ½ΠΎΠ³ΠΎ ΠΊΡΠΎΠ»ΠΈΠΊΠ° Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° #[derive(new)] ΠΈΠ· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
Π’ΠΎ Π΅ΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ² Π°ΡΡΠΈΠ±ΡΡ #[derive(new)] ΠΌΡ ΠΏΠΎΠΏΡΠΎΡΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈβ¦ Π° ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ? ΠΡΠΊΡΠ΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎΠΉΠΌΠ΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ? ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π·Π°Π³Π»ΡΠ½Π΅ΠΌ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊ ΡΡΠ°ΡΡΡΡ ΠΎΠ½ Π½Π΅ ΡΠ°ΠΊΠΎΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ:
Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΏΠΎ ΠΊΠΎΡΡΠΎΡΠΊΠ°ΠΌ ΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ.
ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΡΡΡΠΏΠ°ΡΡΠ°Ρ Π² ΡΠΎΠ»ΠΈ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΉ ΠΌΠ°ΠΊΡΠΎΡ:
ΠΠ° Π²Ρ ΠΎΠ΄ ΠΎΠ½Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π°Π±ΠΎΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈΠ· ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠ΅Π»ΠΎ ΠΌΠ°ΠΊΡΠΎΡΠ°. ΠΠ° Π²ΡΡ ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΡΡΠ³ΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ², ΡΠ²Π»ΡΡΡΠΈΡ ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠ½ΠΊΡΠΈΡ derive() ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½ΡΠΉ ΡΠΈΠ»ΡΡΡ.
ΠΡΠ»ΠΈ ΡΠ΅ΡΡΠ½ΠΎ, Ρ ΡΠΎΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, Π·Π°ΡΠ΅ΠΌ ΡΠ°ΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ΄Π°-ΡΡΠ΄Π° ΡΠ΅ΡΠ΅Π· ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ ΡΡΠ°Π·Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π½Ρ Π΄Π° Π»Π°Π΄Π½ΠΎ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ.
ΠΡΠ°ΠΊ, Π½Π° Π²Ρ ΠΎΠ΄ Π½Π°ΠΌ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄Π°ΡΡ:
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΊΠΎΠ΄, Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΠΉ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ. ΠΠ΄Π΅ΡΡ ΠΊΠΎΠ΄ Π΄ΡΠΎΠ±ΠΈΡΡ ΡΠΆΠ΅ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π²ΡΡΠ°Π²Π»Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΡΠΌΠΎ Π² ΡΠ΅ΠΊΡΡ:
ΠΡΡ Ρ ΠΈΡΡΠΎΡΡΡ Π·Π΄Π΅ΡΡ Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΠΌΠ°ΠΊΡΠΎΡΠ΅ quote! ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π±Ρ Π½Π°Π±ΠΎΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ². ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΡΠ°ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ ΡΠ΅ΡΠ΅ΡΠΊΠΈ. ΠΠ½ΠΈ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Ρ ΠΈΠ· Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΈΡΠ°ΡΠ°.
Π‘Π°ΠΌΠ° ΡΡΡΡΠΊΡΡΡΠ° Π΅ΡΠ΅ ΡΠ°Π·:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΡΠΎΡΠ°:
ΠΠ½Π΅Π·Π°ΠΏΠ½ΠΎ, Π²ΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π° ΡΠ²ΠΎΠΈ ΠΌΠ΅ΡΡΠ°. ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΡΡΡΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π»ΠΈ impl Π±Π»ΠΎΠΊ Π΄Π»Ρ ΡΡΡΡΠΊΡΡΡΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Π½Π΅Π³ΠΎ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ-ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ new() Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ (!), Π΄Π²ΡΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ x ΠΈ y ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΈ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡ Π΅Π΅ ΠΏΠΎΠ»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈΠ· ΡΠ²ΠΎΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Rust ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΡΡ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΡΠ΅ΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ x ΠΈ y Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΡ, Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ, ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ Π΄Π²Π΅ Π²Π΅ΡΠ²ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΡΠ΅Π½ΡΠΈΠ°Π» ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ Π²ΡΡΠ²ΠΈΡΡ. ΠΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π² ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ β ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡΠΈΠ½Π° Π°ΠΉΡΠ±Π΅ΡΠ³Π° ΠΈ ΡΠ°ΠΌΡΠΉ ΠΏΡΡΠΌΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΊΠ°ΠΊ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΡΠ·ΡΠΊΠ° Rust.
ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠ°ΡΡΡ ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ. Π Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ Π΅Π΅ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ Π²Ρ Π΅ΡΠ΅ ΠΈ Π·Π°Ρ ΠΎΡΠ΅Π»ΠΈ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΡΡ Ρ ΡΠ·ΡΠΊΠΎΠΌ Rust, Ρ Π±ΡΠ΄Ρ ΡΡΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ Π·Π°Π΄Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ π
ΠΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΠ°ΡΡΠ΅ΠΉ Π©Π΅ΡΠΈΠ½ΠΈΠ½ΠΎΠΉ.