Я новичок в Rust, и у меня небольшие проблемы со String. У меня есть такая структура:
#[derive(Deserialize, Debug)]
pub struct Config {
pub filepath: String,
#[serde(default = "default_port")]
pub port: i16
}
Мне нужно поле filepath
в нескольких методах, используя здесь:
pub fn startup(port: i16, filepath: String) -> () {
let mut server = Nickel::new();
server.get("/", middleware! { |request, mut response|
routes::base::home(request, filepath)
});
routes::index_route(&mut server, filepath);
let addr = format!("127.0.0.1:{}", port);
println!("Start Rest Api successfully");
server.listen(addr).unwrap();
}
Дом определяется так: pub fn home(_request: &mut nickel::Request, path: String) -> String
И index_route: pub fn index_route(server: &mut Nickel, path_data: String) -> ()
Но у меня есть эта ошибка: use of moved value: filepath
Я использую to_owned или clone или to_string, и я не понимаю, почему это не работает. Я прочитал книгу, но мне кажется, что чего-то не хватает
Большое спасибо за вашу помощь