oxvg_optimiser 0.0.5

The OXVG optimiser is library for optimising SVG documents.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
use std::sync::LazyLock;

use dashmap::{mapref::one::Ref, DashMap};

static MEMO: LazyLock<DashMap<String, regex::Regex>> = LazyLock::new(DashMap::new);

pub fn get(regex: &str) -> Result<Ref<'_, String, regex::Regex>, regex::Error> {
    if let Some(value) = MEMO.get(regex) {
        return Ok(value);
    }
    MEMO.insert(regex.to_string(), regex::Regex::new(regex)?);
    Ok(MEMO.get(regex).expect("Failed to assign regex memo"))
}