声明结构体字段对象类型时,我必须在这里使用什么样的生命周期参数

2023-12-08

这就是我的代码的样子。我正在尝试在我的内部使用一个实现的结构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(使用前将#替换为@)

声明结构体字段对象类型时,我必须在这里使用什么样的生命周期参数 的相关文章

随机推荐

  • jquery移动按钮文本自动换行

    我希望按钮中的文本在到达按钮末尾时自动换行 当我使用普通的 jquery mobile 样式时 它会截断我的文本并放置三个点 如下所示 here 我发现了一个小解决方法 这些点不会像这里一样显示 空白 正常对我不起作用 here 有人知道我
  • Firestore 获取数据时性能缓慢的问题

    与实时数据库相比 我在检索文档中存储的基本数据时遇到了 Firestore 性能缓慢的问题 比率为 1 10 使用 Firestore 第一次调用平均需要 3000 毫秒 this db collection testCol doc tes
  • 当第一个元素匹配时,jQuery inArray 不起作用

    我正在尝试检查我创建的数组 以确定数组 任何位置 中是否存在值 如果该值位于数组中的任何位置 则它需要执行一项操作 否则执行另一项操作 var Arr false false false false false It works with
  • 使用 PHP 进行图像识别

    我想知道是否有任何方法可以编写 PHP 脚本来读取图像并查找其中的特定元素 例如 图像将包含名称列表 并且对于每个名称 将有一个框 其中将出现特定字符 我希望能够获取所有名称并检查存在特定字符的名称 谢谢 您应该尝试使用已经制作的 OCR
  • SWF Flash Uploader 使 JSESSIONID 无效。有想法从服务器端或客户端恢复会话吗?

    我正在使用 SWF Uploader 上传文件 我在服务器端使用java Flash 自动使 Java 会话失效 SWF团队到目前为止还没有找到任何修复方法 经过一番搜索 我发现了这个link 其中讨论了在 ASP 中处理这个问题的想法 在
  • Java JFrame .setSize(x, y) 不起作用?

    当我执行这段代码时 会弹出一个小窗口 它的内部约为 116x63 整个尺寸 包括边框 约为 140x100 如何将内部设置为我所需要的 public static void graphics JFrame frame new JFrame
  • Android OpenCV 简单形状检测应用圆错误

    以下代码对于正方形可以正常工作 但对于三角形则不起作用 为什么 这是我的示例代码 public void onClick View v ImageView resim ImageView findViewById R id imgview
  • 目前哪些浏览器支持“范围”输入?

    我似乎无法在谷歌上找到任何关于此的信息 我知道你几乎可以排除 IE 我知道 webkit 支持它 但你还知道什么 好吧 这个问题已经存在很长一段时间了 但我还是想添加这个 关于浏览器支持的问题 好的来源始终是caniuse com网站 在这
  • 如何在 Cypress 中测试选择是否具有给定值? [复制]

    这个问题在这里已经有答案了 我对 Cypress 非常陌生 我想编写一个简单的测试 在页面首次加载时将选择框 下拉菜单 设置为特定状态 我不想将其设置为任何内容 网站上的说明清楚地显示了这一点 我只是想确保页面首次加载时选择框设置为应有的值
  • Swift2 从 Firebase 检索图像

    我正在尝试从 Firebase 读取 显示图像 我首先对图像进行编码 然后将此编码的字符串发布到 Firebase 这运行良好 当我尝试解码 Firebase 中的编码字符串并将其转换为图像时 我收到一个 nil 值异常 这就是我将图像保存
  • __DIR__ 不适用于 php include

    我正在尝试使用 php include 将一个 php 文件链接到另一个 结构是这样的 ROOT templates footer php main maps uk map php Using 代码链接绝对没问题 使用任一 or
  • 初始化 Objective-C 类 ivar,它是一个 C 数组

    我的 Obj C 类中有一个 ivar 它是一个 C 数组 我对使其成为 Obj C 属性不感兴趣 够简单的 现在 在我的类的 init 方法中 我想使用 C 数组简写 init 为该数组播种一些值 如下面的 m 所示 但我相当肯定这是创建
  • Android setShareIntent 在片段内

    一 背景 我有一个屏幕 上面有 ShareActionProvider and a ViewPager 使用片段 我希望做的是从当前可见片段内部获取一些信息来创建意图 然后我就能够在 ShareActionProvider 上设置意图 这是
  • 如何在rmarkdown中的pdf_document中渲染htmlTable包中的表格?

    在 rmarkdown 在 RStudio 中 中 我使用 htmlTable 包在 html 文档中生成漂亮的表格 现在我想要在渲染 pdf 文档时得到相同的结果 表格未正确呈现 如何让 rmarkdown 在我的 pdf 文档中生成表格
  • 源映射必须有 .map 扩展名吗?

    如果我创建一个源映射 我是否必须给它一个 map 扩展名 或者我可以将其命名为 foo 只要它具有正确的标头 如果有人能指出这方面的文档 我将不胜感激 它可以有任何扩展名 在压缩 缩小 原始文件中 您放入sourceMappingUrl评论
  • 通过拖放文件或文件夹来启动 Swift OSX 应用程序

    我试图弄清楚如何通过拖放文件或文件夹来在 OSX 上启动 Swift 应用程序 并让它将拖放资源的完整路径视为参数 首先 在 项目导航器 根节点 中选择您的项目 然后转到 信息 选项卡以声明您的应用程序支持的文件类型 它可以窄到 仅 CSV
  • Outlook 自动化 - 更改发件人帐户

    我正在自动化 Outlook 并且需要控制电子邮件的发件人身份 用户将在 Outlook 中设置两个或多个帐户 我需要能够选择从哪个帐户发送电子邮件 有任何想法吗 需要 Outlook 2003 及以上版本支持 我正在使用 Delphi 2
  • 是什么原因造成的,当数值大于一定位数时,结果会不同呢?

    非常抱歉 在尝试完所有案例之前 我急忙发邮件向大家说声抱歉 根据你的回答 我尝试并推翻了之前的想法 随着位数的变化 我很困惑 我没有测试多少位数字是正常的 但我相信这个例子应该可以解释 字符串类型与数字类型比较时 当位数大于一定值时 只返回
  • -replace 不将字符串替换为“()”

    我正在尝试在 PowerShell 中替换包含括号的字符串 但是 当我尝试这样做时 它不起作用 知道我哪里出错了吗 我应该做什么来替换包含的字符串 with replace在 PowerShell 中 a Some Text with ro
  • 声明结构体字段对象类型时,我必须在这里使用什么样的生命周期参数

    这就是我的代码的样子 我正在尝试在我的内部使用一个实现的结构ShapeRenderer构造并使用它的方法 形状 rs use super core pub struct ShapeRenderer lt a gt core renderer