我想在一个模块中启动 Rocket main()
,这样可以简化,main()
但我失败了。我从火箭修改了Quicktart
编码:
mod myRocket {
#![feature(plugin)]
#![plugin(rocket_codegen)]
extern crate rocket;
#[get("/")]
fn index() -> &'static str {
"Hello, world!"
}
pub fn startup() {
rocket::ignite().mount("/", routes![index]).launch();
}
}
fn main() {
myRocket::startup();
}
Run Code Online (Sandbox Code Playgroud)
错误:
error: cannot find macro `routes!` in this scope
--> src\main.rs:12:37
|
12 | rocket::ignite().mount("/", routes![index]).launch();
|
Run Code Online (Sandbox Code Playgroud)
我不知道如何修复它。
我达到了。我的项目的箱子是rocket_demo
主文件
extern crate rocket_demo;
use rocket_demo::my_rocket;
fn main() {
my_rocket::startup();
}
Run Code Online (Sandbox Code Playgroud)
库文件
#![feature(plugin)]
#![plugin(rocket_codegen)]
extern crate rocket;
pub mod my_rocket;
Run Code Online (Sandbox Code Playgroud)
前三行不能在my_rocket/mod.rs,否则routes!
找不到!
my_rocket/mod.rs
#[get("/")]
fn index() -> &'static str {
"Hello, world!"
}
pub fn startup() {
::rocket::ignite().mount("/", routes![index]).launch();
}
Run Code Online (Sandbox Code Playgroud)