```
use std::io;

fn factorial(n: u32) -> u32 {
    let mut result = 1;
    for i in 1..=n {
        result *= i;
    }
    result
}

fn main() {
    println!("Enter a non-negative integer:");
    let mut input = String::new();
    io::stdin()
        .read_line(&mut input)
        .expect("Failed to read line");
    let n: u32 = match input.trim().parse() {
        Ok(num) => num,
        Err(_) => {
            println!("Invalid input, please enter a non-negative integer.");
            return;
        }
    };
    let result = factorial(n);
    println!("{}! = {}", n, result);
}
```

この例では、Rustの標準ライブラリを使って、std::ioを使ってコンソールからデータを入出力しています。また、forループを使って階乗を計算し、結果を返します。mainでは、ユーザーに非負の整数を入力してもらい、階乗関数を呼び出して結果を画面に表示しています。
use std::io;

fn factorial(n: u32) -> u32 {
    let mut result = 1;
    for i in 1..=n {
        result *= i;
    }
    result
}

fn main() {
    println!("Enter a non-negative integer:");
    let mut input = String::new();
    io::stdin()
        .read_line(&mut input)
        .expect("Failed to read line");
    let n: u32 = match input.trim().parse() {
        Ok(num) => num,
        Err(_) => {
            println!("Invalid input, please enter a non-negative integer.");
            return;
        }
    };
    let result = factorial(n);
    println!("{}! = {}", n, result);
}

В этом примере мы используем стандартную библиотеку Rust для ввода и вывода данных из консоли с помощью std::io. Мы также используем цикл for для вычисления факториала и возвращаем результат. В main мы запрашиваем у пользователя ввод неотрицательного целого числа, затем вызываем функцию factorial и выводим результат на экран.