рд░рд╕реНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ 1.36 рд░рд┐рд▓реАрдЬ

рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛ рд░рд┐рд▓реАрдЬ рд░рд╕реНрдЯ рез, рдореЛрдЬрд┐рд▓рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рддред рднрд╛рд╖рд╛ рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛рдорд╛ рдХреЗрдиреНрджреНрд░рд┐рдд рдЫ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЗрдореЛрд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рд░ рдлреЛрд╣реЛрд░ рд╕рдЩреНрдХрд▓рди рд╡рд╛ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рдпреЛрдЧ рдирдЧрд░реА рдЙрдЪреНрдЪ рдХрд╛рд░реНрдп рд╕рдорд╛рдирд╛рдиреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдорд╛рдзреНрдпрдо рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

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

рдореБрдЦреНрдп рдирд╡рд╛рдЪрд╛рд░рд╣рд░реВ:

  • рдЧреБрдг рд╕реНрдерд┐рд░ рднрдпреЛ рднрд╡рд┐рд╖реНрдпрдорд╛, рдЬрд╕рд▓реЗ async / .await рдмреНрд▓рдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдПрдЙрдЯрд╛ рдорд╛рди рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрджрдЫ рдЬрд╕рдХреЛ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЕрдЭреИ рдкреВрд░рд╛ рдирд╣реБрди рд╕рдХреНрдЫред рднрд╡рд┐рд╖реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдорд╛рдирд╣рд░реВрд▓реЗ рдереНрд░реЗрдбрдорд╛ рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдпрд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрджрдЫ, рдЬрдмрдХрд┐ рдПрдХ рд╕рд╛рде рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рдирдХреЛ рдЧрдгрдирд╛рдХреЛ рдкреВрд░рд╛ рд╣реБрдиреЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдЧрд░реНрджреИ;
  • рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрдерд┐рд░ рднрдпреЛ alloc, рдЬрд╕рд▓реЗ рдореЗрдореЛрд░реА-рдЖрдмрдВрдЯрд┐рдд рдорд╛рдирд╣рд░реВ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕реНрдорд╛рд░реНрдЯ рд╕реВрдЪрдХрд╣рд░реВ рд░ рд╕рдЩреНрдХрд▓рдирд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред std рдорд╛ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрдирд▓реЗ рдЕрдм рдкреНрд░рдХрд╛рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рдПрдЙрдЯрд╛ рдХреБрд░рд╛, рдЬреБрди alloc рдмрд╛рдЯ рдкреБрди: рдирд┐рд░реНрдпрд╛рдд рдЧрд░рд┐рдиреНрдЫред alloc рдХреЛ рдЫреБрдЯреНрдЯреИ рдкреНрд░рдпреЛрдЧрд▓реЗ std ("#![no_std]") рдорд╛ рдирдмрдврд╛рдЗрдПрдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛ рдЕрд░реНрде рд░рд╛рдЦреНрдЫ, рд╕рд╛рдереИ std рдмрд┐рдирд╛ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдорд╛;
  • рдорд╛рдирд╣рд░реВрдХреЛ рд╕рд╣реА рдкреНрд░рд╛рд░рдореНрднрд┐рдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╛рдБрдЪрд╣рд░реВ рдмрд╛рдЗрдкрд╛рд╕ рдЧрд░реНрди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рдХрд╛рд░ рд╣реБрдирд╕рдХреНрдЫ рдпреБрдирд┐рдЯ, рдЬреБрди рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдкрдХреЛ рд░реВрдкрдорд╛ mem::uninitialized рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рд╕рдЯреНрдЯрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред mem::uninitialized рдкреНрд░рдХрд╛рд░реНрдп рдЪрд╛рдБрдбреИ arrays рдмрдирд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫ, рддрд░ рдпрд╕рд▓реЗ рдХрдореНрдкрд╛рдЗрд▓рд░рд▓рд╛рдИ рдмрд╣рдХрд╛рдЙрдБрдЫ рдХрд┐рдирднрдиреЗ рдпреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рднрдПрдХреЛ рджреЗрдЦрд┐рдиреНрдЫ, рддрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛рдорд╛ рдорд╛рди рд╕реБрд░реБ рдирдЧрд░реА рд░рд╣рдиреНрдЫред MaybeUninit рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдХрдореНрдкрд╛рдЗрд▓рд░рд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рд╕рдВрдХреЗрдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдХрд┐ рдорд╛рди рдЕрдкреНрд░рд╛рд░рдореНрдн рдЧрд░рд┐рдПрдХреЛ рдЫ, рдпрд╕рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдореНрднрд╛рд╡рд┐рдд рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░рд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрди, рд░ "maybe_t:" рд░ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдкреНрд░рд╛рд░рдореНрднрд┐рдХрддрд╛ рдорд╛рд░реНрдлрдд рдХрд╛рд░реНрдпрдХреНрд░рдордорд╛ рдЪреЗрдХрд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди, рдпрд╕рдХреЛ рдкреВрд░рд╛ рднрдПрдХреЛ рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЙрдБрджреИред ".assume_init()" рдХрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ред MaybeUninit рдХреЛ рдЖрдЧрдорди рд╕рдВрдЧ, mem::uninitialized рдкреНрд░рдХрд╛рд░реНрдп рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫ рд░ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди;
  • NLL (Non-Lexical Lifetimes) рдкреНрд░рд╡рд┐рдзрд┐, рдЬрд╕рд▓реЗ рдЙрдзрд╛рд░рд┐рдПрдХреЛ рдЪрд░рд╣рд░реВрдХреЛ рдЬреАрд╡рдирдХрд╛рд▓ рд░реЗрдХрд░реНрдб рдЧрд░реНрдиреЗ рдкреНрд░рдгрд╛рд▓реАрд▓рд╛рдИ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрдпреЛ, Rust 2015 рднрд╛рд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ (рд╕реБрд░реБрдорд╛, NLL рдорд╛рддреНрд░ Rust 2018 рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдерд┐рдпреЛ)ред рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╕реНрддрд░рдорд╛ рдЬреАрд╡рдирдХрд╛рд▓ рдХрдорд┐рдЯ рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛, NLL рд▓реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рд╡рд╛рд╣ рдЧреНрд░рд╛рдлрдорд╛ рд╕реВрдЪрдХрд╣рд░реВрдХреЛ рд╕реЗрдЯрдХреЛ рд╕реНрддрд░рдорд╛ рдЧрд░реНрдЫред рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЪрд░рд╣рд░реВрдХреЛ рдЙрдзрд╛рд░реЛ рдЬрд╛рдБрдЪрдХреЛ рдЧреБрдгрд╕реНрддрд░ рдмрдврд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ (рдЙрдзрд╛рд░реЛ рдкрд░реАрдХреНрд╖рдХ) рд░ рдХреЗрд╣реА рдкреНрд░рдХрд╛рд░рдХрд╛ рд╕рд╣реА рдХреЛрдбрд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЬрд╕рдХреЛ рдкреНрд░рдпреЛрдЧрд▓реЗ рдкрд╣рд┐рд▓реЗ рддреНрд░реБрдЯрд┐ рдирд┐рдореНрддреНрдпрд╛рдпреЛред рдирдпрд╛рдБ рд╡реНрдпрд╡рд╣рд╛рд░рд▓реЗ рдкрдирд┐ рдбрд┐рдмрдЧрд┐рдЩ рдзреЗрд░реИ рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫ;
  • рд╕рд╣рдпреЛрдЧреА arrays рдХреЛ рдирдпрд╛рдБ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдорд╛рд╡реЗрд╢ рд╣рд╢рдореНрдпрд╛рдк, рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЖрд╡реЗрджрди рдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╕реНрд╡рд┐рд╕ рддрд╛рд▓рд┐рдХрд╛ (рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд▓реЛрдб hashbrown::HashMap, рдЬрдмрд╕рдореНрдо рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдЕрдиреНрдпрдерд╛ рднрдирд┐рдПрдХреЛ рдЫреИрди, рдЬрд╕реНрддреИ std::HashMap, рдЬреБрди SipHash 1-3 рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫ)ред рд╕рдлреНрдЯрд╡реЗрдпрд░рдХреЛ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдЙрд╕реНрддреИ рд░рд╣рдиреНрдЫ, рд░ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдзреНрдпрд╛рди рджрд┐рди рд╕рдХрд┐рдиреЗ рднрд┐рдиреНрдирддрд╛рд╣рд░реВ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрдирдорд╛ рд╡реГрджреНрдзрд┐ рд░ рдореЗрдореЛрд░реА рдЦрдкрдд рдШрдЯрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдЙрдмрд▓рд┐рдиреНрдЫ;
  • рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХ рдХрд╛рд░реНрдЧреЛ рдорд╛ рдердкрд┐рдпреЛ "--рдЕрдлрд▓рд╛рдЗрди" рд╡рд┐рдХрд▓реНрдк, рдЬрд╕рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд╣реБрдБрдЪ рдирдЧрд░реА рд╕рдЮреНрдЪрд╛рд▓рдирд▓рд╛рдИ рд╕рдХреНрд╖рдо рдмрдирд╛рдЙрдБрдЫ, рдЬрд╕рдорд╛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдХреНрдпрд╛рд╕ рдЧрд░рд┐рдПрдХрд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдорд╛рддреНрд░ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдпрджрд┐ рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдиреАрдп рдХреНрдпрд╛рд╕рдорд╛ рдЫреИрди рднрдиреЗ, рддреНрд░реБрдЯрд┐ рдлреНрдпрд╛рдБрдХрд┐рдиреЗрдЫред рдЕрдлрд▓рд╛рдЗрди рдЬрд╛рдиреБ рдЕрдШрд┐ рд╕реНрдерд╛рдиреАрдп рдХреНрдпрд╛рд╕рдорд╛ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рдкреНрд░рд┐рд▓реЛрдб рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ "рдХрд╛рд░реНрдЧреЛ рдлреЗрдЪ" рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ;
  • рдореНрдпрд╛рдХреНрд░реЛ "dbg!" рдХрд▓ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдпреЛред рдзреЗрд░реИ рддрд░реНрдХрд╣рд░реВ рд╕рдВрдХреЗрдд рдЧрд░реНрджреИ;
  • "const" рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬрд╕рд▓реЗ рд╕реНрдерд┐рд░рд╛рдВрдХрдХреЛ рд╕рдЯреНрдЯрд╛ рдХреБрдиреИ рдкрдирд┐ рд╕рдиреНрджрд░реНрднрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫ, рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред
    рд▓реЗрдЖрдЙрдЯ::from_size_align_unchecked,
    mem::needs_drop,
    NonNull :: рдЭреБрд▓рд╛рдЙрдиреЗ рд░
    NonNull ::cast;

  • рдПрдкреАрдЖрдИрд╣рд░реВрдХреЛ рдирдпрд╛рдБ рднрд╛рдЧрд▓рд╛рдИ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧрдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫ, рд╕реНрдереАрд░ рдЧрд░рд┐рдПрдХрд╛ рд╡рд┐рдзрд┐рд╣рд░реВ рд╕рд╣рд┐рдд
    рдХрд╛рд░реНрдп::рд╡реЗрдХрд░, рдХрд╛рд░реНрдп::рдкреЛрд▓,
    VecDeque::rotate_left, VecDeque::rotate_right,
    рдкрдвреНрдиреБрд╣реЛрд╕реН::read_vectored, рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН::write_vectored,
    рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐:: рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░рд┐рдПрдХреЛ,
    BorrowMut (рд╕реНрдЯреНрд░рд┐рдЩрдХрд╛ рд▓рд╛рдЧрд┐) рд░ str::as_mut_ptrред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди