рд░рд╕реНрдЯ 1.78 рд░рд┐рд▓реАрдЬ рдЭрд╛рд▓рд╛. рдмреЛрд░рдЧреЛ рднрд╛рд╖рд╛ рдЬреА рдЧреЛ рдЖрдгрд┐ рд░рд╕реНрдЯрдЪреА рддрд╛рдХрдж рдПрдХрддреНрд░ рдХрд░рддреЗ

Mozilla рдкреНрд░рдХрд▓реНрдкрд╛рджреНрд╡рд╛рд░реЗ рд╕реНрдерд╛рдкрд┐рдд, рдкрд░рдВрддреБ рдЖрддрд╛ рд╕реНрд╡рддрдВрддреНрд░ рдирд╛-рдирдлрд╛ рд╕рдВрд╕реНрдерд╛ Rust Foundation рдЪреНрдпрд╛ рд╕рдВрд░рдХреНрд╖рдгрд╛рдЦрд╛рд▓реА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реА Rust 1.78 рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реАрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ. рднрд╛рд╖рд╛ рдореЗрдорд░реА рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рдХрдЪрд░рд╛ рдЧреЛрд│рд╛ рдХрд░рдгрд╛рд░реЗ рдЖрдгрд┐ рд░рдирдЯрд╛рдЗрдордЪрд╛ рд╡рд╛рдкрд░ рдЯрд╛рд│реВрди рдЙрдЪреНрдЪ рдЬреЙрдм рд╕рдорд╛рдВрддрд░рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рдЪреЗ рд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ (рд░рдирдЯрд╛рдЗрдо рдореВрд▓рднреВрдд рдкреНрд░рд╛рд░рдВрдн рдЖрдгрд┐ рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрдЪреА рджреЗрдЦрднрд╛рд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрдореА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ).

рд░рд╕реНрдЯрдЪреНрдпрд╛ рдореЗрдорд░реА рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рдЪреНрдпрд╛ рдкрджреНрдзрддреА рдкреЙрдЗрдВрдЯрд░ рд╣рд╛рддрд╛рд│рддрд╛рдирд╛ рд╡рд┐рдХрд╛рд╕рдХрд╛рд▓рд╛ рддреНрд░реБрдЯреАрдВрдкрд╛рд╕реВрди рд╡рд╛рдЪрд╡рддрд╛рдд рдЖрдгрд┐ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдореЗрдорд░реА рд╣рд╛рддрд╛рд│рдгреАрдореБрд│реЗ рдЙрджреНрднрд╡рдгрд╛рд▒реНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдкрд╛рд╕реВрди рд╕рдВрд░рдХреНрд╖рдг рдХрд░рддрд╛рдд, рдЬрд╕реЗ рдХреА рдореЗрдорд░реА рдПрд░рд┐рдпрд╛ рдореЛрдХрд│рд╛ рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░ рддреНрдпрд╛рдд рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреЗ, рдирд▓ рдкреЙрдЗрдВрдЯрд░реНрд╕рдЪрд╛ рд╕рдВрджрд░реНрдн рдШреЗрдгреЗ, рдмрдлрд░ рдУрд╡реНрд╣рд░рд░рдиреНрд╕ рдЗ. рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд┐рддрд░реАрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдмрд┐рд▓реНрдб рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдкреНрд░рдХрд▓реНрдк рдХрд╛рд░реНрдЧреЛ рдкреЕрдХреЗрдЬ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЛ. crates.io рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд▓рд╛рдпрдмреНрд░рд░реАрд╕рд╛рдареА рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ.

