# Обработка ошибок при декодировании
## Функция `read_nil`
Пытается прочесть ровно один байт из `Read` и представить его, как `Nil`.
### Требования
Из `Read` удастся прочитать хотя бы 1 байт.
### Возможные ошибки
- Не удалось прочитать этот байт по каким-то причинам. Технически этот байт является как
маркером, так и значением (что более правильно).
- Байт был прочитан, но его маркер не совпадает с ожидаемым.
Варианты:
1. NilReadError -> FixValReadError | MarkerReadError -> ReadError { EOF, Io(io::Error) },
TypeMismatch(actual).
2. MarkerReadError,
TypeMismatch(actual).
## Функция `read_bool`
Пытается прочесть ровно один байт из `Read` и представить его как `Boolean` значение.
### Требования
Из `Read` удастся прочитать хотя бы 1 байт.
### Возможные ошибки
- Не удалось прочитать этот байт по каким-то причинам. Технически этот байт является как
маркером, так и значением (что более правильно).
- Байт был прочитан, но его маркер не совпадает с ожидаемым.
Варианты:
1. BoolReadError -> FixValReadError | MarkerReadError -> ReadError { EOF, Io(io::Error) },
TypeMismatch(actual).
2. MarkerReadError,
TypeMismatch(actual).