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(...) 都重新编译,这样可以大幅提升性能。

相关推荐
Zzj_tju41 分钟前
Tool-Using LLM 论文精读路线:从 ReAct 到可验证工具调用
前端·react.js·前端框架
To_OC8 小时前
别再瞎写 React Router!7 个高频踩坑点一次性讲透
前端·javascript·react.js
岭南灯火9 小时前
前端通用交互式几何编辑器的开发经验
前端·设计模式·架构
岭南灯火10 小时前
前端通用交互式几何编辑器的设计法则 7 - 设计模式与原则
前端·设计模式·架构
岭南灯火10 小时前
前端通用交互式几何编辑器的设计法则 4 - 绘制、悬停与编辑
前端·设计模式·架构
岭南灯火10 小时前
前端通用交互式几何编辑器的设计法则 3 - 数据对象的设计
前端·javascript·架构
Jackson__10 小时前
从 LLM 到 Agent:一篇文章搞懂 AI 圈热词!
前端·agent·ai编程
码农颜10 小时前
5.4.1 锁分类
java·数据库·mysql
岭南灯火10 小时前
前端通用交互式几何编辑器的设计法则 2 - 交互事件流
前端·javascript·架构
岭南灯火10 小时前
前端通用交互式几何编辑器的设计法则 6 - 配套设施与工程化
前端·设计模式·架构