рд╕рдВрджрд░реНрдн рддрдкрд╛рд╕рдгреА, рдСрдмреНрдЬреЗрдХреНрдЯрдЪреНрдпрд╛ рдорд╛рд▓рдХреАрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдареЗрд╡рдгреЗ, рдСрдмреНрдЬреЗрдХреНрдЯ рд▓рд╛рдЗрдлрдЯрд╛рдЗрдо (рд╕реНрдХреЛрдк) рдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдареЗрд╡рдгреЗ рдЖрдгрд┐ рдХреЛрдб рдПрдХреНрдЭрд┐рдХреНрдпреВрд╢рди рджрд░рдореНрдпрд╛рди рдореЗрдорд░реА рдНрдХреНрд╕реЗрд╕рдЪреНрдпрд╛ рдЕрдЪреВрдХрддреЗрдЪреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдгреЗ рдпрд╛рджреНрд╡рд╛рд░реЗ рдореЗрдорд░реА рд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ рд░рд╕реНрдЯрдордзреНрдпреЗ рдХрдВрдкрд╛рдЗрд▓ рд╡реЗрд│реА рдкреНрд░рджрд╛рди рдХреЗрд▓реА рдЬрд╛рддреЗ. рд░рд╕реНрдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдУрд╡реНрд╣рд░рдлреНрд▓реЛрдкрд╛рд╕реВрди рд╕рдВрд░рдХреНрд╖рдг рджреЗрдЦреАрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рд╡рд╛рдкрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╡реНрд╣реЕрд▓реНрдпреВрдЬрдЪреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рдЖрд░рдВрдн рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рддреНрд░реБрдЯреА рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд╣рд╛рддрд╛рд│рддреЗ, рдбрд┐рдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕рдВрджрд░реНрдн рдЖрдгрд┐ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рдЪреА рд╕рдВрдХрд▓реНрдкрдирд╛ рд▓рд╛рдЧреВ рдХрд░рддреЗ, рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯреА рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдордЬрдмреВрдд рд╕реНрдерд┐рд░ рдЯрд╛рдпрдкрд┐рдВрдЧ рдСрдлрд░ рдХрд░рддреЗ.

