Use lazy_static! to avoid expensive regex compiles in loop

This commit is contained in:
2022-10-12 11:30:08 -05:00
parent 3ab9cedbcd
commit bf84433d5b
3 changed files with 14 additions and 3 deletions

View File

@@ -6,6 +6,7 @@ use tokio_tungstenite::{
tungstenite::Message as WsMessage,
};
use futures::{StreamExt, SinkExt};
use lazy_static::lazy_static;
#[derive(PartialEq, Debug)]
pub struct Message {
@@ -25,8 +26,10 @@ pub enum Error {
impl Message {
pub fn parse(text: String) -> Result<Message> {
let re = regex::Regex::new(r"^([A-Z_]+):\s*(.*)").unwrap();
match re.captures(text.as_str()) {
lazy_static! {
static ref RE: regex::Regex = regex::Regex::new(r"^([A-Z_]+):\s*(.*)").unwrap();
}
match RE.captures(text.as_str()) {
Some(captures) => {
if captures.len() < 3 {
Err(Error::BadParse)