新版本的变更 / Rust 1.40

// *** before: ***
// добавление поля или варианта ломало сборку у всех пользователей крейта,
// поэтому в перечисление вставляли скрытый вариант-заглушку
pub enum Error {
    NotFound,
    Timeout,
    #[doc(hidden)]
    __Nonexhaustive,
}

// *** in version 1.40: ***
#[non_exhaustive]
pub enum Error {
    NotFound,
    Timeout,
}

// у чужого крейта match по такому перечислению обязан иметь ветку _