Avoid re-parsing regex
This commit is contained in:
parent
763ba94e9b
commit
0841c15f48
2 changed files with 14 additions and 10 deletions
16
flake.lock
generated
16
flake.lock
generated
|
@ -2,12 +2,12 @@
|
|||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1721379653,
|
||||
"narHash": "sha256-8MUgifkJ7lkZs3u99UDZMB4kbOxvMEXQZ31FO3SopZ0=",
|
||||
"rev": "1d9c2c9b3e71b9ee663d11c5d298727dace8d374",
|
||||
"revCount": 655136,
|
||||
"lastModified": 1722813957,
|
||||
"narHash": "sha256-IAoYyYnED7P8zrBFMnmp7ydaJfwTnwcnqxUElC1I26Y=",
|
||||
"rev": "cb9a96f23c491c081b38eab96d22fa958043c9fa",
|
||||
"revCount": 662544,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.655136%2Brev-1d9c2c9b3e71b9ee663d11c5d298727dace8d374/0190cd4f-c0eb-72cb-834b-ac854aa282dc/source.tar.gz"
|
||||
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.662544%2Brev-cb9a96f23c491c081b38eab96d22fa958043c9fa/0191261c-f106-7d9e-a0c0-f57924d24f7d/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
|
@ -27,11 +27,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1721355572,
|
||||
"narHash": "sha256-I4TQ2guV9jTmZsXeWt5HMojcaqNZHII4zu0xIKZEovM=",
|
||||
"lastModified": 1723170066,
|
||||
"narHash": "sha256-SFkQfOA+8AIYJsPlQtxNP+z5jRLfz91z/aOrV94pPmw=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "d5bc7b1b21cf937fb8ff108ae006f6776bdb163d",
|
||||
"rev": "fecfe4d7c96fea2982c7907997b387a6b52c1093",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -121,6 +121,9 @@ fn read_mp3<P: AsRef<Path>>(path: P) -> Result<SongMetadata, Error> {
|
|||
}
|
||||
|
||||
mod ape_ext {
|
||||
use regex::Regex;
|
||||
use std::sync::LazyLock;
|
||||
|
||||
pub fn read_string(item: &ape::Item) -> Option<String> {
|
||||
match item.value {
|
||||
ape::ItemValue::Text(ref s) => Some(s.clone()),
|
||||
|
@ -139,11 +142,12 @@ mod ape_ext {
|
|||
}
|
||||
}
|
||||
|
||||
static X_OF_Y_REGEX: LazyLock<Regex> = LazyLock::new(|| Regex::new(r#"^\d+"#).unwrap());
|
||||
|
||||
pub fn read_x_of_y(item: &ape::Item) -> Option<u32> {
|
||||
match item.value {
|
||||
ape::ItemValue::Text(ref s) => {
|
||||
let format = regex::Regex::new(r#"^\d+"#).unwrap();
|
||||
if let Some(m) = format.find(s) {
|
||||
if let Some(m) = X_OF_Y_REGEX.find(s) {
|
||||
s[m.start()..m.end()].parse().ok()
|
||||
} else {
|
||||
None
|
||||
|
|
Loading…
Add table
Reference in a new issue