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!
InformationsquelleAutor xetra11 | 2016-08-24
Schreibe einen Kommentar