Rust拟引入新trait:放宽类型移动和遗忘假设,助力异步安全作用域生成 导航菜单可进行切换导航、登录、外观设置等操作。平台提供AI代码创建、开发者工作流、应用程序安全、探索等功能如GitHub Copilot可借助AI编写更优质代码Actions能自动化任何工作流等。解决方案按公司规模、用例、行业划分有企业版、中小团队版等不同版本适用于应用现代化、DevSecOps等场景。资源可按主题和类型探索还有支持与服务相关内容如按主题可探索AI、软件开发等主题。开源包含社区、项目、仓库等方面如GitHub Sponsors可资助开源开发者。企业版有企业解决方案和可用附加组件如企业平台由AI驱动GitHub Advanced Security提供企业级安全功能。还有定价、搜索、提供反馈、保存的搜索等功能。若在其他标签页有登录、注销、切换账户操作需重新加载刷新会话。若加载出现错误需重新加载页面。rust - project - goals项目该项目公开有通知、派生、加星等操作还有代码、问题、拉取请求等导航选项。文件展开有文件树面包屑导航可查看路径如rust - project - goals/src/2026/move - trait.md 。文件有元数据和控件可预览、查看代码等有134行90个逻辑行11.4KB 。不可移动类型和有保证的析构函数联系人是lcnr 状态为已接受。内容与原因是让类型选择不被移动或遗忘支持作用域内生成、异步析构和默认固定。时间范围是2026 - 2027 有相关路线图和跟踪问题Zulip频道是#t - lang/move - trait [types]负责人是lcnr [lang]负责人是jackh726 。总结提议引入新的trait描述对类型可执行的操作。目前Rust假定所有类型可被移动和遗忘将引入像Move和Forget这样的trait使能力明确让类型可选择不具备这些能力遵循Sized层级结构工作先例。将在编译器中实现最小可行产品编写RFC并在Linux内核中进行实际测试。动机现状Rust一直假定所有值可被移动和遗忘这些假设融入语言但有些类型需选择不具备这些能力。不可移动类型方面许多异步future希望实现自引用但自引用类型不能安全移动当前解决方案Pin存在显著复杂性在Linux内核等系统中难以安全编码自引用类型。有保证的析构函数方面有些类型需确保析构函数会运行但mem::forget安全Rust无法保证阻碍了异步安全作用域生成等模式。提议通过新的自动trait扩展Rust的类型系统描述对类型可执行的操作。框架积极trait代表能力类型基础可能无特殊能力再添加所需能力如Move类型可在内存中重新定位Destruct类型可被隐式丢弃Forget类型可通过mem::forget被遗忘。这遵循Sized层级结构工作先例放宽“所有类型都可被移动”和“所有类型都可被遗忘”的假设。Move trait将可移动性编码为类型属性实现!Move的类型不能被移动构造依赖相关工作。Forget trait让类型可选择不被遗忘有了!Forget可构建安全的作用域生成。未来一年工作项Move trait方面要进行编译器实现负责人是lcnr 和nia - e 、编写RFC负责人是yoshuawuyts 、在Linux内核中测试负责人是BennoLossin 、测试Iterator和!Move之间的交互负责人是yoshuawuyts 。有保证的析构函数方面要进行设计探索负责人是nikomatsakis 。今年明确不在范围内的是与更改或更新Future trait相关的任何内容修复Future trait最好作为独立项目处理。团队需求[lang]团队需要大量支持进行设计会议完成设计[types]团队需要大量支持参与实现和审查。常见问题解答与Sized层级结构工作的关系Sized层级结构工作确立模式Rust可通过引入trait层级结构让类型选择不具备某些能力放宽假设。本目标将同样模式应用于“所有类型都可被移动”和“所有类型都可被遗忘”的假设。与“固定易用性”倡议的关系这项工作是“固定易用性”倡议的替代方案该倡议有相关扩展但未解决固定的重复定义问题。认为问题在于Pin 应改进Rust中不可移动类型的编码方式最终目标是弃用Pin 所以Move作为替代方案提出。什么支持安全的作用域生成安全的作用域生成需要有保证的析构函数有了!Forget 句柄析构函数保证运行使模式安全这是有保证的析构函数部分的关键动机之一。在哪里可以了解更多关于这个设计领域的信息有几篇博客文章探讨该领域如Move, Destruct, Leak探讨析构函数和遗忘的trait层级结构Must move types引入强制调用者采取特定操作的类型的概念等。页脚有相关页脚导航如条款、隐私、安全等内容此时可能无法执行某些操作。