如何正确处理Rust实体中的驼峰命名问题 消除snake case编译警告
解决方案
方案1(推荐):遵循Rust命名规范+serde别名配置
你当前使用了serde的序列化/反序列化能力,可以直接将字段改为Rust规范要求的蛇形命名mv_id,再通过#[serde(rename)]属性指定对外映射的字段名为mvId,既符合Rust社区命名惯例,也能完美适配第三方系统的字段要求,不会触发编译警告。
示例代码如下:
#[derive(Debug, PartialEq, Eq, Deserialize,Serialize)] pub struct PlayRecordRequest { pub id: i64, pub title: String, pub url: String, #[serde(rename = "mvId")] pub mv_id: i64, pub album: Album, pub artist: Vec<Artist> }
该方案不会关闭编译器的命名规范校验,其他不符合规范的字段依然会正常触发提示,是这类场景的标准实现方式。
方案2:直接关闭命名规范警告
如果确实需要保留字段名为mvId,可以通过#[allow(non_snake_case)]注解关闭对应范围的蛇形命名校验:
仅关闭单个字段的校验
#[derive(Debug, PartialEq, Eq, Deserialize,Serialize)] pub struct PlayRecordRequest { pub id: i64, pub title: String, pub url: String, #[allow(non_snake_case)] pub mvId: i64, pub album: Album, pub artist: Vec<Artist> }
关闭整个结构体所有字段的校验
#[allow(non_snake_case)] #[derive(Debug, PartialEq, Eq, Deserialize,Serialize)] pub struct PlayRecordRequest { pub id: i64, pub title: String, pub url: String, pub mvId: i64, pub album: Album, pub artist: Vec<Artist> }
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

