在构造函数中创建对象并在struct中存储引用

时间:2018-01-26 23:25:57

标签: rust lifetime ownership

我的struct的构造函数创建了Texture2dSampler<'a, Texture2d>,其中'aTexture2d的生命周期。我需要将Sampler存储在我正在构建的结构中。

如果我尝试返回包含Sampler<'a, Texture2d>的结构,然后Texture2d超出范围,那么名为DefaultResourcePack<'a>的结构将包含生命周期{{ 1}}在该生命周期结束后,这将无效。编译器同意我 - 它没有编译。

我尝试通过赋予'a的{​​{1}}所有权来解决这个问题,并希望编译器能够识别生命周期现在有效,但编译器仍在抱怨。

我该如何解决这个问题?

以下是相关代码:

DefaultResourcePack

以下是编译器所说的内容:

Texture2d

0 个答案:

没有答案