mirror of
https://github.com/lifegpc/garbro-rs.git
synced 2026-06-06 05:28:46 +08:00
Fix some bug
This commit is contained in:
38
src-tauri/Cargo.lock
generated
38
src-tauri/Cargo.lock
generated
@@ -928,6 +928,19 @@ dependencies = [
|
||||
"cfg-if",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam"
|
||||
version = "0.8.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
|
||||
dependencies = [
|
||||
"crossbeam-channel",
|
||||
"crossbeam-deque",
|
||||
"crossbeam-epoch",
|
||||
"crossbeam-queue",
|
||||
"crossbeam-utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-channel"
|
||||
version = "0.5.15"
|
||||
@@ -956,6 +969,15 @@ dependencies = [
|
||||
"crossbeam-utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-queue"
|
||||
version = "0.3.12"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115"
|
||||
dependencies = [
|
||||
"crossbeam-utils",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "crossbeam-utils"
|
||||
version = "0.8.21"
|
||||
@@ -3034,18 +3056,6 @@ dependencies = [
|
||||
"web_atoms",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "markup5ever_rcdom"
|
||||
version = "0.38.0+unofficial"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "333171ccdf66e915257740d44e38ea5b1b19ce7b45d33cc35cb6f118fbd981ff"
|
||||
dependencies = [
|
||||
"html5ever 0.38.0",
|
||||
"markup5ever 0.38.0",
|
||||
"tendril 0.5.0",
|
||||
"xml5ever",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "match_token"
|
||||
version = "0.1.0"
|
||||
@@ -3179,6 +3189,7 @@ dependencies = [
|
||||
"cbc",
|
||||
"clap 4.6.0",
|
||||
"crc32fast",
|
||||
"crossbeam",
|
||||
"csv",
|
||||
"ctrlc",
|
||||
"digest-io",
|
||||
@@ -3196,7 +3207,6 @@ dependencies = [
|
||||
"libtlg-rs",
|
||||
"lz4",
|
||||
"markup5ever 0.38.0",
|
||||
"markup5ever_rcdom",
|
||||
"md5",
|
||||
"memchr",
|
||||
"mozjpeg",
|
||||
@@ -3216,6 +3226,7 @@ dependencies = [
|
||||
"sha1",
|
||||
"sha2 0.11.0",
|
||||
"stylua",
|
||||
"tendril 0.5.0",
|
||||
"unicode-segmentation",
|
||||
"url",
|
||||
"utf16string",
|
||||
@@ -4874,7 +4885,6 @@ dependencies = [
|
||||
"parking_lot",
|
||||
"phf_shared 0.13.1",
|
||||
"precomputed-hash",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
@@ -199,6 +199,13 @@ fn detect_file_type(filename: &str, data: &[u8]) -> (EntryType, Option<ScriptTyp
|
||||
(EntryType::Unknown, None)
|
||||
}
|
||||
|
||||
fn try_detect_file_type<P: AsRef<std::path::Path> + ?Sized>(path: &P) -> Result<(EntryType, Option<ScriptType>)> {
|
||||
let mut file = File::open(path)?;
|
||||
let mut buffer = [0; 1024];
|
||||
let n = file.read(&mut buffer)?;
|
||||
Ok(detect_file_type(&path.as_ref().to_string_lossy(), &buffer[..n]))
|
||||
}
|
||||
|
||||
fn list_fs_directory(path: &Path) -> Result<Vec<Entry>> {
|
||||
let mut result = Vec::new();
|
||||
for entry in std::fs::read_dir(path)? {
|
||||
@@ -215,10 +222,13 @@ fn list_fs_directory(path: &Path) -> Result<Vec<Entry>> {
|
||||
let (entry_type, msg_tool_type) = if is_dir {
|
||||
(EntryType::Folder, None)
|
||||
} else {
|
||||
let mut file = std::fs::File::open(entry.path())?;
|
||||
let mut buffer = [0; 1024];
|
||||
let n = file.read(&mut buffer)?;
|
||||
detect_file_type(&name, &buffer[..n])
|
||||
match try_detect_file_type(&entry.path()) {
|
||||
Ok(t) => t,
|
||||
Err(e) => {
|
||||
eprintln!("无法识别文件类型:{} {}", name, e);
|
||||
(EntryType::Unknown, None)
|
||||
}
|
||||
}
|
||||
};
|
||||
let size = if is_dir { None } else { Some(metadata.len()) };
|
||||
result.push(Entry {
|
||||
@@ -292,7 +302,7 @@ fn list_archive_directory(path: &Path, option: Option<&Vec<FileOptions>>) -> Res
|
||||
|
||||
fn list_archive_directory_in_archive<'a>(
|
||||
path: &str,
|
||||
mut reader: Box<dyn ReadSeek + 'a>,
|
||||
mut reader: Box<dyn ReadSeek + Send + Sync + 'a>,
|
||||
filename: &str,
|
||||
option: Option<&Vec<FileOptions>>,
|
||||
typ: Option<ScriptType>,
|
||||
@@ -462,7 +472,7 @@ pub fn get_xp3_supported_games() -> Vec<GameTitle> {
|
||||
}
|
||||
|
||||
fn preview_image_in_directory<'a>(
|
||||
mut reader: Box<dyn ReadSeek + 'a>,
|
||||
mut reader: Box<dyn ReadSeek + Send + Sync + 'a>,
|
||||
filename: &str,
|
||||
options: Option<&Vec<FileOptions>>,
|
||||
script_type: Option<ScriptType>,
|
||||
@@ -518,7 +528,7 @@ fn preview_image_in_directory<'a>(
|
||||
|
||||
fn preview_image_in_archive<'a>(
|
||||
path: &str,
|
||||
mut reader: Box<dyn ReadSeek + 'a>,
|
||||
mut reader: Box<dyn ReadSeek + Send + Sync + 'a>,
|
||||
filename: &str,
|
||||
option: Option<&Vec<FileOptions>>,
|
||||
typ: Option<ScriptType>,
|
||||
|
||||
Reference in New Issue
Block a user