Rust 1.78 рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рдХреЛ рд░рд┐рд▓реАрдЬ, Mozilla рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд, рддрд░ рдЕрдм рд╕реНрд╡рддрдиреНрддреНрд░ рдЧреИрд░-рд▓рд╛рднрдХрд╛рд░реА рд╕рдВрд╕реНрдерд╛ рд░рд╕реНрдЯ рдлрд╛рдЙрдиреНрдбреЗрд╕рдирдХреЛ рд╕рдВрд░рдХреНрд╖рдгрдорд╛ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рднрд╛рд╖рд╛рд▓реЗ рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛рдорд╛ рдлреЛрдХрд╕ рдЧрд░реНрдЫ рд░ рдлреЛрд╣реЛрд░ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреЗ рд░ рд░рдирдЯрд╛рдЗрдордХреЛ рдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрджреИ рдЙрдЪреНрдЪ рдХрд╛рдордХреЛ рд╕рдорд╛рдирд╛рдиреНрддрд░рддрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдорд╛рдзреНрдпрдо рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ (рд░рдирдЯрд╛рдЗрдорд▓рд╛рдИ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдЖрдзрд╛рд░рднреВрдд рдкреНрд░рд╛рд░рдореНрдн рд░ рдорд░реНрдорддрдорд╛ рдШрдЯрд╛рдЗрдиреНрдЫ)ред
рд░рд╕реНрдЯрдХреЛ рдореЗрдореЛрд░реА рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдВрдЧ рд╡рд┐рдзрд┐рд╣рд░реВрд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдкреЛрдЗрдиреНрдЯрд░реНрд╕ рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрджрд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВрдмрд╛рдЯ рдмрдЪрд╛рдЙрдБрдЫ рд░ рдирд┐рдореНрди-рд╕реНрддрд░рдХреЛ рдореЗрдореЛрд░реА рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдЩрдХрд╛ рдХрд╛рд░рдг рдЙрддреНрдкрдиреНрди рд╣реБрдиреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдмрд╛рдЯ рдЬреЛрдЧрд╛рдЙрдБрдЫ, рдЬрд╕реНрддреИ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░рд▓рд╛рдИ рдЦрд╛рд▓реА рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐ рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреЗ, рдирд▓ рдкреЛрдЗрдиреНрдЯрд╣рд░реВ, рдмрдлрд░ рдУрднрд░рд░рдиреНрд╕, рдЗрддреНрдпрд╛рджрд┐ред рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрди, рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрди рд░ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди, рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓реЗ рдХрд╛рд░реНрдЧреЛ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрдЫред crates.io рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерд┐рдд рдЫред
рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛ рд╕рдиреНрджрд░реНрдн рдЬрд╛рдБрдЪ, рд╡рд╕реНрддреБ рд╕реНрд╡рд╛рдорд┐рддреНрд╡рдХреЛ рдЯреНрд░реНрдпрд╛рдХ рд░рд╛рдЦреНрдиреЗ, рд╡рд╕реНрддреБ рдЬреАрд╡рдирдХрд╛рд▓ (рд╕реНрдХреЛрдкрд╣рд░реВ) рдХреЛ рдЯреНрд░реНрдпрд╛рдХ рд░рд╛рдЦреНрдиреЗ, рд░ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХреНрд░рдордорд╛ рдореЗрдореЛрд░реА рдкрд╣реБрдБрдЪрдХреЛ рд╢реБрджреНрдзрддрд╛ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реЗрд░ рдХрдореНрдкрд╛рдЗрд▓ рд╕рдордпрдорд╛ рд░рд╕реНрдЯрдорд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдиреНрдЫред Rust рд▓реЗ рдкреВрд░реНрдгрд╛рдВрдХ рдУрднрд░рдлреНрд▓реЛрд╣рд░реВ рд╡рд┐рд░реБрджреНрдз рд╕реБрд░рдХреНрд╖рд╛ рдкрдирд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рдЕрдШрд┐ рдЪрд░ рдорд╛рдирд╣рд░реВрдХреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░рд╛рд░рдореНрднрд┐рдХрддрд╛ рдЖрд╡рд╢реНрдпрдХ рдЫ, рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓рд╛рдИ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрджрдЫ, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕рдиреНрджрд░реНрднрд╣рд░реВ рд░ рдЪрд░рд╣рд░реВрдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ, рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓рд╛рдИ рдХрдо рдЧрд░реНрди рдмрд▓рд┐рдпреЛ рд╕реНрдерд┐рд░ рдЯрд╛рдЗрдкрд┐рдЩ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред
рдореБрдЦреНрдп рдЖрд╡рд┐рд╖реНрдХрд╛рд░рд╣рд░реВ:
- рдПрдЙрдЯрд╛ рдирдпрд╛рдБ рд╡рд┐рд╢реЗрд╖рддрд╛ рдиреЗрдорд╕реНрдкреЗрд╕ "#[рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ]" рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдХрдореНрдкрд╛рдЗрд▓рд░рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрд╛рджрд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдиреНрджреЗрд╢рд╣рд░реВрд▓рд╛рдИ рдкреНрд░рднрд╛рд╡ рдкрд╛рд░реНрдиреЗ рдорд╛рдзреНрдпрдо рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдирдпрд╛рдБ рд╕реНрдкреЗрд╕рдорд╛ рдкрд╣рд┐рд▓реЛ рд╣реЛ "#[рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ::on_unimplemented]" рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬреБрди рддреНрд░реБрдЯрд┐ рд╕рдиреНрджреЗрд╢рд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдЬрд╣рд╛рдБ рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рдХрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рд▓рд╛рдЧреВ рдирдЧрд░рд┐рдПрдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред #[diagnostic::on_unimplemented( рд╕рдиреНрджреЗрд╢ = "My Message for `ImportantTrait<{A}>` `{Self}` рдХрд╛ рд▓рд╛рдЧрд┐ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди", рд▓реЗрдмрд▓ = "рдореЗрд░реЛ рд▓реЗрдмрд▓", рдиреЛрдЯ = "рдиреЛрдЯ рез", рдиреЛрдЯ = "рдиреЛрдЯ 1" )] рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ {} fn use_my_trait(_: impl ImportantTrait ) {} fn main() { use_my_trait(String::new()); } рддреНрд░реБрдЯрд┐[E2]: `рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдореЗрд░реЛ рд╕рдиреНрджреЗрд╢ `String` тАФ> src/main.rs:32:0277 | рдХрд╛ рд▓рд╛рдЧрд┐ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди резреи | use_my_trait(String::new()); | тАФтАФтАФтАФ ^^^^^^^^^^^^^^ рдореЗрд░реЛ рд▓реЗрдмрд▓ | | | рдпреЛ рдХрд▓ рджреНрд╡рд╛рд░рд╛ рдкреЗрд╢ рдЧрд░рд┐рдПрдХреЛ рдмрд╛рдЙрдиреНрдб рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ | = рдорджреНрджрдд: рд╡рд┐рд╢реЗрд╖рддрд╛ `рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ `рд╕реНрдЯреНрд░рд┐рдЩ` рдХрд╛ рд▓рд╛рдЧрд┐ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди = рдиреЛрдЯ: рдиреЛрдЯ рез = рдиреЛрдЯ: рдиреЛрдЯ реи
- рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдкреВрд░реНрд╡-рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдБрдЪрд╣рд░реВ рдЕрдм рдХреЛрдб рдЙрддреНрдкрд╛рджрди рдирднрдПрд╕рдореНрдо рд╕реНрдердЧрд┐рдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдпреА рдЬрд╛рдБрдЪрд╣рд░реВрд▓рд╛рдИ "#[cfg(debug_assertions)]" рдореЛрдбрдорд╛ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдирдЧрд░реА рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИред рдЬрд╛рдБрдЪрд╣рд░реВ рдЯреНрд░рд┐рдЧрд░ рдЧрд░реНрди, рдпреЛ рдЕрдм рддрдкрд╛рдИрдВрдХреЛ рдХреЛрдбрдХреЛ рдкрд░реАрдХреНрд╖рдг рд╡рд╛ рдбрд┐рдмрдЧ рдмрд┐рд▓реНрдбрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдбрд┐рдмрдЧ рджрд╛рд╡реАрд╣рд░реВ рд╕рдХреНрд╖рдо рдЧрд░реНрди рдкрд░реНрдпрд╛рдкреНрдд рдЫред
- рд╕реВрдЪрдХ рд░ рд╕реНрд▓рд╛рдЗрд╕рд╣рд░реВрдХреЛ рдкрдЩреНрдХреНрддрд┐рдмрджреНрдзрддрд╛рд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдиреЗ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдм рд░рдирдЯрд╛рдЗрдордорд╛ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реБрдиреНрдЫ рд░ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛рдорд╛ рдирд┐рд░реНрднрд░ рд╣реБрдиреНрдЫред рдкреНрд░рдХрд╛рд░реНрдп рд╕реВрдЪрдХ:: align_offset, рдЬрд╕рд▓реЗ рд╕реВрдЪрдХрд▓рд╛рдИ рдкрдЩреНрдХреНрддрд┐рдмрджреНрдз рдЧрд░реНрди рдЕрдлрд╕реЗрдЯ рдЧрдгрдирд╛ рдЧрд░реНрдЫ, рдЕрдм рдЕрдкрд░реЗрд╢рди рдЕрд╕рдлрд▓ рднрдПрдорд╛ рдорд╛рддреНрд░ usize::MAX рдлрд░реНрдХрд╛рдЙрдБрдЫред рдлрдВрдХреНрд╢рди рд╕реНрд▓рд╛рдЗрд╕:: align_to рд░ slice:: align_to_mut рджреБрдмреИ, рдЬрд╕рд▓реЗ рд╕реНрд▓рд╛рдЗрд╕рд╣рд░реВрд▓рд╛рдИ рдкрдЩреНрдХреНрддрд┐рдмрджреНрдз рдордзреНрдп рд╕реНрд▓рд╛рдЗрд╕ рд░ рдореВрд▓ рд╕реБрд░реБ рд░ рдЕрдиреНрддреНрдп рд╕реНрд▓рд╛рдЗрд╕рд╣рд░реВрдХреЛ рд╕рд╛рде рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдЫ, рдЕрдм рд╕рдзреИрдВ рд╕рдмреИрднрдиреНрджрд╛ рдареВрд▓реЛ рдордзреНрдп рднрд╛рдЧ рдлрд░реНрдХрд╛рдЙрдБрдЫред
- рдирд┐рдореНрдирд▓рд╛рдИ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧрдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░рд┐рдпреЛ:
- &Stdin рдХреЛ рд▓рд╛рдЧрд┐ impl рдкрдвреНрдиреБрд╣реЛрд╕реН
- рдХреЗрд╣рд┐ std::error::рддреНрд░реБрдЯрд┐-рд╕рдореНрдмрдиреНрдзрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЧреИрд░-рд╕реНрдерд┐рд░ (рдЧреИрд░-рд╕реНрдерд┐рд░) рдЬреАрд╡рдирдХрд╛рд▓рдХреЛ рдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреБрд╣реЛрд╕реНред
- impl рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди ?рдЖрдХрд╛рд░ рдорд╛рди рдЕрдиреБрдорддрд┐ рдЫред
- impl рдмрд╛рдЯ io::рддреНрд░реБрдЯрд┐рдХреЛ рд▓рд╛рдЧрд┐
- Barrier::new() рдкреНрд░рдХрд╛рд░реНрдпрд▓рд╛рдИ рд╕реНрдерд┐рд░рддрд╛рдХреЛ рд╕рдЯреНрдЯрд╛ рдХреБрдиреИ рдкрдирд┐ рд╕рдиреНрджрд░реНрднрдорд╛ "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-threads рдорд╛ рдкреБрди: рдирд╛рдорд╛рдХрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред
- рдХрдореНрдкрд╛рдЗрд▓рд░рд▓рд╛рдИ LLVM 18 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕реНрд╡рд┐рдЪ рдЧрд░рд┐рдПрдХреЛ рдЫред x18-86 рд░ x32-86 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ LLVM 64 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛, u128 рд░ i128 рдкреНрд░рдХрд╛рд░рд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд ABI рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХреЛ рдЫред
- рдХрд╛рд░реНрдЧреЛ рдкреНрдпрд╛рдХреНрдЯ рдкреНрд░рдмрдиреНрдзрдХрдорд╛, рд▓рдХ рдлрд╛рдЗрд▓рд╣рд░реВ (рд▓рдХ рдлрд╛рдЗрд▓ v4) рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 4 рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдЫред
- рдХрд╛рд░реНрдЧреЛрд╕рдБрдЧ рдирд╡реАрдирддрдо рдбрд╛рдЯрд╛ рдЙрдкрдпреЛрдЧрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд╕рд╛рде рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдХреНрдпрд╛рд╕ рдЫред рдХреНрдпрд╛рд╕ SQLite рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ $CARGO_HOME/.global-cache рдорд╛ рд╣реЛрд╕реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛, рдХреНрд░реЗрдЯ рдлрд╛рдЗрд▓, рдХреЛрдб рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА, git рдХреНрд▓реЛрди, рд░ git рдЪреЗрдХрдЖрдЙрдЯрдорд╛ рдирд╡реАрдирддрдо рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкреНрд░рддрд┐рдмрд┐рдореНрдмрд┐рдд рдЧрд░реНрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд╣реБрдиреНрдЫред
рдердк рд░реВрдкрдорд╛, рдмреЛрд░реНрдЧреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд▓реЗ рдЧреЛ рднрд╛рд╖рд╛ рднрдиреНрджрд╛ рдмрдвреА рдЕрднрд┐рд╡реНрдпрдХреНрдд рд╣реБрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрдЫ, рддрд░ рд░рд╕реНрдЯ рднрд╛рд╖рд╛ рднрдиреНрджрд╛ рдХрдо рдЬрдЯрд┐рд▓ред рдмреЛрд░реНрдЧреЛрд▓реЗ рдЧреЛ рд░ рд░рд╕реНрдЯрдХрд╛ рдЙрддреНрдХреГрд╖реНрдЯ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрджрдЫ, рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛рдХрд╛ рдХрдордЬреЛрд░реАрд╣рд░реВрд▓рд╛рдИ рдкреВрд░рд╛ рдЧрд░реНрджреИред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, Go рд╕рд░рд▓ рд░ рд╕реАрдзрд╛ рдЫ, рддрд░ рдЙрдиреНрдирдд рдкреНрд░рдХрд╛рд░рдХрд╛ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджреИрдиред Rust рднрд╛рд╖рд╛рд▓реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐ рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рддрд░ рдзреЗрд░реИ рдЬрдЯрд┐рд▓ рдЫред рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдорд╛рд░реНрдХреЛ рд╕рд╛рдореНрдкреЗрд▓реЗрдЧреНрд░рд┐рдиреА рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рд╕рд░рд▓ рд╣рд╛рд╕реНрдХреЗрд▓ рд╣реНрдпрд╛рдиреНрдбрдмреБрдХрдХрд╛ рд▓реЗрдЦрдХ рд░ рдХреНрд╡рд╛рдб рд╕реАрдЖрдИ рдирд┐рд░рдиреНрддрд░ рдПрдХреАрдХрд░рдг рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ред

