presets: remove rustc 1.74 compatibility
MSRV is 1.76
This commit is contained in:
parent
bffad12ea2
commit
28f5674a80
11
Cargo.lock
generated
11
Cargo.lock
generated
|
@ -1704,9 +1704,7 @@ dependencies = [
|
||||||
"nom_locate",
|
"nom_locate",
|
||||||
"num-traits",
|
"num-traits",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"os_str_bytes",
|
|
||||||
"regex",
|
"regex",
|
||||||
"rustversion",
|
|
||||||
"thiserror",
|
"thiserror",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -2338,9 +2336,6 @@ name = "os_str_bytes"
|
||||||
version = "6.6.1"
|
version = "6.6.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
|
checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
|
||||||
dependencies = [
|
|
||||||
"memchr",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "owned_ttf_parser"
|
name = "owned_ttf_parser"
|
||||||
|
@ -2918,12 +2913,6 @@ dependencies = [
|
||||||
"windows-sys 0.52.0",
|
"windows-sys 0.52.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rustversion"
|
|
||||||
version = "1.0.17"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ryu"
|
name = "ryu"
|
||||||
version = "1.0.18"
|
version = "1.0.18"
|
||||||
|
|
|
@ -21,9 +21,6 @@ once_cell = "1"
|
||||||
# we don't need unicode
|
# we don't need unicode
|
||||||
regex = { version = "1", default-features = false, features = ["perf"] }
|
regex = { version = "1", default-features = false, features = ["perf"] }
|
||||||
|
|
||||||
rustversion = "1.0"
|
|
||||||
os_str_bytes = { version = "6", features = ["conversions"] }
|
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
parse_legacy_glsl = []
|
parse_legacy_glsl = []
|
||||||
|
|
||||||
|
|
|
@ -365,7 +365,6 @@ impl WildcardContext {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[rustversion::since(1.74)]
|
|
||||||
pub(crate) fn apply_context(path: &mut PathBuf, context: &FastHashMap<String, String>) {
|
pub(crate) fn apply_context(path: &mut PathBuf, context: &FastHashMap<String, String>) {
|
||||||
use std::ffi::{OsStr, OsString};
|
use std::ffi::{OsStr, OsString};
|
||||||
|
|
||||||
|
@ -412,53 +411,3 @@ pub(crate) fn apply_context(path: &mut PathBuf, context: &FastHashMap<String, St
|
||||||
*path = new_path;
|
*path = new_path;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[rustversion::before(1.74)]
|
|
||||||
pub(crate) fn apply_context(path: &mut PathBuf, context: &FastHashMap<String, String>) {
|
|
||||||
use os_str_bytes::RawOsStr;
|
|
||||||
static WILDCARD_REGEX: Lazy<Regex> = Lazy::new(|| Regex::new("\\$([A-Z-_]+)\\$").unwrap());
|
|
||||||
if context.is_empty() {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
let path_str = RawOsStr::new(path.as_os_str());
|
|
||||||
let path_bytes = path_str.to_raw_bytes();
|
|
||||||
// Don't want to do any extra work if there's no match.
|
|
||||||
if !WILDCARD_REGEX.is_match(&path_bytes) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
let mut new_path = PathBuf::with_capacity(path.capacity());
|
|
||||||
for component in path.components() {
|
|
||||||
match component {
|
|
||||||
Component::Normal(path) => {
|
|
||||||
let haystack = RawOsStr::new(path);
|
|
||||||
let haystack = haystack.to_raw_bytes();
|
|
||||||
|
|
||||||
let replaced =
|
|
||||||
WILDCARD_REGEX.replace_all(&haystack, |caps: ®ex::bytes::Captures| {
|
|
||||||
let Some(name) = caps.get(1) else {
|
|
||||||
return caps[0].to_vec();
|
|
||||||
};
|
|
||||||
|
|
||||||
let Ok(key) = std::str::from_utf8(name.as_bytes()) else {
|
|
||||||
return caps[0].to_vec();
|
|
||||||
};
|
|
||||||
if let Some(replacement) = context.get(key) {
|
|
||||||
return RawOsStr::from_str(replacement).to_raw_bytes().to_vec();
|
|
||||||
}
|
|
||||||
return caps[0].to_vec();
|
|
||||||
});
|
|
||||||
|
|
||||||
// SAFETY: The original source is valid encoded bytes, and our replacement is
|
|
||||||
// valid encoded bytes. This upholds the safety requirements of `from_encoded_bytes_unchecked`.
|
|
||||||
new_path.push(RawOsStr::assert_cow_from_raw_bytes(&replaced.as_ref()).to_os_str())
|
|
||||||
}
|
|
||||||
_ => new_path.push(component),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If no wildcards are found within the path, or the path after replacing the wildcards does not exist on disk, the path returned will be unaffected.
|
|
||||||
if let Ok(true) = new_path.try_exists() {
|
|
||||||
*path = new_path;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue