This commit is contained in:
shenjack 2024-01-27 00:56:42 +08:00
parent 4b9736764b
commit 72eb29244c
Signed by: shenjack
GPG Key ID: 7B1134A979775551
2 changed files with 11 additions and 3 deletions

View File

@ -7,6 +7,7 @@ use serde::Deserialize;
use zstd::stream::decode_all;
#[derive(Deserialize, Debug, Clone)]
#[serde(rename = "fileinfo")]
pub struct SyncFile {
pub path: String,
pub hash: String,
@ -15,7 +16,7 @@ pub struct SyncFile {
#[derive(Deserialize, Debug, Clone)]
pub struct SyncFileList {
pub files: Vec<SyncFile>,
pub fileinfo: Vec<SyncFile>,
}
pub struct Cluster {

View File

@ -59,7 +59,7 @@ pub const SYNC_FILE_LIST_SCHEMA: &str = r#"
"type": "array",
"items": {
"type": "record",
"name": "fileinfo",
"name": "SyncFile",
"fields": [
{"name": "path", "type": "string"},
{"name": "hash", "type": "string"},
@ -82,6 +82,13 @@ pub fn avro_data_to_file_list(data: Vec<u8>) -> apache_avro::AvroResult<Vec<Sync
match &value {
Value::Array(arr) => {
println!("array len: {}", arr.len());
for i in 0..arr.len() {
let item = &arr[i];
let try_item = from_value::<SyncFile>(item);
if try_item.is_err() {
println!("parse item error: {}", try_item.err().unwrap());
}
}
}
_ => {
println!("not array");
@ -93,7 +100,7 @@ pub fn avro_data_to_file_list(data: Vec<u8>) -> apache_avro::AvroResult<Vec<Sync
panic!("parse file list error: ");
}
let files = files.unwrap();
Ok(files.files)
Ok(files.fileinfo)
}
#[test]