Codex Luma Rust 数值转换|区分无损扩宽和可能溢出的收窄
EnglishCodex 安装步骤
- 打开 GitHub 固定提交的 `.agents/skills/numeric-casts/SKILL.md`,核对内容与使用条件。
- 在自己的项目中创建 `.agents/skills/numeric-casts/`,把核对后的文件保存为 `.agents/skills/numeric-casts/SKILL.md`。
- 在该项目根目录启动 Codex,输入 `$numeric-casts` 并选择同名技能。
中文摘要
按 Luma 的 Rust 约定选择 `From`、`Into` 或 `try_from`,在潜在溢出的收窄转换中明确处理错误。
SKILL.md 中文导读
可复现示例
核对把给定偏移存入更窄字段的做法。
{"from":"u64","to":"u16","offset":70000,"knownUpperBound":false}工作步骤
- 区分无损扩宽与收窄转换。
- 对无损转换使用 From 或 Into。
- 没有可证明的上界时用可失败转换并处理失败结果。
验收方法
采用 `u16::try_from(70000_u64)` 并处理 `Err`,不会把 70000 当作有效 `u16`。
GitHub 原文 · 更新日期
适用环境
在 Codex 中打开 Luma Rust 工作区,提供原始类型、目标类型和可证明的取值范围。
常见问题
一个 u8 值扩宽为 u64 应怎么写?
用 u64::from 或带目标类型的 Into。这里的扩宽可保留原值。