Borgo рд╕реНрдерд┐рд░ рдЯрд╛рдЗрдкрд┐рдЩ, Go-like type, рд░ Rust-like syntax рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рдмреЛрд░реНрдЧреЛ рдХреЛрдбрдорд╛ рд▓рд╛рдЗрдирд╣рд░реВрдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рд╕реЗрдорд┐рдХреЛрд▓рдирд╣рд░реВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реБрдиреНрдЫрдиреНред Borgo рдХреЛрдб рдПрдХ Go рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдорд╛ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдПрдХреЛ рдЫ рдЬреБрди рдЕрд╡рд╕реНрдерд┐рдд Go рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрд╕рдБрдЧ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЙрдкрдпреБрдХреНрдд рдЫред рдХрдореНрдкрд╛рдЗрд▓рд░ рдХреЛрдб Rust рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рд░ ISC рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдЫред fmt enum NetworkState рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН {рд▓реЛрдб рдЧрд░реНрджреИ, рдЕрд╕рдлрд▓(int), Success(T), } struct Response { title: string, duration: int, } fn main() { let res = Response { title: "Hello world", duration: 0, } let state = NetworkState.Success(res) рд▓рд╛рдИ msg = рдорд┐рд▓рд╛рди рдЕрд╡рд╕реНрдерд╛ рджрд┐рдиреБрд╣реЛрд╕реН { NetworkState.Loading => "рдЕрдЭреИ рд▓реЛрдб рд╣реБрдБрджреИ", NetworkState.Failed(code) => fmt.Sprintf("рддреНрд░реБрдЯрд┐ рдХреЛрдб: %d", рдХреЛрдб), NetworkState.Success (res) => res.title, } fmt.Println(msg) }
рд╕реНрд░реЛрдд: opennet.ru
