refactor(setting): download 四键纯搬移到 setting/keys/download.rs(M292 1/2)
`keys.rs` 396 行、贴着全仓 400 行硬线,M292 要再加三个键 ⇒ 先纯搬移腾地方。
- 新增 `crates/core/src/setting/keys/download.rs`:并发 / 单源尝试次数 / 地区判定 /
镜像偏好四条登记项,**逐字搬来**(唯一机械变换是 `.with(` 外壳换成 `vec![` 项、
`))` 换成 `),` 定界符)。
- `keys.rs` 原地换成一行 `.with_all(download::specs())`,登记顺序不变。
逐字节证明(搬移块 28 行):
git show HEAD~1:crates/core/src/setting/keys.rs | sed -n '109,136p' \
| sed -e 's/^ \.with(/ /' -e 's/^ ))$/ ),/' > old.txt
sed -n '/^ vec!\[$/,/^ \]$/p' keys/download.rs | sed '1d;$d' > new.txt
diff -u old.txt new.txt; echo $? # 0
两条归一化规则都是**行首精确缩进锚定**:块内 `.with(` 只出现在四个项首、`))` 只出现在
四个项尾(各 4 处,与项数一一对应),所以它们不可能顺手改掉块内的真实差异。
This commit is contained in:
1 parent
bba98d5898
commit
f4b5a73594
2 files changed
+55
-30
No files matched your search
@@ -37,8 +37,9 @@ pub const JAVA_INSTALL_ROOT_UNSET: &str = "";
|
||||
/// 必须同一份集合(setting 层不依赖 game 层),一致性由 `tests/setting/java_install_keys.rs` 守。
|
||||
pub const JDK_VENDORS: &[&str] = &["temurin", "oracle", "microsoft", "zulu", "termux"];
|
||||
|
||||
/// 拆到各自文件的键域:中文字体 CDN(M168)/ 自更新(M161)/ 代理与 gh-proxy(M197)。
|
||||
/// 主表各留一行登记。
|
||||
/// 拆到各自文件的键域:中文字体 CDN(M168)/ 自更新(M161)/ 代理与 gh-proxy(M197)/
|
||||
/// 下载调优四键(M292)。主表各留一行登记。
|
||||
pub mod download;
|
||||
pub mod font;
|
||||
pub mod proxy;
|
||||
pub mod update;
|
||||
@@ -106,34 +107,9 @@ pub fn launcher_schema() -> SettingSchema {
|
||||
AiPolicy::sensitive(),
|
||||
"实例默认隔离模式:isolated(运行目录派生 versions/<版本 id>,D20 默认)/ shared(所有实例共用 .minecraft 根)",
|
||||
))
|
||||
.with(SettingSpec::int(
|
||||
"download.concurrency",
|
||||
crate::download::config::DEFAULT_MAX_CONCURRENCY as i64,
|
||||
(1, crate::download::config::MAX_CONCURRENCY as i64),
|
||||
AiPolicy::silent(),
|
||||
"同时下载的文件数(1~64,出厂 8)。这是引擎真实持有的并发许可,不是展示值;越界或手改坏值按出厂值生效",
|
||||
))
|
||||
.with(SettingSpec::int(
|
||||
"download.retry_limit",
|
||||
crate::download::config::DEFAULT_MAX_ATTEMPTS_PER_SOURCE as i64,
|
||||
(0, crate::download::config::MAX_ATTEMPTS_PER_SOURCE as i64),
|
||||
AiPolicy::silent(),
|
||||
"单个下载源的最多尝试次数(含首次;出厂 3)。0 与 1 都等于「只试一次、不重试」——0 是旧版 GUI 提供过的档位,保留合法但不代表「不下载」。换源不受此限",
|
||||
))
|
||||
.with(SettingSpec::enumeration(
|
||||
"download.region",
|
||||
"auto",
|
||||
REGIONS,
|
||||
AiPolicy::audited(),
|
||||
"下载地区判定:auto(时区+语言+探测)/ cn / global",
|
||||
))
|
||||
.with(SettingSpec::enumeration(
|
||||
"download.mirror_preference",
|
||||
"auto",
|
||||
MIRROR_PREFERENCES,
|
||||
AiPolicy::audited(),
|
||||
"镜像偏好:auto(健康度评分)/ official(官方源优先)/ mirror(镜像优先)",
|
||||
))
|
||||
// M292:下载调优四键(并发 / 单源尝试次数 / 地区 / 镜像偏好)搬到 [`download`]——主表这一行
|
||||
// 代替原先四条 `.with(..)`,登记顺序与搬到那边之前逐项相同。
|
||||
.with_all(download::specs())
|
||||
// M197:代理与 gh-proxy 三键(`download.proxy_mode` / `proxy_url` / `gh_proxy`)搬到
|
||||
// [`proxy`]——主表这一段的注释也一起搬过去,见那个模块的表格。
|
||||
.with_all(proxy::specs())
|
||||
|
||||
Reference in new issue
Block a user