1#ifndef SOURCEMETA_CORE_IDNA_H_
2#define SOURCEMETA_CORE_IDNA_H_
4#ifndef SOURCEMETA_CORE_IDNA_EXPORT
5#include <sourcemeta/core/idna_export.h>
8#include <sourcemeta/core/idna_ucd.h>
25namespace sourcemeta::core {
57SOURCEMETA_CORE_IDNA_EXPORT
59 std::u32string &decoded)
60 -> std::optional<IDNALabelKind>;
76SOURCEMETA_CORE_IDNA_EXPORT
94SOURCEMETA_CORE_IDNA_EXPORT
96 const std::size_t position)
noexcept -> bool;
117SOURCEMETA_CORE_IDNA_EXPORT
119 const std::size_t position)
noexcept -> bool;
138SOURCEMETA_CORE_IDNA_EXPORT
158SOURCEMETA_CORE_IDNA_EXPORT
183SOURCEMETA_CORE_IDNA_EXPORT
210SOURCEMETA_CORE_IDNA_EXPORT
SOURCEMETA_CORE_IDNA_EXPORT auto idna_property(const char32_t codepoint) noexcept -> IDNAProperty
IDNAProperty
Definition idna_ucd.h:20
SOURCEMETA_CORE_IDNA_EXPORT auto idna_is_valid_a_label(const std::string_view label) -> bool
SOURCEMETA_CORE_IDNA_EXPORT auto idna_classify_label(const std::u32string_view label, std::u32string &decoded) -> std::optional< IDNALabelKind >
SOURCEMETA_CORE_IDNA_EXPORT auto idna_uts46_map(const std::u32string_view input) -> std::u32string
SOURCEMETA_CORE_IDNA_EXPORT auto idna_is_valid_u_label(const std::u32string_view label) -> bool
SOURCEMETA_CORE_IDNA_EXPORT auto idna_passes_bidi_rule(const std::u32string_view label) noexcept -> bool
SOURCEMETA_CORE_IDNA_EXPORT auto idna_passes_contexto(const std::u32string_view label, const std::size_t position) noexcept -> bool
SOURCEMETA_CORE_IDNA_EXPORT auto idna_passes_contextj(const std::u32string_view label, const std::size_t position) noexcept -> bool
IDNALabelKind
Definition idna.h:29
@ ALabel
An RFC 5890 §2.3.2.1 A-label (ACE form), validated per RFC 5891 §4.
Definition idna.h:34
@ Ascii
Definition idna.h:32
@ ULabel
An RFC 5890 §2.3.2.2 U-label (Unicode form), validated per RFC 5891 §4.
Definition idna.h:36