1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
use rafx_assets::distill::loader::storage::DefaultIndirectionResolver; use rafx_assets::distill::loader::{Loader, PackfileReader, RpcIO}; use rafx_assets::distill_impl::AssetResource; use std::net::SocketAddr; use std::path::PathBuf; pub struct AssetDaemonOpt { pub db_dir: PathBuf, pub address: SocketAddr, pub asset_dirs: Vec<PathBuf>, } impl Default for AssetDaemonOpt { fn default() -> Self { AssetDaemonOpt { db_dir: ".assets_db".into(), address: "127.0.0.1:9999".parse().unwrap(), asset_dirs: vec!["assets".into()], } } } pub fn init_distill_daemon(connect_string: String) -> AssetResource { let rpc_loader = RpcIO::new(connect_string).unwrap(); let loader = Loader::new(Box::new(rpc_loader)); let resolver = Box::new(DefaultIndirectionResolver); AssetResource::new(loader, resolver) } pub fn init_distill_packfile(pack_file: &std::path::Path) -> AssetResource { let packfile = std::fs::File::open(pack_file).unwrap(); let packfile_loader = PackfileReader::new(packfile).unwrap(); let loader = Loader::new(Box::new(packfile_loader)); let resolver = Box::new(DefaultIndirectionResolver); AssetResource::new(loader, resolver) }