mirror of
https://github.com/SerenityOS/serenity.git
synced 2026-11-07 04:29:30 -10:00
LibACPI: Move object formatting to a dedicated formatter
This commit is contained in:
1 parent
3b0289a11c
commit
cc1e5ef63b
2 files changed
+17
-10
No files matched your search
@@ -61,16 +61,7 @@ ErrorOr<void> Node::write_description(StringBuilder& builder)
|
||||
|
||||
ErrorOr<void> NameNode::write_description(StringBuilder& builder)
|
||||
{
|
||||
if (m_data.is<u64>()) {
|
||||
auto value = MUST(m_data.as<u64>());
|
||||
TRY(builder.try_appendff("(Decimal: {}, Hexadecimal: {:X})", value, value));
|
||||
} else if (m_data.is<NameString>()) {
|
||||
auto value = MUST(m_data.as<NameString>());
|
||||
TRY(builder.try_appendff("{}"sv, TRY(value.to_string())));
|
||||
} else {
|
||||
TRY(builder.try_append("Invalid"sv));
|
||||
}
|
||||
|
||||
TRY(builder.try_appendff("{}"sv, m_data));
|
||||
return {};
|
||||
}
|
||||
|
||||
|
||||
@@ -54,3 +54,19 @@ protected:
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
template<>
|
||||
struct AK::Formatter<::ACPI::AML::Object> : AK::Formatter<FormatString> {
|
||||
ErrorOr<void> format(FormatBuilder& builder, ::ACPI::AML::Object const& object)
|
||||
{
|
||||
if (object.is<u64>()) {
|
||||
auto value = MUST(object.as<u64>());
|
||||
return AK::Formatter<FormatString>::format(builder, "(Decimal: {}, Hexadecimal: {:X})"sv, value, value);
|
||||
}
|
||||
|
||||
if (object.is<::ACPI::AML::NameString>())
|
||||
return AK::Formatter<FormatString>::format(builder, "{}"sv, TRY(MUST(object.as<::ACPI::AML::NameString>()).to_string()));
|
||||
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
};
|
||||
Reference in new issue
Block a user