рдЬрдВрдЧ 1.51 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд░рд┐рд▓реАрдЬ

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

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

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

  • рдирд┐рд░рдВрддрд░ рдЬреЗрдиреЗрд░рд┐рдХ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЬреБрдбрд╝реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдиреНрдпреВрдирддрдо рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдЙрддреНрдкрд╛рдж (рдПрдорд╡реАрдкреА) рдХрд╛ рджрд░реНрдЬрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╣рд░реА рдЭрдВрдбреА рдорд┐рд▓ рдЧрдИ рд╣реИред рдХреЙрдиреНрд╕реНрдЯ рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрдерд┐рд░ рдореВрд▓реНрдпреЛрдВ рдкрд░ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддред рд╕рд╛рдорд╛рдиреНрдп рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд░рдВрддрд░ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рддрдХ рд╕реАрдорд┐рдд рдХрд░реЗрдВ, рди рдХрд┐ рдкреНрд░рдХрд╛рд░ рдпрд╛ рдЬреАрд╡рдирдХрд╛рд▓ рддрдХред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖рдг рдмрдирд╛рддреЗ рд╕рдордп рдкреВрд░реНрдгрд╛рдВрдХ-рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рдкреНрд░рдХрд╛рд░реЛрдВ рдФрд░ рдЕрдореВрд░реНрддрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреЛрдИ рднреА рд╕реАрдорд╛ рд╕реЗ рдмрд╛рд╣рд░ рдХреА рдШрдЯрдирд╛рдПрдВ рди рд╣реЛрдВ, рдорд╛рдиреНрдп рдорд╛рдиреЛрдВ рдХреА рдкреНрд░рддреНрдпреЗрдХ рд╢реНрд░реЗрдгреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдП рдмрд┐рдирд╛ред

    рд╡рд░реНрддрдорд╛рди рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реБрдП, тАЬ[T;тАЭ рдкреНрд░рдХрд╛рд░ рд╡рд╛рд▓реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП; рдПрди]" (рдкреНрд░рдХрд╛рд░ рдЯреА рдФрд░ рдЖрдХрд╛рд░ рдПрди) рдХрд┐рд╕реА рднреА рдкреВрд░реНрдгрд╛рдВрдХ, рдмреВрд▓рд┐рдпрди рдФрд░ рдЪрд░рд┐рддреНрд░ рдкреНрд░рдХрд╛рд░ (рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдПрдирдо рдкреНрд░рдХрд╛рд░ рдЕрднреА рддрдХ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ) рдХреЗ рд╕рд╛рде рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЖрдХрд╛рд░ рдХреЛ рдЕрдореВрд░реНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд▓рдЧрд╛рддрд╛рд░ рдЬреЗрдирд░рд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдХрд╛рд╕ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реИрдВ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдРрд╕реЗ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЖрдХрд╛рд░ рд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: struct Array { // ^^^^^^^^^^^^^^^^^^^^^ рдПрдХ рдирд┐рд░рдВрддрд░ рд╕рд╛рдорд╛рдиреНрдп рд╕реВрдЪреА рдХреА рдкрд░рд┐рднрд╛рд╖рд╛: [рдЯреА; рд▓рдВрдмрд╛рдИ] // ^^^^^^ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ }

    рдЬрдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдРрд░реЗ" рдХреА рдЗрд╕ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ┬╗рдХрдВрдкрд╛рдЗрд▓рд░ рдРрд░реЗ рдХрд╛ рдПрдХ рдореЛрдиреЛрдореЛрд░реНрдлрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛: рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдРрд░реЗ { рд╕реВрдЪреА: [u8; 32] }

  • рдирд┐рд░рдВрддрд░ рдЬреЗрдирд░рд┐рдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд std::array::IntoIter API рдХреЛ рд╕реНрдерд┐рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдХрд┐рд╕реА рднреА рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдорд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрдЯрд░реЗрдЯрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ: fn main() {let array = [1, 2, 3, 4, 5] ; // рдкрд╣рд▓реЗ, рдХрд┐рд╕реА рдорд╛рди рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ array.iter().copied() { println!("{}", item); рдореЗрдВ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП .iter() рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рдерд╛; } // рдЕрдм рдЖрдк std::array::IntoIter::new(array) { println!("{}", item); рдореЗрдВ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; } }
  • рдХрд╛рд░реНрдЧреЛ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдЕрдм Cargo.toml рдореЗрдВ рдПрдХ рдирдП рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рдлрд╝реАрд▓реНрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝реАрдЪрд░ рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ рдХреЗ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдбрд┐рдлрд╝рд┐рдирд░ рдХрд╛ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг "[рдлреАрдЪрд░реНрд╕]" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдирд┐рд░реНрднрд░рддрд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИ рдЬреЛ рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдореИрдХреНрд░реЛрдЬрд╝ рдореЗрдВ рдХреБрдЫ рдорд╛рдирдХ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЧреИрд░-рдорд╛рдирдХ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкрд░рд┐рдгрд╛рдореА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВред

    рдЕрдм рддрдХ, рдирд┐рд░реНрднрд░рддрд╛ рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдХрдИ рдмрд╛рд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреИрдХреЗрдЬ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ foo рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рдХреНрд╖рдорддрд╛рдУрдВ A рдФрд░ B рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ, рдФрд░ рдЗрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдкреИрдХреЗрдЬ bar рдФрд░ baz рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА bar рдлреАрдЪрд░ A рдХреЗ рд╕рд╛рде foo рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ baz рдлреАрдЪрд░ B рдХреЗ рд╕рд╛рде foo рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд╛рд░реНрдЧреЛ рдЗрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдлреВ рдХреЛ рдП рдФрд░ рдмреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛ред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рд▓рдХреНрд╖реНрдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдХрд╛рд░рдг рд╕рдХреНрд╖рдо рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдореА рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк "#![no_std]" рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдореЗрдВ "#![no_std]" рдХреЗ рд╕рд╛рде foo рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕реА рд╕рдордп рдмрд┐рд▓реНрдб рдЗрди рдХреЗ рджреМрд░рд╛рди "std" рдХреЗ рд╕рд╛рде foo рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд░реБ. Cargo.toml рдореЗрдВ рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░ = "2" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╕рдордп, рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рдЕрдм рджреЗрд╡, рд╣реЛрд╕реНрдЯ рдФрд░ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░рддреЗ рд╣реБрдП, рдЗрд╕ рд╕рдВрдШрд░реНрд╖ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред

  • рдХрд╛рд░реНрдЧреЛ рд╕реНрдкреНрд▓рд┐рдЯ-рдбреАрдмрдЧрд┐рдирдлреЛ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ "[рдкреНрд░реЛрдлрд╛рдЗрд▓]" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕реЗрдЯ рд╣реИ, рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдзреНрд╡рдЬ "-Csplit-debuginfo=unpacked" рдХреЛ рд░рд╕реНрдЯрд╕реА рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред dsymutil рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ macOS рдкрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЧрддрд┐ рджреЗрдВред
  • рд╕реНрдерд┐рд░реАрдХреГрдд рдореЗрдХреЛрд╕ "ptr::addr_of!" рдФрд░ "ptr::addr_of_mut!", рдЬреЛ рдЖрдкрдХреЛ рдЕрд╕рдВрд░реЗрдЦрд┐рдд рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдХрдЪреНрдЪреЗ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред std::ptr рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ; #[рд░реЗрдкреНрд░(рдкреИрдХреНрдб)] рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдкреИрдХреНрдб { рдПрдл1: рдпреВ8, рдПрдл2: рдпреВ16, } рд▓реЗрдЯ рдкреИрдХреНрдб = рдкреИрдХреНрдб { рдПрдл1: 1, рдПрдл2: 2 }; // &packed.f2 рдПрдХ рдЕрд╕рдВрд░реЗрдЦрд┐рдд рдкреЙрдЗрдВрдЯрд░ рдмрдирд╛рдПрдЧрд╛ рдЬрд┐рд╕рд╕реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдЧрд╛, Let raw_f2 = ptr::addr_of!(packed.f2); assert_eq!(рдЕрд╕реБрд░рдХреНрд╖рд┐рдд { raw_f2.read_unaligned() }, 2);
  • рдПрдкреАрдЖрдИ рдХрд╛ рдПрдХ рдирдпрд╛ рднрд╛рдЧ рд╕реНрдерд┐рд░ рд╢реНрд░реЗрдгреА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд┐рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
    • рдЖрд░реНрдХ::decrement_strong_count
    • рдЖрд░реНрдХ::increment_strong_count
    • рдПрдХ рдмрд╛рд░::рдХреЙрд▓_рдПрдХ рдмрд╛рд░_рдмрд▓
    • рджреЗрдЦрдиреЗ рдпреЛрдЧреНрдп::next_if_eq
    • рджреЗрдЦрдиреЗ рдпреЛрдЧреНрдп::next_if
    • рдЦреЛрдЬреЗрдВ::рд╕реНрдЯреНрд░реАрдо_рдкреЛрдЬреАрд╢рди
    • рд╕рд░рдгреА::рдЗрдирдЯреВрдЗрдЯрд░
    • рдШрдмрд░рд╛рд╣рдЯ::рдШрдмрд░рд╛рд╣рдЯ_рдХреЛрдИ
    • ptr::addr_of!
    • ptr::addr_of_mut!
    • рд╕реНрд▓рд╛рдЗрд╕::рднрд░реЗрдВ_рд╕рд╛рде
    • рд╕реНрд▓рд╛рдЗрд╕::рд╕реНрдкреНрд▓рд┐рдЯ_рдЗрдирдХреНрд▓реВрд╕рд┐рд╡_рдореНрдпреВрдЯ
    • рд╕реНрд▓рд╛рдЗрд╕::рд╡рд┐рднрд╛рдЬрд┐рдд_рд╕рдорд╛рд╡реЗрд╢реА
    • рд╕реНрд▓рд╛рдЗрд╕::рд╕реНрдЯреНрд░рд┐рдк_рдЙрдкрд╕рд░реНрдЧ
    • рд╕реНрд▓рд╛рдЗрд╕::рд╕реНрдЯреНрд░рд┐рдк_рдкреНрд░рддреНрдпрдп
    • str::рд╕реНрдкреНрд▓рд┐рдЯ_рд╕рдорд╛рд╡реЗрд╢реА
    • рд╕рд┐рдВрдХ::рд╡рдиреНрд╕рд╕реНрдЯреЗрдЯ
    • рдХрд╛рд░реНрдп::рдЬрд╛рдЧреЛ
  • рд╕рдорд░реНрдерди рдХрд╛ рддреАрд╕рд░рд╛ рд╕реНрддрд░ i386-unknown-linux-gnu, i486-unknown-linux-gnu, aarch64_be-unknown-linux-gnu, aarch64-unknown-linux-gnu_ilp32 рдФрд░ aarch64_be-unknown-linux-gnu_ilp32 рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред . рддреАрд╕рд░реЗ рд╕реНрддрд░ рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд┐рдирд╛, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмрд┐рд▓реНрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛, рдпрд╛ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдХрд┐ рдХреЛрдб рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