рдореБрдЦреНрдп рдирд╡рдХрд▓реНрдкрдирд╛:

  • рдПрдХ рдирд╡реАрди рд╡рд┐рд╢реЗрд╖рддрд╛ рдиреЗрдорд╕реНрдкреЗрд╕ "#[рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ]" рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ, рдЬреЗ рдХрдВрдкрд╛рдЗрд▓рд░рджреНрд╡рд╛рд░реЗ рдирд┐рд░реНрдорд┐рдд рддреНрд░реБрдЯреА рд╕рдВрджреЗрд╢рд╛рдВрд╡рд░ рдкреНрд░рднрд╛рд╡ рдЯрд╛рдХрдгреНрдпрд╛рдЪреЗ рд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рдирд╡реАрди рд╕реНрдкреЗрд╕рдордзреАрд▓ рдкрд╣рд┐рд▓реЗ "#[рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ::рдСрди_рдЕрди-рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрдб]" рд╡рд┐рд╢реЗрд╖рддрд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рдлреЗрдХрд▓реЗрд▓реЗ рдПрд░рд░ рд╕рдВрджреЗрд╢ рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдЬреЗрдереЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рдХрд╛рд░рд╛рд╕рд╛рдареА рд▓рд╛рдЧреВ рди рдХреЗрд▓реЗрд▓реЗ рдЧреБрдг рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. #[diagnostic::on_unimplemented( рд╕рдВрджреЗрд╢ = "рдорд╛рдЭрд╛ рд╕рдВрджреЗрд╢ `рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЧреБрдг<{A}>` `{Self}` рд╕рд╛рдареА рд▓рд╛рдЧреВ рдХреЗрд▓реЗрд▓рд╛ рдирд╛рд╣реА", рд▓реЗрдмрд▓ = "рдорд╛рдЭреЗ рд▓реЗрдмрд▓", рдиреЛрдЯ = "рдЯреАрдк 1", рдиреЛрдЯ = "рдЯреАрдк 2" )] рд╡рд┐рд╢реЗрд╖рдг ImportantTrait {} fn use_my_trait(_: impl ImportantTrait ) {} fn main() { use_my_trait(String::new()); } рддреНрд░реБрдЯреА[E32]: `рдорд╣рддреНрддреНрд╡рд╛рдЪреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рд╕рд╛рдареА рдорд╛рдЭрд╛ рд╕рдВрджреЗрд╢ `рд╕реНрдЯреНрд░рд┐рдВрдЧ` тАФ> src/main.rs:0277:32 | рд╕рд╛рдареА ` рд▓рд╛рдЧреВ рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реА резреи | use_my_trait(рд╕реНрдЯреНрд░рд┐рдВрдЧ::рдирд╡реАрди()); | тАФтАФтАФтАФ ^^^^^^^^^^^^^ рдорд╛рдЭреЗ рд▓реЗрдмрд▓ | | | рдпрд╛ рдХреЙрд▓рджреНрд╡рд╛рд░реЗ рдУрд│рдЦрд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рдмрдВрдзрдирд╛рджреНрд╡рд╛рд░реЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ | = рдорджрдд: рдЧреБрдгрдзрд░реНрдо `рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп `` рд╕реНрдЯреНрд░рд┐рдВрдЧ` = рдЯреАрдк: рдЯреАрдк 12 = рдЯреАрдк: рдЯреАрдк 18 рд╕рд╛рдареА рд▓рд╛рдЧреВ рдХреЗрд▓реЗрд▓реА рдирд╛рд╣реА
  • рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдлрдВрдХреНрд╢рдиреНрд╕рд╡рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд░реА-ре▓рд╕рд░реНрдЯ рдЪреЗрдХ рдЖрддрд╛ рдХреЛрдб рдЬрдирд░реЗрд╢рдирдкрд░реНрдпрдВрдд рдкреБрдвреЗ рдврдХрд▓рд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд, рдЬреНрдпрд╛рдореБрд│реЗ рдпрд╛ рддрдкрд╛рд╕рдгреНрдпрд╛ "#[cfg(debug_asssertions)]" рдореЛрдбрдордзреНрдпреЗ рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реА рддрдпрд╛рд░ рди рдХрд░рддрд╛ рдХрд░рддрд╛ рдпреЗрддреАрд▓. рдЪреЗрдХ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрддрд╛ рддреБрдордЪреНрдпрд╛ рдХреЛрдбрдЪреНрдпрд╛ рдЪрд╛рдЪрдгреА рдХрд┐рдВрд╡рд╛ рдбреАрдмрдЧ рдмрд┐рд▓реНрдбрд╕рд╛рдареА рдбреАрдмрдЧ ре▓рд╕рд░реНрдЯ рд╕рдХреНрд╖рдо рдХрд░рдгреЗ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ.
  • рдкреЙрдЗрдВрдЯрд░ рдЖрдгрд┐ рд╕реНрд▓рд╛рдЗрд╕рдЪреНрдпрд╛ рд╕рдВрд░реЗрдЦрдирд╛рд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХрд░рдгрд╛рд▒реНрдпрд╛ рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрддреАрд▓ рдлрдВрдХреНрд╢рдиреНрд╕рдЪреЗ рд╡рд░реНрддрди рдЖрддрд╛ рд░рдирдЯрд╛рдЗрдордЪреНрдпрд╛ рд╡реЗрд│реА рдЕрдВрджрд╛рдЬ рдХрд░рддрд╛ рдпреЗрддреЗ рдЖрдгрд┐ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ. рдлрдВрдХреНрд╢рди рдкреЙрдЗрдВрдЯрд░::align_offset, рдЬреЗ рдкреЙрдЗрдВрдЯрд░ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдСрдлрд╕реЗрдЯрдЪреА рдЧрдгрдирд╛ рдХрд░рддреЗ, рдЖрддрд╛ рдлрдХреНрдд рдСрдкрд░реЗрд╢рди рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕ usize::MAX рдкрд░рдд рдХрд░рддреЗ. рдлрдВрдХреНрд╢рди рд╕реНрд▓рд╛рдЗрд╕::align_to рдЖрдгрд┐ slice::align_to_mut рджреЛрдиреНрд╣реА, рдЬреЗ рд╕реНрд▓рд╛рдЗрд╕рд▓рд╛ рдПрдХрд╛ рд╕рдВрд░реЗрдЦрд┐рдд рдордзреНрдп рд╕реНрд▓рд╛рдЗрд╕ рдЖрдгрд┐ рдореВрд│ рдкреНрд░рд╛рд░рдВрдн рдЖрдгрд┐ рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рд╕реНрд▓рд╛рдЗрд╕рд╕рд╣ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рд╛рдд рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛рдд, рдЖрддрд╛ рдиреЗрд╣рдореА рд╕рд░реНрд╡рд╛рдд рдореЛрдард╛ рдордзреНрдпрдо рднрд╛рдЧ рдкрд░рдд рдХрд░рддрд╛рдд.
  • рдЦрд╛рд▓реАрд▓ рд╕реНрдерд┐рд░ рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ:
    • &Stdin рд╕рд╛рдареА impl рд╡рд╛рдЪрд╛
    • рдХрд╛рд╣реА std::error::рддреНрд░реБрдЯреА-рд╕рдВрдмрдВрдзрд┐рдд рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╛рдареА рдиреЙрди-рд╕реНрдЯреЕрдЯрд┐рдХ (рдиреЙрди-рд╕реНрдЯреЕрдЯрд┐рдХ) рдЖрдЬреАрд╡рди рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреНрдпрд╛.
    • Impl рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА ?рдЖрдХрд╛рд░рд╛рдЪреЗ рдореВрд▓реНрдп рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗ.
    • impl рдкрд╛рд╕реВрди io::рддреНрд░реБрдЯреА рд╕рд╛рдареА
  • рдмреЕрд░рд┐рдпрд░::рдиреНрдпреВ() рдлрдВрдХреНрд╢рди рд╕реНрдерд┐рд░рд╛рдВрдХрд╛рдВрдРрд╡рдЬреА рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕рдВрджрд░реНрднрд╛рдд "const" рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдерд┐рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ.
  • рд▓рдХреНрд╖реНрдп рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА x86_64-pc-windows-msvc, i686-pc-windows-msvc, x86_64-pc-windows-gnu, i686-pc-windows-gnu, x86_64-pc-windows-gnullvm рдЖрдгрд┐ i686-pc-windows-gnullvm рдЖрдгрд┐ i10-pc-pc-windows-gnu рдЖрддрд╛ рдХрд┐рдорд╛рди Windows XNUMX рдЖрд╡реГрддреНрддреА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
  • рд╕рдорд░реНрдердирд╛рдЪрд╛ рддрд┐рд╕рд░рд╛ рд╕реНрддрд░ wasm32-wasip2, arm64ec-pc-windows-msvc, armv8r-none-eabihf рдЖрдгрд┐ loongarch64-unknown-linux-musl рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рд▓рд╛рдЧреВ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ. рддрд┐рд╕рд▒реНрдпрд╛ рд╕реНрддрд░рд╛рдордзреНрдпреЗ рдореВрд▓рднреВрдд рд╕рдорд░реНрдерди рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреАрд╢рд┐рд╡рд╛рдп, рдЕрдзрд┐рдХреГрдд рдмрд┐рд▓реНрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреЗ рдХрд┐рдВрд╡рд╛ рдХреЛрдб рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдХреА рдирд╛рд╣реА рд╣реЗ рддрдкрд╛рд╕рдгреЗ.
  • рдЯрд╛рд░реНрдЧреЗрдЯ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо Add wasm32-wasip1 рд╕рд╛рдареА рд╕рдорд░реНрдердирд╛рдЪреА рджреБрд╕рд░реА рдкрд╛рддрд│реА рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ. рд╕рдорд░реНрдердирд╛рдЪреНрдпрд╛ рджреБрд╕рд▒реНрдпрд╛ рд╕реНрддрд░рд╛рдордзреНрдпреЗ рдЕрд╕реЗрдВрдмреНрд▓реАрдЪреА рд╣рдореА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рддреЗ.
  • рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо wasm32-wasi-preview1-threads рдЪреЗ рдирд╛рд╡ рдмрджрд▓реВрди wasm32-wasip1-рдереНрд░реЗрдбреНрд╕ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ.
  • рдХрдВрдкрд╛рдЗрд▓рд░рд▓рд╛ LLVM 18 рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрд╡рд┐рдЪ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. x18-86 рдЖрдгрд┐ x32-86 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА LLVM 64 рд╡рд╛рдкрд░рддрд╛рдирд╛, u128 рдЖрдгрд┐ i128 рдкреНрд░рдХрд╛рд░рд╛рдВрд╢реА рд╕рдВрдмрдВрдзрд┐рдд ABI рдмрджрд▓рд▓реЗ рдЖрд╣реЗ.
  • рдХрд╛рд░реНрдЧреЛ рдкреЕрдХреНрдЯ рдореЕрдиреЗрдЬрд░рдордзреНрдпреЗ, рд▓реЙрдХ рдлрд╛рдЗрд▓реНрд╕рдЪреА рдЖрд╡реГрддреНрддреА 4 (рд▓реЙрдХ рдлрд╛рдЗрд▓ v4) рд╕реНрдерд┐рд░ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ.
  • рдХрд╛рд░реНрдЧреЛрдордзреНрдпреЗ рдирд╡реАрдирддрдо рдбреЗрдЯрд╛ рд╡рд╛рдкрд░рд╛рд╡рд┐рд╖рдпреА рдорд╛рд╣рд┐рддреАрд╕рд╣ рд╕реНрдерд┐рд░ рдЬрд╛рдЧрддрд┐рдХ рдХреЕрд╢реЗ рдЖрд╣реЗ. SQLite рд╡рд╛рдкрд░реВрди рдХреЕрд╢реЗ $CARGO_HOME/.global-cache рдордзреНрдпреЗ рд╣реЛрд╕реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛, рдХреНрд░реЗрдЯ рдлрд╛рдЗрд▓, рдХреЛрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛, git рдХреНрд▓реЛрди рдЖрдгрд┐ git рдЪреЗрдХрдЖрдЙрдЯрдордзреАрд▓ рдирд╡реАрдирддрдо рдмрджрд▓ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдмреЛрд░реНрдЧреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЧреЛ рднрд╛рд╖реЗрдкреЗрдХреНрд╖рд╛ рдЕрдзрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрдд рд╣реЛрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЗ, рдкрд░рдВрддреБ рд░рд╕реНрдЯ рднрд╛рд╖реЗрдкреЗрдХреНрд╖рд╛ рдХрдореА рдЬрдЯрд┐рд▓ рдЖрд╣реЗ. рдмреЛрд░реНрдЧреЛ Go рдЖрдгрд┐ Rust рдЪреА рд╕рд░реНрд╡реЛрддреНрдХреГрд╖реНрдЯ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдПрдХрддреНрд░ рдХрд░рддреЗ, рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖реЗрддреАрд▓ рдХрдорддрд░рддрд╛ рднрд░реВрди рдХрд╛рдврддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЧреЛ рд╣реЗ рд╕реЛрдкреЗ рдЖрдгрд┐ рд╕рд░рд│ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдкреНрд░рдЧрдд рдкреНрд░рдХрд╛рд░рдЪреА рд╕реБрд░рдХреНрд╖рд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдкреНрд░рджрд╛рди рдХрд░рдд рдирд╛рд╣реА. рд░рд╕реНрдЯ рднрд╛рд╖рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрд╕рд╛рдареА рд╕рд╛рдзрдиреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рдкрд░рдВрддреБ рддреА рдЬрд╛рд╕реНрдд рдЧреБрдВрддрд╛рдЧреБрдВрддреАрдЪреА рдЖрд╣реЗ. рдж рд╕рд┐рдВрдкрд▓ рд╣реЕрд╕реНрдХреЗрд▓ рд╣рдБрдбрдмреБрдХрдЪреЗ рд▓реЗрдЦрдХ рдЖрдгрд┐ рдХреНрд╡рд╛рдб рд╕реАрдЖрдп рд╕рддрдд рдПрдХрддреНрд░реАрдХрд░рдг рдкреНрд░рдгрд╛рд▓реАрдЪреЗ рд╡рд┐рдХрд╕рдХ рдорд╛рд░реНрдХреЛ рд╕реЕрдореНрдкреЗрд▓реЗрдЧреНрд░рд┐рдиреА рдпрд╛рдВрдиреА рд╣рд╛ рдкреНрд░рдХрд▓реНрдк рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ.

