summaryrefslogtreecommitdiff
path: root/src/fsentry.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/fsentry.rs')
-rw-r--r--src/fsentry.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/fsentry.rs b/src/fsentry.rs
index 9384ec6..570877a 100644
--- a/src/fsentry.rs
+++ b/src/fsentry.rs
@@ -129,6 +129,7 @@ pub enum FilesystemKind {
Directory,
Symlink,
Socket,
+ Fifo,
}
impl FilesystemKind {
@@ -141,6 +142,8 @@ impl FilesystemKind {
FilesystemKind::Symlink
} else if file_type.is_socket() {
FilesystemKind::Socket
+ } else if file_type.is_fifo() {
+ FilesystemKind::Fifo
} else {
panic!("unknown file type {:?}", file_type);
}
@@ -152,6 +155,7 @@ impl FilesystemKind {
FilesystemKind::Directory => 1,
FilesystemKind::Symlink => 2,
FilesystemKind::Socket => 3,
+ FilesystemKind::Fifo => 4,
}
}
@@ -161,6 +165,7 @@ impl FilesystemKind {
1 => Ok(FilesystemKind::Directory),
2 => Ok(FilesystemKind::Symlink),
3 => Ok(FilesystemKind::Socket),
+ 4 => Ok(FilesystemKind::Fifo),
_ => Err(FsEntryError::UnknownFileKindCode(code).into()),
}
}
@@ -182,6 +187,7 @@ mod test {
one_file_kind_round_trip(FilesystemKind::Directory);
one_file_kind_round_trip(FilesystemKind::Symlink);
one_file_kind_round_trip(FilesystemKind::Socket);
+ one_file_kind_round_trip(FilesystemKind::Fifo);
}
fn one_file_kind_round_trip(kind: FilesystemKind) {