use regex::Captures;
macro_rules! lazy_regex {
($re:tt, $str:expr) => (lazy_static! {
static ref REGEX: $re = $re::new($str).unwrap();
})
}
pub trait ExtractionRegex<Re> {
fn extract() -> &'static Re;
}
pub trait ValidationRegex<Re> {
fn validate() -> &'static Re;
}
#[inline(always)]
pub fn capture_as_str<'t>(captures: &'t Captures, index: usize) -> &'t str {
captures.get(index).unwrap().as_str()
}
#[inline(always)]
pub fn optional_capture_as_str<'t>(captures: &'t Captures, index: usize) -> &'t str {
match captures.get(index) {
None => "",
Some(v) => v.as_str(),
}
}
#[inline(always)]
pub fn capture_as_string(captures: &Captures, index: usize) -> String {
String::from(capture_as_str(captures, index))
}
#[inline(always)]
pub fn optional_capture_as_string(captures: &Captures, index: usize) -> String {
String::from(optional_capture_as_str(captures, index))
}