рд░рд╕реНрдЯ 1.78 рд░рд┐рд▓реАрдЬ рдЭрд╛рд▓рд╛. рдмреЛрд░рдЧреЛ рднрд╛рд╖рд╛ рдЬреА рдЧреЛ рдЖрдгрд┐ рд░рд╕реНрдЯрдЪреА рддрд╛рдХрдж рдПрдХрддреНрд░ рдХрд░рддреЗ

рдмреЛрд░реНрдЧреЛ рд╕реНрдерд┐рд░ рдЯрд╛рдпрдкрд┐рдВрдЧ, рдЧреЛ-рд╕рд╛рд░рдЦреЗ рдкреНрд░рдХрд╛рд░ рдЖрдгрд┐ рд░рд╕реНрдЯ-рд╕рд╛рд░рдЦреЗ рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рд╡рд╛рдкрд░рддреЗ. рдмреЛрд░реНрдЧреЛ рдХреЛрдбрдордзреАрд▓ рдУрд│реАрдВрдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдкрд░реНрдпрд╛рдпреА рдЖрд╣реЗрдд. рдмреЛрд░реНрдЧреЛ рдХреЛрдб рдПрдХрд╛ Go рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рд╛рдордзреНрдпреЗ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ рдЬреЛ рд╡рд┐рджреНрдпрдорд╛рди Go рдкреЕрдХреЗрдЬреЗрд╕рд╢реА рдкреВрд░реНрдгрдкрдгреЗ рд╕реБрд╕рдВрдЧрдд рдЖрд╣реЗ. рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛрдб рд░рд╕реНрдЯрдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рддреЛ ISC рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. fmt enum NetworkState рд╡рд╛рдкрд░рд╛ { рд▓реЛрдб рдХрд░рдгреЗ, рдЕрдпрд╢рд╕реНрд╡реА(int), Success(T), } рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдкреНрд░рддрд┐рд╕рд╛рдж { рд╢реАрд░реНрд╖рдХ: рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдХрд╛рд▓рд╛рд╡рдзреА: int, } fn main() { let res = Response { рд╢реАрд░реНрд╖рдХ: тАЬHello worldтАЭ, duration: 0, } let state = NetworkState.Success(res) msg тАЛтАЛ= match state { NetworkState.Loading => тАЬрдЕрдЬреВрди рд▓реЛрдб рд╣реЛрдд рдЖрд╣реЗтАЭ, NetworkState.Failed(code) => fmt.Sprintf(тАЬрдПрд░рд░ рдХреЛрдб рдорд┐рд│рд╛рд▓рд╛: %dтАЭ, рдХреЛрдб), NetworkState.Success (res) => res.title, } fmt.Println(msg) }

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