Google рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдореБрдЭреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреБрд░рд╛рдиреЗ рддрд░реНрдХ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд░рд╕реНрдЯ рдореЗрдВ рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд┐рднрд╛рдЬрди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝, рдпрд╛ Div
рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП API рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреЛ рдХрд╣рддреЗ рд╣реИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред (рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЕрд░реНрде рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ /
, checked_div
, рдФрд░ wrapping_div
рд╕рднреА рдПрдХ рд╣реА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред) рдпрд╣ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрднреА-рдХрднреА рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреНрд░рдорд┐рдд рд╣реЛрддрд╛ рд╣реИ /
рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд┐рднрд╛рдЬрди рдФрд░ рдХрднреА-рдХрднреА рдЧрдгрд┐рддреАрдп рд╡рд┐рднрд╛рдЬрди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред (рдореИрдВ floor(self / other)
рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдЪрд┐рдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде wrapping_div
рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдирд╣реАрдВ рдЖ рд╕рдХрддрд╛ред) рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрд╕реЗ рдХрд╣реАрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╣реИ рдкреВрд░реНрдгрд╛рдВрдХ рдЕрдВрдХрдЧрдгрд┐рдд рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рднреНрд░рдо рдХреА рд╕реНрдерд┐рддрд┐ред
http://doc.rust-lang.org/reference.html#behavior -not-considered-unsafe 'рдУрд╡рд░рдлреНрд▓реЛ' рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд░реИрдкрд┐рдВрдЧ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
@steveklabnik
рдпрд╣ рдЧреЛрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рд▓рдкреЗрдЯрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВред рд╣рдо LLVM рдХреЗ sdiv
, рдЬреЛ рд╢реВрдиреНрдп рдХреА рдУрд░ рдЪрдХреНрдХрд░ рд▓рдЧрд╛рддрд╛ рд╣реИ (рдФрд░ srem
рдХрд╛ рд▓рд╛рднрд╛рдВрд╢ рдХреЗ рд╕рдорд╛рди рдЪрд┐рд╣реНрди рд╣реИ)ред рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ( wrapping_div
рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рд╡рд░реНрддрдорд╛рди рдореЗрдВ _lies_, рдпрд╣ рджрд╛рд╡рд╛ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдирдХрд╛рд░рд╛рддреНрдордХ рдЕрдирдВрдд рдХреА рдУрд░ рд╣реИ)ред
рдпрд╣ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рднреА рдЫреЛрдбрд╝рдиреА рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реНрдгрд╛рдВрдХ/рдкреВрд░реНрдгрд╛рдВрдХ рд╣рдореЗрд╢рд╛ рд╡рд╛рдВрдЫрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рджреБрд░реНрдШрдЯрдирд╛ рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдмрд╕ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕реЗ рдкрдврд╝ рд░рд╣рд╛ рд╣реИред