Use lazy_static! to avoid expensive regex compiles in loop
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user