我想在main()
之外的模块中启动Rocket,因此可以简化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();
}
错误:
error: cannot find macro `routes!` in this scope
--> src\main.rs:12:37
|
12 | rocket::ignite().mount("/", routes![index]).launch();
|
我不知道如何解决它。
答案 0 :(得分:2)
我实现了。我项目的箱子是rocket_demo
main.rs
extern crate rocket_demo;
use rocket_demo::my_rocket;
fn main() {
my_rocket::startup();
}
lib.rs
#![feature(plugin)]
#![plugin(rocket_codegen)]
extern crate rocket;
pub mod my_rocket;
前三行不能在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();
}