这就是我的代码的样子。我正在尝试在我的内部使用一个实现的结构ShapeRenderer
构造并使用它的方法。
形状.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
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>
- 这些尝试都没有解决问题。
CanvasRenderer
是在整个生命周期内参数化的,因此您需要说明该生命周期是什么:
pub struct ShapeRenderer<'a> {
core_renderer: &'a mut CanvasRenderer<'a>,
// ^^^^
}
然而,这个结构似乎没有什么太大的用途,它只是增加了间接性。为什么要引用一个只有引用的东西?跳过中间人:
pub struct ShapeRenderer<'a> {
core_renderer: CanvasRenderer<'a>,
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)