mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 05:07:45 +00:00
LibCore: Handle multiple events in the FileWatcher event mask formatter
This commit is contained in:
parent
5bfc9daba1
commit
8419ca8b78
1 changed files with 23 additions and 21 deletions
|
@ -95,28 +95,30 @@ template<>
|
||||||
struct Formatter<Core::FileWatcherEvent::Type> : Formatter<FormatString> {
|
struct Formatter<Core::FileWatcherEvent::Type> : Formatter<FormatString> {
|
||||||
ErrorOr<void> format(FormatBuilder& builder, Core::FileWatcherEvent::Type const& value)
|
ErrorOr<void> format(FormatBuilder& builder, Core::FileWatcherEvent::Type const& value)
|
||||||
{
|
{
|
||||||
StringView type;
|
bool had_any_flag = false;
|
||||||
switch (value) {
|
|
||||||
case Core::FileWatcherEvent::Type::ChildCreated:
|
|
||||||
type = "ChildCreated"sv;
|
|
||||||
break;
|
|
||||||
case Core::FileWatcherEvent::Type::ChildDeleted:
|
|
||||||
type = "ChildDeleted"sv;
|
|
||||||
break;
|
|
||||||
case Core::FileWatcherEvent::Type::Deleted:
|
|
||||||
type = "Deleted"sv;
|
|
||||||
break;
|
|
||||||
case Core::FileWatcherEvent::Type::ContentModified:
|
|
||||||
type = "ContentModified"sv;
|
|
||||||
break;
|
|
||||||
case Core::FileWatcherEvent::Type::MetadataModified:
|
|
||||||
type = "MetadataModified"sv;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
VERIFY_NOT_REACHED();
|
|
||||||
}
|
|
||||||
|
|
||||||
return builder.put_string(type);
|
auto put_string_if_has_flag = [&](auto mask, auto name) -> ErrorOr<void> {
|
||||||
|
if (!has_flag(value, mask))
|
||||||
|
return {};
|
||||||
|
|
||||||
|
if (had_any_flag)
|
||||||
|
TRY(builder.put_string(", "sv));
|
||||||
|
TRY(builder.put_string(name));
|
||||||
|
|
||||||
|
had_any_flag = true;
|
||||||
|
return {};
|
||||||
|
};
|
||||||
|
|
||||||
|
TRY(builder.put_string("["sv));
|
||||||
|
TRY(put_string_if_has_flag(Core::FileWatcherEvent::Type::ChildCreated, "ChildCreated"sv));
|
||||||
|
TRY(put_string_if_has_flag(Core::FileWatcherEvent::Type::ChildDeleted, "ChildDeleted"sv));
|
||||||
|
TRY(put_string_if_has_flag(Core::FileWatcherEvent::Type::Deleted, "Deleted"sv));
|
||||||
|
TRY(put_string_if_has_flag(Core::FileWatcherEvent::Type::ContentModified, "ContentModified"sv));
|
||||||
|
TRY(put_string_if_has_flag(Core::FileWatcherEvent::Type::MetadataModified, "MetadataModified"sv));
|
||||||
|
TRY(builder.put_string("]"sv));
|
||||||
|
|
||||||
|
VERIFY(had_any_flag);
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue