Как реализовать множ. выбор match по введенному числу?

Решил попробовать rust. Не могу понять как реализовать множ.выбор match по введенному числу. VSCode подсвечивает красным цифры. Смотрел примеры в интернете, но ничего не нашел для моей задачи.

 let mut mnum: i32;
 let mut mnum = String::new();
 io::stdin().read_line(&mut mnum).expect("err");

 match mnum {
      1 => func::messages::message_functions::hello(),
      2 => func::messages::message_functions::work(),
      3  => func::messages::message_functions::bye(),
      4 => test1::Func::test(),
   _=> panic!(),
    
 }

/**Новая версия, запустилась, но проблемы с логикой не вызывает функции */

let mut mnum = String::new();  
let mnum = io::stdin().read_line(&mut mnum).expect("err");
   match &mnum {
   
      1 => func::messages::message_functions:::hello(),
      2 => func::messages::message_functions::work(),
      3 => func::messages::message_functions::bye(),
      4 => test1::Func::test(),
  _ => {
        panic!("Ошибка: ");
      
    }
 }

после ввода выдает ошибку. непонятно, что не так. Эта простая задача для других языков. Если переменную инициализировать в коде то при запуске все работает. Пример рабочего кода:

 let mut mnum = String::new();
 let mut mnum: i32 = 1;

 match mnum {
      1 => func::messages::message_functions::hello(),
      2 => func::messages::message_functions::work(),
      3  => func::messages::message_functions::bye(),
      4 => test1::Func::test(),
   _=> panic!(),
    
 }

Нужно чтобы число вводилось (т.е.выбор меню и вызов функции из тела match) с командной строки.


Ответы (1 шт):

Автор решения: U255

разобрался надо еще один match с приведением в число:

let mut mnum = String::new(); 
io::stdin().read_line(&mut mnum).expect("err");

let mnum:u32 = match mnum.trim().parse() {
  Ok(mnum) => mnum,
  Err(_) => panic!()
};

 match mnum {
    1 => func::messages::message_functions::hello(),
    2 => func::messages::message_functions::work(),
    3  => func::messages::message_functions::bye(),
    4 => test1::Func::test(),
  _=> panic!(), 

 }
→ Ссылка