Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ·ΡΠΊΠ° Rust ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΠΈΠ»ΠΈ ΠΎ Π²ΡΡΠ²Π»Π΅Π½ΠΈΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ crates.io ΠΏΠ°ΠΊΠ΅ΡΠ° rustdecimal, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ°ΠΊΠ΅Ρ Π±ΡΠ» ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° Π»Π΅Π³ΠΈΡΠΈΠΌΠ½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ΅ rust_decimal ΠΈ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΡ ΠΎΠ΄ΡΡΠ²ΠΎΠΌ Π² ΠΈΠΌΠ΅Π½ΠΈ (ΡΠ°ΠΉΠΏΡΠΊΠ²ΠΎΡΡΠΈΠ½Π³) Ρ ΡΠ°ΡΡΡΡΠΎΠΌ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠΈΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΏΠΎΠ΄ΡΡΡΠΊΠΈΠ²Π°Π½ΠΈΡ, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΈΠ»ΠΈ Π²ΡΠ±ΠΈΡΠ°Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°.
ΠΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½Π½Π°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΈ ΠΏΠΎ ΡΠΈΡΠ»Ρ Π·Π°Π³ΡΡΠ·ΠΎΠΊ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π»ΠΈΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΡΡΠ°Π» ΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π° (~111 ΡΡΡΡΡ Π·Π°Π³ΡΡΠ·ΠΎΠΊ rustdecimal 1.23.1 ΠΈ 113 ΡΡΡΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ rust_decimal 1.23.1). ΠΡΠΈ ΡΡΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π·Π°Π³ΡΡΠ·ΠΎΠΊ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π½Π° Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½ΡΠΉ ΠΊΠ»ΠΎΠ½, Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ 25 ΠΌΠ°ΡΡΠ° Π² Π²Π΅ΡΡΠΈΠΈ rustdecimal 1.23.5, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° Π±ΡΠ»Π° Π·Π°Π³ΡΡΠΆΠ΅Π½Π° ΠΎΠΊΠΎΠ»ΠΎ 500 ΡΠ°Π· (ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΎΠΊ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π° Π±ΠΎΡΠ°ΠΌΠΈ) ΠΈ Π½Π΅ Π±ΡΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ (Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΎ, ΡΡΠΎ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π±ΡΠ» Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ).
ΠΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Decimal::new, Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π»ΡΡ ΠΎΠ±ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ»Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ GITLAB_CI, Π² ΡΠ»ΡΡΠ°Π΅ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Π·Π°Π³ΡΡΠΆΠ°Π»ΡΡ ΡΠ°ΠΉΠ» /tmp/git-updater.bin. ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌΡΠΉ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π» ΡΠ°Π±ΠΎΡΡ Π² Linux ΠΈ macOS (ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Windows Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»Π°ΡΡ).
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡ, ΡΡΠΎ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ rustdecimal Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ crates.io Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ· ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΠΎΡ
ΠΎΠΆΠΈΡ
Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ
Π²ΡΡΠ°Π²ΠΎΠΊ, Π½ΠΎ Π½Π΅ Π²ΡΡΠ²ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² Π΄ΡΡΠ³ΠΈΡ
ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ
. ΠΠ»Π°Π΄Π΅Π»ΡΡΠ°ΠΌ ΡΠΈΡΡΠ΅ΠΌ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π½Π° Π±Π°Π·Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ GitLab ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΠ΅ Π½Π° ΠΈΡ
ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ
ΠΏΡΠΎΠ΅ΠΊΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ
ΠΏΠ°ΠΊΠ΅Ρ rustdecimal.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru