rust REGEX和lazy_static 和struct 混用

rust 复制代码
lazy_static! {
    static ref SSID_REG: Regex = Regex::new(r"^[0-9a-zA-Z-_]{1,32}$").unwrap();
}

#[derive(Serialize, Deserialize, Validate, Debug, Clone)]
pub struct WifiClient {
    pub enabled: bool,
    #[validate(regex = "SSID_REG")]
    pub ssid: String,
    pub freq: ChannelConnect,
}
  • Lazy<Regex>(通常来自 once_cell::sync::Lazylazy_static)保证这个 Regex 对象只会在第一次被使用时构建一次,之后所有线程都能安全地共享它。

  • 相比每次调用 Regex::new(...) 都重新编译,这样可以大幅提升性能。

相关推荐
是上好佳佳佳呀1 分钟前
【前端(十二)】JavaScript 函数与对象笔记
前端·javascript·笔记
longxibo3 分钟前
【Flowable 7.2 源码深度解析与实战】
java·后端·流程图
norq juox3 分钟前
Spring 中集成Hibernate
java·spring·hibernate
咸鱼2.011 分钟前
【java入门到放弃】Zookeeper
java·zookeeper
雨辰AI12 分钟前
从 MySQL 迁移至人大金仓 V9 完整改造指南|分页 / 函数 / 语法兼容全部解决
java·开发语言·数据库·后端·mysql·政务
你真的快乐吗16 分钟前
@fuxishi/svg-icon:一个 Vue 3 svg本地图标+iconify图标组件库,让图标管理不再头疼
前端·vue.js·typescript
阿维的博客日记19 分钟前
介绍一下Redisson的看门狗机制
java·redis·缓存
Rkgua22 分钟前
ESModule和Commonjs模块的区别
前端·javascript
江南十四行22 分钟前
ReAct Agent 基本理论与项目实战(二)
前端·react.js·前端框架
大G的笔记本26 分钟前
为什么接口中的变量默认是 public static final(常量)
java