#pragma once #include #include #include class Font; struct Metadata { String path; bool is_fixed_width; int glyph_height; }; class GFontDatabase { public: static GFontDatabase& the(); RefPtr get_by_name(const StringView&); void for_each_font(Function); void for_each_fixed_width_font(Function); Optional get_metadata_by_name(const StringView& name) const { return m_name_to_metadata.get(name); } private: GFontDatabase(); ~GFontDatabase(); HashMap m_name_to_metadata; };