這就是我的代碼的樣子。我正嘗試在我的ShapeRenderer
結構中使用實現結構並使用它的方法。在聲明結構字段對象類型時,我必須使用什麼樣的生命週期參數
shapes.rs:
use super::core::*;
pub struct ShapeRenderer<'a> {
core_renderer: &'a mut CanvasRenderer,
}
core.rs
pub struct Canvas {
pub width: usize,
pub height: usize,
pub array: Vec<char>,
}
pub struct Point {
pub x: usize,
pub y: usize,
}
pub struct CanvasRenderer<'a> {
canvas: &'a mut Canvas,
}
impl<'a> CanvasRenderer<'a> {
pub fn new(canvas: &'a mut Canvas) -> CanvasRenderer {
CanvasRenderer { canvas: canvas }
}
}
錯誤
error[E0107]: wrong number of lifetime parameters: expected 1, found 0
--> src/shapes.rs:5:28
|
5 | core_renderer: &'a mut CanvasRenderer
| ^^^^^^^^^^^^^^ expected 1 lifetime parameter
我用壽命參數標記了它 - 爲什麼它需要另一個?嘗試使用<'a>
的對象類型並將其附加到<'a>
- 這些嘗試均未解決問題。
您的設計看起來像您期望持有兩個mut引用到同一個畫布。無論如何這不會起作用。 –
啊哇!好點 - 謝謝你指出了! – xetra11