Ошибка вывода целого числа

написал код следующий:
use text_io::read;
fn main() {
let j: usize = read!();
let mut fib: Vec = vec![j.try_into().unwrap()];
fib.push(1);
fib.push(2);
fib.push(1);
for i in 3…j {
fib[i] = fib[i - 1] + fib[i - 2];
fib.push(fib[i]);
}

println!("{}", fib[j]);

}
для вычисления числа Фибоначчи, введя его номер,
Дело в том, что выводить число, которое я ввёл мне не надо, что и происходит.
Возможно проблема в макросе.
на форуме в первый раз

Насколько помню, в std нет способа читать stdin без эхо - нужно использовать внешние библиотеки вроде termion.

так и есть, писал, что использовал макрос read! из библиотеки text_io. Который следующее реализует
() => { $crate::try_read!(“{}”) };
($text:expr) => {{
(|| → std::result::Result<, $crate::Error> {
use std::io::Write;
std::io::stdout().flush().unwrap();
let try_read_var;
$crate::try_scan!($text, try_read_var);
Ok(try_read_var)
})()
}};
($text:expr, $input:expr) => {{
(|| → std::result::Result<
, $crate::Error> {
use std::io::Write;
std::io::stdout().flush().unwrap();
let try_read_var;
$crate::try_scan!($input => $text, try_read_var);
Ok(try_read_var)
})()
}};
);

проблема была в том, что библиотеки обычно читают строку как строковый тип, эта библиотека может возвращать нужный тип

кажется, дернуть у строки .parse() обычно не так уж и геморройно