CharacterTypes.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /*
  2. * Copyright (c) 2021, Tim Flynn <trflynn89@pm.me>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/Forward.h>
  8. #include <AK/Optional.h>
  9. #include <AK/String.h>
  10. #include <AK/Types.h>
  11. #include <LibUnicode/Forward.h>
  12. namespace Unicode {
  13. // Note: The single code point case conversions only perform simple case folding.
  14. // Use the full-string transformations for full case folding.
  15. u32 to_unicode_lowercase(u32 code_point);
  16. u32 to_unicode_uppercase(u32 code_point);
  17. Optional<StringView> code_point_display_name(u32 code_point);
  18. String to_unicode_lowercase_full(StringView, Optional<StringView> locale = {});
  19. String to_unicode_uppercase_full(StringView, Optional<StringView> locale = {});
  20. Optional<GeneralCategory> general_category_from_string(StringView);
  21. bool code_point_has_general_category(u32 code_point, GeneralCategory general_category);
  22. Optional<Property> property_from_string(StringView);
  23. bool code_point_has_property(u32 code_point, Property property);
  24. bool is_ecma262_property(Property);
  25. Optional<Script> script_from_string(StringView);
  26. bool code_point_has_script(u32 code_point, Script script);
  27. bool code_point_has_script_extension(u32 code_point, Script script);
  28. }