рд░рд╕реНрдЯрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЗрдореЛрд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдкреЛрдЗрдиреНрдЯрд░ рд╣реЗрд░рдлреЗрд░рдмрд╛рдЯ рдореБрдХреНрдд рдЧрд░реНрджрдЫ рд░ рдирд┐рдореНрди-рд╕реНрддрд░ рдореЗрдореЛрд░реА рд╣реЗрд░рдлреЗрд░рдмрд╛рдЯ рдЙрддреНрдкрдиреНрди рд╣реБрдиреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдмрд╛рдЯ рдмрдЪрд╛рдЙрдБрдЫ, рдЬрд╕реНрддреИ-рдореБрдХреНрдд рдореЗрдореЛрд░реА рдкрд╣реБрдБрдЪ, рдирд▓ рдкреЛрдЗрдиреНрдЯрд░ рдбрд┐рд░реЗрд░реЗрдиреНрд╕реЗрд╕, рдмрдлрд░ рдУрднрд░рд░рдиреНрд╕, рд░ рдпрд╕реНрддреИред рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрди, рд╕рдВрдпреЛрдЬрди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХрдХреЛ рд╡рд┐рдХрд╛рд╕ рднрдЗрд░рд╣реЗрдХреЛ рдЫред
рдореБрдЦреНрдп
- рдХрд╛рд░реНрдЧреЛ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХрд▓реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреНрдпрд╛рдХреЗрдЬ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдердкреЗрдХреЛ рдЫ рдЬреБрди crates.io рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрд╕рдБрдЧ рд╕рдБрдЧреИ рд░рд╣рди рд╕рдХреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдЕрдм рдЖрдлреНрдиреИ рдирд┐рдЬреА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫрдиреН, рдЬреБрди Cargo.toml рдорд╛ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрджрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд░ рддрд┐рдиреАрд╣рд░реВрдХрд╛ рдЙрддреНрдкрд╛рджрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ crates.io рдЬрд╕реНрддреИ рд╕рдВрд╕реНрдХрд░рдг рдореЛрдбреЗрд▓ рд▓рд╛рдЧреВ рдЧрд░реНрди, рд╕рд╛рдереИ рджреБрд╡реИ рдХреНрд░реЗрдЯрд╣рд░реВрдорд╛ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрдиреБрд╣реЛрд╕реНред io рд░ рддрдкрд╛рдИрдВрдХреЛ рдЖрдлреНрдиреИ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ред
.cargo/config рдорд╛ рдмрд╛рд╣реНрдп рд░рдЬрд┐рд╕реНрдЯреНрд░реАрд╣рд░реВ рдердкреНрди ($HOME рд╡рд╛ рдкреНрдпрд╛рдХреЗрдЬ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдЕрд╡рд╕реНрдерд┐рдд)
рдкреНрд░рджрд╛рди рдЧрд░рд┐рдпреЛ рдЦрдгреНрдб "[рд░рдЬрд┐рд╕реНрдЯреНрд░реАрд╣рд░реВ]", рд░ рдмрд╛рд╣реНрдп рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди, "рд░рдЬрд┐рд╕реНрдЯреНрд░реА" рд╡рд┐рдХрд▓реНрдк Cargo.toml рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрднрд░рддрд╛рдХреЛ рд╡рд┐рд╡рд░рдгрдорд╛ рджреЗрдЦрд╛ рдкрд░реЗрдХреЛ рдЫред рдЕрддрд┐рд░рд┐рдХреНрдд рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЯреЛрдХрдирд▓рд╛рдИ ~/.cargo/credentials рдлрд╛рдЗрд▓рдорд╛ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН рд░ рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реНред
"рдХрд╛рд░реНрдЧреЛ рд▓рдЧрдЗрди --registry=my-registry" рд░ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрди -
"рдХрд╛рд░реНрдЧреЛ рдкреНрд░рдХрд╛рд╢рди -registry=my-registry"; - "?" рдЕрдкрд░реЗрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдорд╛
doctests , рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдкрд░реАрдХреНрд╖рдгрдХреЛ рд░реВрдкрдорд╛ рдХрд╛рдЧрдЬрд╛рддрдмрд╛рдЯ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИред рдкрд╣рд┐рд▓реЗ рдЕрдкрд░реЗрдЯрд░
"?" рдХреЗрд╡рд▓ "fn main()" рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐рдорд╛ рд╡рд╛ "#[test]" рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХреНрд░рдордорд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ; - рдЕрдиреБрдХреВрд▓рди рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдорд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореНрдпрд╛рдХреНрд░реЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд
рд╕реБрд░рдХреНрд╖рд┐рдд рдЯреЛрдХрдирд╣рд░реВрдХреЛ рдордирдорд╛рдиреА рд╕реЗрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ ("#[attr($tokens)]", "#[attr[$tokens]] рд░ #[attr{$tokens}]")ред рдкрд╣рд┐рд▓реЗ, рддрддреНрд╡рд╣рд░реВ рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдЩ рд▓рд┐рдЯрд░рд▓рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд░реВрдЦ/рдкреБрдирд░рд╛рд╡рд░реНрддреА рдлрд╛рд░рдордорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдереНрдпреЛ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ "#[foo(bar, baz(quux, foo = "bar"))]", рддрд░ рдЕрдм рдЧрдгрдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫ (' #[рджрд╛рдпрд░рд╛(0. .10)]') рд░ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рдЬрд╕реНрддреИ "#[рдмрд╛рдЙрдиреНрдб(T: MyTrait)]"; - рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░ (рд╡рд┐рд╢реЗрд╖рддрд╛)
рдмрд╛рдЯ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН ╨╕рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН , рддреНрд░реБрдЯрд┐ рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдВрдЧрдХреЛ рд╕рд╛рде рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдиреНрддрд░рдгрд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, integer рдкреНрд░рдХрд╛рд░рд╣рд░реБ рд╕рдВрдЧ from_be_bytes рдЬрд╕реНрддрд╛ рд╡рд┐рдзрд┐рд╣рд░реБ рдЗрдирдкреБрдЯ рдХреЛ рд░реВрдк рдорд╛ arrays рдХреЛ рдЙрдкрдпреЛрдЧ рдЧрд░реНрджрдЫ, рддрд░ рдбрд╛рдЯрд╛ рдЕрдХреНрд╕рд░ рд╕реНрд▓рд╛рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдорд╛ рдЖрдЙрдБрдЫ, рд░ arrays рд░ рд╕реНрд▓рд╛рдЗрд╕рд╣рд░реБ рдмреАрдЪ рд░реВрдкрд╛рдиреНрддрд░рдг рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдЫред рдирдпрд╛рдБ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдХреЛ рдорджреНрджрддрд▓реЗ, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдкрд░реЗрд╢рдирд▓рд╛рдИ .try_into() рдорд╛ рдХрд▓ рдорд╛рд░реНрдлрдд рдЙрдбрд╛рдирдорд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "let num = u32::from_be_bytes(slice.try_into()?)"ред рд╕рдБрдзреИ рд╕рдлрд▓ рд╣реБрдиреЗ рд░реВрдкрд╛рдиреНрддрд░рдгрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, u8 рджреЗрдЦрд┐ u32 рдкреНрд░рдХрд╛рд░рд╕рдореНрдо), рддреНрд░реБрдЯрд┐рдХреЛ рдкреНрд░рдХрд╛рд░ рдердкрд┐рдПрдХреЛ рдЫрдЕрдЪреВрдХ , рдкрд╛рд░рджрд░реНрд╢реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИ
"рдмрд╛рдЯ" рдХреЛ рд╕рдмреИ рдЕрд╡рд╕реНрдерд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН; - рдХрд╛рд░реНрдп рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ
CommandExt::before_exec , рдЬрд╕рд▓реЗ exec рдЪрд▓рд╛рдЙрдиреБ рдЕрдШрд┐ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдпреЛ, рдЬреБрди рдлреЛрд░реНрдХ() рдХрд▓ рдкрдЫрд┐ рдлреЛрд░реНрдХ рдЧрд░рд┐рдПрдХреЛ рдмрдЪреНрдЪрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рддреНрдпрд╕реНрддрд╛ рдЕрд╡рд╕реНрдерд╛рд╣рд░реВрдорд╛, рдЕрднрд┐рднрд╛рд╡рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХрд╛ рдХреЗрд╣реА рд╕реНрд░реЛрддрд╣рд░реВ, рдЬрд╕реНрддреИ рдлрд╛рдЗрд▓ рд╡рд░реНрдгрдирдХрд░реНрддрд╛рд╣рд░реВ рд░ рдореНрдпрд╛рдк рдЧрд░рд┐рдПрдХреЛ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░рд╣рд░реВ, рдирдХреНрдХрд▓ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЬрд╕рд▓реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рдЧрд▓рдд рд╕рдЮреНрдЪрд╛рд▓рди рдирд┐рдореНрддреНрдпрд╛рдЙрди рд╕рдХреНрдЫред
before_exec рдХреЛ рд╕рдЯреНрдЯрд╛ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдиреНрдЫCommandExt::pre_exec . - 8 рджреЗрдЦрд┐ 64 рдмрд┐рдЯ рд╕рдореНрдордХреЛ рдЖрдХрд╛рд░рдорд╛ рд╕реНрдерд┐рд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд░ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкрд░рдорд╛рдгреБ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░рд╣рд░реВ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐,
AtomicU8 ), рд╕рд╛рдереИ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░рд╣рд░реВNonZeroI [8|16|32|64|128]. - API рдХреЛ рдирдпрд╛рдБ рднрд╛рдЧ рдХреБрдиреИ рдкрдирд┐::type_id, Error::type_id, slice::sort_by_cached_key, str::escape_*, str::split_ascii_whitespace, Instant::checked_[add|sub тАЛтАЛрд╕рд╣рд┐рдд рд╕реНрдерд┐рд░ рдХреЛрдЯреАрдорд╛ рд╕рд╛рд░рд┐рдПрдХреЛ рдЫред ] рд░ SystemTime рд╡рд┐рдзрд┐рд╣рд░реВ рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ ::checked_[add|sub]ред iter::from_fn рд░ iter::successors рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ;
- рд╕рдмреИ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░рдХрд╛ рд▓рд╛рдЧрд┐, checked_pow, saturating_pow, wrapping_pow рд░ overflowing_pow рд╡рд┐рдзрд┐рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░рд┐рдиреНрдЫрдиреН;
- "-C linker-plugin-lto" рдмрд┐рд▓реНрдб рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрд░ рд▓рд┐рдЩреНрдХрд┐рдЩ рдЪрд░рдгрдорд╛ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рдирд╣рд░реВ рд╕рдХреНрд╖рдо рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкрд┐рдпреЛред
рд╕реНрд░реЛрдд: opennet.ru