mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-07-22 04:06:44 +08:00
chore: establish development baseline
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
use bat_adapters::manifest::{AddressablesCatalogDriver, ManifestDriverRegistry};
|
||||
use bat_adapters::manifest::ManifestDriver;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> anyhow::Result<()> {
|
||||
println!("🎮 BlueArchiveToolkit - Addressables 解析演示");
|
||||
println!("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
||||
|
||||
// 创建 Driver
|
||||
let driver = AddressablesCatalogDriver::new();
|
||||
println!("✅ Driver: {}", driver.name());
|
||||
|
||||
// 模拟 Addressables Catalog
|
||||
println!("\n📦 解析 Addressables Catalog...");
|
||||
let catalog_json = r#"{
|
||||
"m_LocatorId": "AddressablesMainContentCatalog",
|
||||
"m_InternalIdPrefixes": ["https://cdn.example.com/"],
|
||||
"m_InternalIds": [
|
||||
"academy-model.bundle",
|
||||
"academy-texture.bundle",
|
||||
"ui-atlas.bundle",
|
||||
"TableBundles-JP.bundle"
|
||||
]
|
||||
}"#;
|
||||
|
||||
if driver.can_parse(catalog_json.as_bytes()) {
|
||||
println!(" ✅ 可以解析此 Catalog");
|
||||
|
||||
let manifest = driver.parse(catalog_json.as_bytes()).await?;
|
||||
println!(" 解析结果:");
|
||||
println!(" Locator ID: {:?}", manifest.metadata.locator_id);
|
||||
println!(" 资源数量: {}", manifest.resources.len());
|
||||
println!(" 资源列表:");
|
||||
for (i, resource) in manifest.resources.iter().enumerate() {
|
||||
println!(" {}. {} ({})", i + 1, resource.path, resource.resource_type);
|
||||
}
|
||||
}
|
||||
|
||||
// 测试 Registry
|
||||
println!("\n🔄 测试 Driver Registry...");
|
||||
let registry = ManifestDriverRegistry::with_defaults();
|
||||
println!(" 注册的 Driver 数量: {}", registry.count());
|
||||
|
||||
let manifest = registry.parse(catalog_json.as_bytes()).await?;
|
||||
println!(" ✅ Registry 自动解析成功");
|
||||
println!(" 解析了 {} 个资源", manifest.resources.len());
|
||||
|
||||
println!("\n✅ 演示完成!");
|
||||
println!("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user