Skip to content

Commit 38ca2ac

Browse files
committed
refactor: tweak readdir macro
1 parent 0b09eec commit 38ca2ac

File tree

1 file changed

+21
-49
lines changed

1 file changed

+21
-49
lines changed

clients/filesystem-fuse/src/fuse_api_handle_debug.rs

+21-49
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ macro_rules! log_value {
7070
}
7171
};
7272
}
73-
7473
/// Log the result with custom formatting
7574
macro_rules! log_value_custom {
7675
($method_call:expr, $method_name:expr, $req:ident, $format_reply_fn:ident) => {
@@ -94,7 +93,7 @@ macro_rules! log_value_custom {
9493

9594
/// Log the result for readdir operations
9695
macro_rules! log_readdir {
97-
($method_call:expr, $req:ident) => {{
96+
($method_call:expr, $method_name:expr, $req:ident, $entry_to_desc_str:expr, $reply_type:ident) => {{
9897
match $method_call.await {
9998
Ok(mut reply_dir) => {
10099
let mut entries = Vec::new();
@@ -114,60 +113,24 @@ macro_rules! log_readdir {
114113
"[{}]",
115114
entries
116115
.iter()
117-
.map(|entry| directory_entry_to_desc_str(entry))
116+
.map(|entry| $entry_to_desc_str(entry))
118117
.collect::<Vec<String>>()
119118
.join(", ")
120119
);
121120

122-
debug!($req.unique, entries = entries_info, "READDIR completed");
123-
124-
Ok(ReplyDirectory {
125-
entries: stream::iter(entries.into_iter().map(Ok)).boxed(),
126-
})
127-
}
128-
Err(e) => {
129-
error!($req.unique, ?e, "READDIR failed");
130-
Err(e)
131-
}
132-
}
133-
}};
134-
}
135-
136-
/// Log the result for readdirplus operations
137-
macro_rules! log_readdirplus {
138-
($method_call:expr, $req:ident) => {{
139-
match $method_call.await {
140-
Ok(mut reply_dir) => {
141-
let mut entries = Vec::new();
142-
143-
while let Some(entry_result) = reply_dir.entries.next().await {
144-
match entry_result {
145-
Ok(entry) => {
146-
entries.push(entry);
147-
}
148-
Err(e) => {
149-
return Err(e.into());
150-
}
151-
}
152-
}
153-
154-
let entries_info = format!(
155-
"[{}]",
156-
entries
157-
.iter()
158-
.map(|entry| directory_entry_plus_to_desc_str(entry))
159-
.collect::<Vec<String>>()
160-
.join(", ")
121+
debug!(
122+
$req.unique,
123+
entries = entries_info,
124+
"{} completed",
125+
$method_name.to_uppercase()
161126
);
162127

163-
debug!($req.unique, entries = entries_info, "READDIRPLUS completed");
164-
165-
Ok(ReplyDirectoryPlus {
128+
Ok($reply_type {
166129
entries: stream::iter(entries.into_iter().map(Ok)).boxed(),
167130
})
168131
}
169132
Err(e) => {
170-
error!($req.unique, ?e, "READDIRPLUS failed");
133+
error!($req.unique, ?e, "READDIR failed");
171134
Err(e)
172135
}
173136
}
@@ -740,7 +703,13 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
740703
"READDIR started"
741704
);
742705

743-
log_readdir!(self.inner.readdir(req, parent, fh, offset), req)
706+
log_readdir!(
707+
self.inner.readdir(req, parent, fh, offset),
708+
"READDIR",
709+
req,
710+
directory_entry_to_desc_str,
711+
ReplyDirectory
712+
)
744713
}
745714

746715
async fn releasedir(
@@ -826,9 +795,12 @@ impl<T: RawFileSystem> Filesystem for FuseApiHandleDebug<T> {
826795
"READDIRPLUS started"
827796
);
828797

829-
log_readdirplus!(
798+
log_readdir!(
830799
self.inner.readdirplus(req, parent, fh, offset, lock_owner),
831-
req
800+
"READDIRPLUS",
801+
req,
802+
directory_entry_plus_to_desc_str,
803+
ReplyDirectoryPlus
832804
)
833805
}
834806
}

0 commit comments

Comments
 (0)