Изменения в новых версиях / Rust 1.34

use std::convert::TryInto;

// *** before: ***
// сужающее приведение as молча обрезало число
let big: i64 = 300;
let small = big as u8;      // 44, и никакого признака ошибки

// *** in version 1.34: ***
// приведение, которое может не получиться, возвращает Result
let big: i64 = 300;
match big.try_into() {
    Ok(small) => println!("влезло: {}", small as u8),
    Err(_) => println!("не влезает в u8"),
}