Я пишу графическую программу на Rust, используя ящик sdl2 из crates.io.
Я создал эту структуру в main.rs
:
struct GameObject {
name: &'static str,
pub texture: Option<Texture<'static>>
}
impl GameObject {
pub fn new(name: &'static str) -> Self {
Self { name, texture: None }
}
pub fn set_texture(&mut self, t: Option<Texture<'static>>) {
self.texture = t;
}
}
Я пытаюсь добавить текстуру к экземпляру GameObject
со следующими строками кода (где canvas
это результат window.into_canvas().build().unwrap()
в моем главном окне):
let tc = canvas.texture_creator();
let mut g = GameObject::new("obj");
g.texture = Some(tc.load_texture("image.png").unwrap());
, который вызывает эту ошибку:
error[E0597]: `tc` does not live long enough
--> src/main.rs:30:22
|
30 | g.texture = Some(tc.load_texture("image.png").unwrap());
| ^^---------------------------
| |
| borrowed value does not live long enough
| argument requires that `tc` is borrowed for `'static`
Что это означает в контексте моей программы?