Welche Art von Lebensdauer-parameter muss ich hier bei der Deklaration eines struct-Feld Objekttyp
Dies ist, was mein code aussieht. Ich versuche, einen impled struct in meiner ShapeRenderer
struct und dessen Methoden verwenden.
Formen.rs:
use super::core::*;
pub struct ShapeRenderer<'a> {
core_renderer: &'a mut CanvasRenderer,
}
Kern.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 }
}
}
Fehler
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
Markierte ich Sie mit ein Leben lang-parameter - warum will Sie einen anderen? versucht, das Objekt-Typ <'a>
angehängt und es <'a>
- keiner dieser versuche hat das problem gelöst.
- Dein design sieht aus wie Sie erwarten, zu halten zwei mut Verweise auf die gleiche Leinwand. Das geht nicht, trotzdem arbeiten.
- ah wow! gute Punkte - Dank Sie zeigen, dass aus!
Du musst angemeldet sein, um einen Kommentar abzugeben.
CanvasRenderer
ist parametrisiert über ein Leben, so müssen Sie auch sagen, was das Leben ist:Jedoch, diese Struktur scheint nicht viel Sinn, es fügt nur Dereferenzierung. Warum haben Sie einen Verweis auf ein Ding, das nur ein Hinweis? Überspringen Sie die Zwischenhändler: