рд╣рдо рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдкреНрдпрд╛рд░реЗ рдЬрдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдкреНрд░рдХрд╛рд╢рди рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВред
рдкрд░рд┐рдЪрдп
рдЬрдВрдЧ рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг, 1.37.0 рдХреА рд░рд┐рд╣рд╛рдИ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рдХреА рдХреГрдкрд╛ рдХрд░ рд░рд╣реА рд╣реИред рдЬрдВрдЧ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рд╕рднреА рдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рдХреБрд╢рд▓ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
рдпрджрд┐ рдЖрдкрдиреЗ рдЬрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрдВрдЧ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╕рдВрд╕реНрдХрд░рдг 1.37.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
$ rustup update stable
рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ rustup
рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╣рдорд╛рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреЗрдЬ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА rustup
рдкрд░ рд╡рд┐рд╕реНрддреГрдд рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯреНрд╕ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ?
рдЬрдВрдЧ 1.37.0 рдореЗрдВ рдкреНрд░рдореБрдЦ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЙрдкрдирд╛рдо рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд▓реНрдк, рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд cargo vendor
, рдЕрдирд╛рдо рд╕реНрдерд┐рд░рд╛рдВрдХ, рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓-рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЕрдиреБрдХреВрд▓рди, рдХрд╛рд░реНрдЧреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП default-run
рдХреБрдВрдЬреА рдФрд░ #[repr(align(N))]
рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдПред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯ рджреЗрдЦреЗрдВред
рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдирд╛рдореЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдХрд▓реНрдк enum
рд▓рд┐рдП рд▓рд┐рдВрдХ
рдЬрдВрдЧ 1.37.0 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛, рдПрдирд┐рдпрдо рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рдПрд▓рд┐рдпрд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрднрд╡ рд╣реИ:
type ByteOption = Option<u8>; fn increment_or_zero(x: ByteOption) -> u8 { match x { ByteOption::Some(y) => y + 1, ByteOption::None => 0, } }
impl
рдмреНрд▓реЙрдХ рдореЗрдВ Self
рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдВрдЧ 1.37.0 рдореЗрдВ Self::Variant
рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЧрдгрдирд╛ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛:
impl Coin { fn value_in_cents(&self) -> u8 { match self { Self::Penny => 1, Self::Nickel => 5, Self::Dime => 10, Self::Quarter => 25, } } }
рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЕрдм рдЬрдВрдЧ рдЖрдкрдХреЛ "рдЯрд╛рдЗрдк-рд░рд┐рд▓реЗрдЯрд┐рд╡ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди" , <MyType<..>>::Variant
рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрдгрдирд╛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕реНрдерд┐рд░реАрдХрд░рдг рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдЙрдкрд▓рдмреНрдз рд╣реИред
рд╡реЗрдВрдбрд░ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд┐рд╡ рдХрд╛рд░реНрдЧреЛ рд╕рдкреЛрд░реНрдЯ
рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рдж, cargo vendor
рдЯреАрдо рдЕрдм рдХрд╛рд░реНрдЧреЛ рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реИред рдпрд╣ рдХрдорд╛рдВрдб рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ vendor/
рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди рд╡реЗрдВрдбрд░ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
cargo vendor
рдкрд╣рд▓реЗ cargo vendor
рд╣реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: rustc
рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯрд╛рд░рдмреЙрд▓ рд░рд┐рд▓реАрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореЛрдиреЛ-рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╡рд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛрдб рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреА рд╣реИрдВред
рдореИрдХреНрд░реЛрдЬрд╝ рдореЗрдВ рдЕрдирд╛рдо рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЕрдм рдЖрдк рдЗрд╕рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ ( _
) рд╕реЗ рдмрджрд▓рдХрд░ рдПрдХ (unnamed) (const
) рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, rustc
рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ rustc
рд╣рдореЗрдВ рдпрд╣ рдХреЛрдб рдорд┐рд▓рд╛:
рджреВрд╕рд░реЗ static_assert_size!(..)
: рдЕрдирд╛рдо рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдирдП рддрддреНрд╡реЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╕рдордп рдирд╛рдо рд╕рдВрдШрд░реНрд╖ рдХреЛ рд░реЛрдХрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ static_assert_size!(MY_DUMMY_IDENTIFIER, usize, 8);
рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ static_assert_size!(MY_DUMMY_IDENTIFIER, usize, 8);
ред рдЕрдирд╛рдо рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреА рд╢реБрд░реВрдЖрдд рдХреЗ рд╕рд╛рде, рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрд░реНрдЧреЛрдиреЛрдорд┐рдХ рдФрд░ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдШреЛрд╖рдгрд╛ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореИрдХреНрд░реЛ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓-рдирд┐рд░реНрджреЗрд╢рд┐рдд рдЕрдиреБрдХреВрд▓рди
рдкреНрд░реЛрдлрд╛рдЗрд▓-рдЧрд╛рдЗрдбреЗрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди (PGO) рдЕрдм rustc
рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬрд┐рд╕реЗ -C profile-generate
рдФрд░ -C profile-use
rustc
рдХрдВрдкрд╛рдЗрд▓рд░ rustc
рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреНрд░реЛрдлрд╛рдЗрд▓-рдЧрд╛рдЗрдбреЗрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рддрдХрдиреАрдХ рд╣реИ рдЬреЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЗ рдмрдЬрд╛рдп рдЯреЗрд╕реНрдЯ рд░рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреА рд╣реИред рдпрд╣ рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
- рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣
rustc
рдлреНрд▓реИрдЧ -C profile-generate
рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рдЯреВрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдбреЗрдЯрд╛ рд╕реИрдВрдкрд▓ рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдмрд╛рдж рдореЗрдВ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдбреЗрдЯрд╛ рд▓рд┐рдЦ тАЛтАЛрджреЗрдЧрд╛ред - рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд┐рд░
rustc
, рдЗрд╕ рдмрд╛рд░-рдПрдХрддреНрд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП -C profile-use
рдзреНрд╡рдЬ рдХрд╛ -C profile-use
рдХрд░ rustc
рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЕрд╕реЗрдВрдмрд▓реА рдПрдХрддреНрд░рд┐рдд рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдХреЛрдб рдкреНрд▓реЗрд╕рдореЗрдВрдЯ, рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдФрд░ рдЕрдиреНрдп рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЗрд╣рддрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдЧреАред
рдкреНрд░реЛрдлрд╛рдЗрд▓-рдЧрд╛рдЗрдбреЗрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЬрдВрдЧрдд рдХрдВрдкрд╛рдЗрд▓рд░ рдмреБрдХ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдзреНрдпрд╛рдп рджреЗрдЦреЗрдВред
рдХрд╛рд░реНрдЧреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛
cargo run
рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рддреНрд╡рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИред рдЬрдм рдХрдИ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╛рдЗрд▓реЗрдВ рдПрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд╛рдо рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдЖрдк --bin
рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ cargo run
рдХреЛ рдПрд░реНрдЧреЛрдиреЛрдорд┐рдХ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЪрд╛рд╣реЗрдВрдЧреЗ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛ рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд░рд╕реНрдЯ 1.37.0 Cargo.toml
(рдЕрдиреБрднрд╛рдЧ [package]
) рдореЗрдВ рдПрдХ рдирдИ default-run
рдХреБрдВрдЬреА рдЬреЛрдбрд╝рдХрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ --bin
рдЭрдВрдбрд╛ рдирд╣реАрдВ --bin
, рддреЛ рдХрд╛рд░реНрдЧреЛ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдШреЛрд╖рд┐рдд рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛ред
#[repr(align(N))]
рд░реВрд╕реНрдЯ 1.37.0 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рд╡рд┐рд╢реЗрд╖рддрд╛ #[repr(align(N))]
рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдореГрддрд┐ рдореЗрдВ рдЧрдгрдирд╛ рдХреЗ рд╕рдВрд░реЗрдЦрдг рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдкрд╣рд▓реЗ рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗрд╡рд▓ рд╕рдВрд░рдЪрдирд╛рдУрдВ ( struct
) рдФрд░ рдпреВрдирд┐рдпрдиреЛрдВ ( union
) рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ рдереА)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ Align16
рдЧрдгрди, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ, 16
рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рд╕рдВрд░реЗрдЦрдг рд╣реИ, рдЬрдмрдХрд┐ рдмрд┐рдирд╛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдВрд░реЗрдЦрдг #[repr(align(16))]
4
рд╣реЛрдЧрд╛:
#[repr(align(16))] enum Align16 { Foo { foo: u32 }, Bar { bar: u32 }, }
рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП #[repr(align(N))
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╢рдмреНрджрд╛рд░реНрде рдЗрд╕ рд╕рдВрд░реЗрдЦрдг рдХреЗ рд╕рд╛рде рдПрдХ AlignN<T>
рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдг рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ AlignN<MyEnum>
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ AlignN<MyEnum>
:
#[repr(align(N))] struct AlignN<T>(T);
рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди
рд░реВрд╕реНрдЯ 1.37.0 рдиреЗ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдерд┐рд░ рдХрд┐рдпрд╛:
рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди
рд╕рд┐рдВрдЯреИрдХреНрд╕ , рдХрд╛рд░реНрдЧреЛ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░, рдФрд░ рдХреНрд▓рд┐рдкреНрдкреА рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рднреА рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдЧреБрдЬрд░реЗ рд╣реИрдВред
рд╕рджрд╕реНрдп 1.37.0
рд░рд╕реНрдЯ 1.37.0 рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЛрдЧ рдПрдХ рд╕рд╛рде рдЖрдПред рд╣рдо рдЖрдк рд╕рднреА рдХреЗ рдмрд┐рдирд╛ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдереЗ, рдзрдиреНрдпрд╡рд╛рдж!
рд╣рдо рджреЛ рдирдП Rust рдЗрдВрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдкреНрд░рд╛рдпреЛрдЬрдХреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ Rust 1.37.0: Amazon Web Services (AWS) рдФрд░ Microsoft Azure рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд┐рдП рд╣реИрдВ:
- AWS рдиреЗ рдЬрд╛рд░реА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ (рд╕рдВрдХрд▓рдХ, рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдЙрдкрдХрд░рдг рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб) рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХреА, CloudFront рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрди рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХреА, рдХреНрд░реЗрдЯрд░ рд╕реЗ EC2 рдкреНрд░рддрд┐рдЧрдорди рдХреЛ рд░реЛрдХрд╛, рдФрд░ AWS рджреНрд╡рд╛рд░рд╛ рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдПрдХ рдФрд░ рдЬрдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛ред
- рдЬрдВрдЧ-рд▓рдВрдЧ / рдЬрдВрдЧ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдЕрддреНрдпрдзрд┐рдХ рдорд╛рдВрдЧ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП, рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЕрдЬрд╝реВрд░ рдиреЗ рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ред
рдЕрдиреБрд╡рд╛рджрдХреЛрдВ рд╕реЗ
рд░рд╕реНрдЯ рднрд╛рд╖рд╛ рдкрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рд╢реНрди рдХреЗ рд╕рд╛рде, рд╡реЗ рд░реВрд╕реА рднрд╛рд╖рд╛ рдореЗрдВ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдЯ рдореЗрдВ рдпрд╛ рдирд╡рд╛рдЧрдВрддреБрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рдЪреИрдЯ рдореЗрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред
рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рд╕рдВрдпреБрдХреНрдд рд░реВрдк рд╕реЗ andvvlex , ozkriff , funkill рдФрд░ Gymmasssorla рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред