/* * Copyright (c) 2021, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace Unicode::Detail { struct Symbols { static Symbols const& ensure_loaded(); // Loaded from UnicodeData.cpp: Optional (*code_point_display_name)(u32) { nullptr }; u32 (*canonical_combining_class)(u32 code_point) { nullptr }; u32 (*simple_uppercase_mapping)(u32) { nullptr }; u32 (*simple_lowercase_mapping)(u32) { nullptr }; Span (*special_case_mapping)(u32 code_point) { nullptr }; Optional (*general_category_from_string)(StringView) { nullptr }; bool (*code_point_has_general_category)(u32, GeneralCategory) { nullptr }; Optional (*property_from_string)(StringView) { nullptr }; bool (*code_point_has_property)(u32, Property) { nullptr }; Optional