CI / fmt (rustfmt --check) (push) Canceled after 0s
CI / clippy (ubuntu-latest) (push) Canceled after 0s
CI / clippy (windows-latest) (push) Canceled after 0s
CI / test (ubuntu-latest) (push) Canceled after 0s
CI / test (windows-latest) (push) Canceled after 0s
CI / build release (ubuntu-latest) (push) Canceled after 0s
CI / build release (windows-latest) (push) Canceled after 0s
Guards / core 零 UI 守门 (push) Canceled after 0s
Guards / 文件行数 ≤400 守门 (push) Canceled after 0s
Guards / 依赖许可与来源(cargo-deny) (push) Canceled after 0s
Rust 原生单文件 Minecraft 启动器:CLI 完整可用(install/launch/accounts/java/diagnose/agent), MCP server 接入外部 Agent 工具,GUI 开发中。
65 lines
3.1 KiB
Rust
65 lines
3.1 KiB
Rust
//! 版本与实例仓库:不可变快照 + 单写者草稿、版本 JSON 继承解析、实例目录布局。
|
||
//!
|
||
//! 设计定稿:`DevDocs/PlanDoc/04-data-and-config.md` §4(实例模型)、
|
||
//! `DevDocs/PlanDoc/01-tech-stack-and-architecture.md` §3(Snapshot/Draft 纪律),
|
||
//! 源证据 `DevDocs/analyse/01-architecture-overview.md` §3.3。
|
||
//!
|
||
//! 与其它模块的契约:快照(Snapshot)类型与继承解析结果要与 launch 对齐
|
||
//! (`DevDocs/SubAgentsTalk/README.md` 的对齐点;详细约定见 `SubAgentsTalk/game-接口约定.md`)。
|
||
//!
|
||
//! 公共面(M14):
|
||
//! - 版本清单:[`VersionList`] / [`RemoteVersion`] / [`ReleaseType`] / [`VersionCategory`],
|
||
//! 外加内嵌补充清单 [`unlisted`];
|
||
//! - 版本 JSON 与继承:[`VersionJson`]、[`resolve`]、[`merge`]、[`apply_patches`];
|
||
//! - 参数与库:[`Arguments`] / [`Environment`] / [`Rule`]、[`Library`] / [`MavenCoordinate`];
|
||
//! - 能力位:[`capability`](版本 JSON 库表 → `has_vulkan_backend`);
|
||
//! - 实例:目录布局 [`GameLayout`]、档案 [`ProfileList`] / [`InstanceProfile`] / [`ProfileId`];
|
||
//! - 发布:快照仓库 [`Store`] / [`Snapshot`] / [`Draft`]。
|
||
//!
|
||
//! 安装层(M27,[`install`]):版本链 → 下载计划 → 分区落盘 → 实例登记。
|
||
//! 它把上面这些"模型"串成可执行的流程,但**自己不碰 UI、不拼镜像 URL**:
|
||
//! 下载全部交给 `core::download` 的引擎(镜像/健康度/续传/校验都在那边)。
|
||
//!
|
||
//! Java 管理(M33,[`java`]):托管 JDK 的查询/下载/解压/探测(`.ULL/data/java-managed/`)
|
||
//! 与 MC↔Java 映射表。同样只借 `core::download` 的引擎做下载,自己不拼镜像 URL。
|
||
//!
|
||
//! 模块分工按"数据形状 / 纯计算 / 状态"切开,任何模块都不碰网络与 UI:
|
||
//! 下载归 `core::download`、进程归 `core::launch`、配置落盘归 `core::setting`。
|
||
|
||
pub mod arguments;
|
||
pub mod capability;
|
||
pub mod error;
|
||
pub mod inherit;
|
||
pub mod install;
|
||
pub mod isolation;
|
||
pub mod java;
|
||
pub mod layout;
|
||
pub mod library;
|
||
pub mod manifest;
|
||
pub mod profiles;
|
||
pub mod snapshot;
|
||
pub mod unlisted;
|
||
pub mod version;
|
||
|
||
pub use arguments::{rules_allow, Arguments, Environment, ExpandedArguments, Rule, RuleAction};
|
||
pub use capability::{
|
||
is_vulkan_library, library_names_have_vulkan, VersionCapabilities, VULKAN_LIBRARY_ARTIFACT,
|
||
VULKAN_LIBRARY_GROUP,
|
||
};
|
||
pub use error::GameError;
|
||
pub use inherit::{apply_patches, merge, resolve, sorted_patches, VersionSource};
|
||
pub use isolation::{
|
||
derive_game_dir, observe_mode, probe_both_sides, probe_side, Derivation, IsolationMode,
|
||
IsolationSource, ModeChange, ModeChangeProbe, ModeChangeWarning, SideContent,
|
||
PROBED_CONTENT_DIRS, SHARED_LAYERS,
|
||
};
|
||
pub use layout::GameLayout;
|
||
pub use library::{Library, MavenCoordinate};
|
||
pub use manifest::{AssetIndexRef, DownloadInfo, Downloads, JavaVersion, Logging, VersionJson};
|
||
pub use profiles::{InstanceProfile, ProfileId, ProfileList, PROFILE_SCHEMA_VERSION};
|
||
pub use snapshot::{Draft, Snapshot, Store};
|
||
pub use version::{
|
||
LatestVersions, ReleaseType, RemoteVersion, VersionCategory, VersionList,
|
||
VERSION_MANIFEST_V2_URL,
|
||
};
|