1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 09:58:14 +00:00

LibCore: Expose file type from DirIterator

Our `find` utility makes use of the `dirent::d_type` field for filtering
results, which `Core::DirIterator` didn't expose. So, now it does. :^)

We now store the name and type of the entry as the "next" value instead
of just the name. The type is exposed as a `DirectoryEntry::Type`
instead of a `DT_FOO` constant, so that we're not tied to posixy
systems, and because proper enums are nice. :^)
This commit is contained in:
Sam Atkins 2023-03-02 15:39:07 +00:00 committed by Andreas Kling
parent bc0bb98c01
commit a98ae8f357
5 changed files with 106 additions and 14 deletions

View file

@ -0,0 +1,34 @@
/*
* Copyright (c) 2023, Sam Atkins <atkinssj@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/DeprecatedString.h>
struct dirent;
namespace Core {
struct DirectoryEntry {
enum class Type {
BlockDevice,
CharacterDevice,
Directory,
File,
NamedPipe,
Socket,
SymbolicLink,
Unknown,
Whiteout,
};
Type type;
// FIXME: Once we have a special Path string class, use that.
DeprecatedString name;
static DirectoryEntry from_dirent(dirent const&);
};
}