【Rust】関数名を引数にして関数を呼び出したい

fn()とすることで、引数を関数にすることができる。

fn main() {
    run_function(handle_index);
}

fn run_function(f: fn()-> Option<HashMap<&'static str, &'static str>>) {
    let mut content: Option<HashMap<&str, &str>> = Some(HashMap::new());
    content = f();
    match content {
        Some(data) => {
            println!("{:?}", data);
        },
        None => {},
    }
}

fn handle_index() -> Option<HashMap<&'static str, &'static str>> {

    let mut content1 = HashMap::new();
    content1.insert(
        "title",
        "index page",
    );
    return Some(content1);
}

Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.45s
Running `target/debug/ares`
{“title”: “index page”}

なるほどー、中々やるやんけ