diff --git a/src/cluster.rs b/src/cluster.rs index 3b1372f..8958749 100644 --- a/src/cluster.rs +++ b/src/cluster.rs @@ -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, + pub fileinfo: Vec, } pub struct Cluster { diff --git a/src/utils.rs b/src/utils.rs index 9ab6dfc..9182587 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -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) -> apache_avro::AvroResult { println!("array len: {}", arr.len()); + for i in 0..arr.len() { + let item = &arr[i]; + let try_item = from_value::(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) -> apache_avro::AvroResult