2022-10-03 04:57:22 +03:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2022, mat
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2023-01-08 19:05:51 +03:00
|
|
|
#include <AK/Error.h>
|
2022-10-03 04:57:22 +03:00
|
|
|
#include <AK/Forward.h>
|
|
|
|
#include <AK/Optional.h>
|
|
|
|
#include <AK/Span.h>
|
2023-01-14 17:52:38 +03:00
|
|
|
#include <AK/String.h>
|
2022-10-03 04:57:22 +03:00
|
|
|
#include <AK/StringView.h>
|
|
|
|
#include <LibUnicode/Forward.h>
|
|
|
|
|
|
|
|
namespace Unicode {
|
|
|
|
|
2022-11-06 09:08:56 +03:00
|
|
|
Optional<CodePointDecomposition const> code_point_decomposition(u32 code_point);
|
2024-04-06 18:45:52 +03:00
|
|
|
Optional<u32> code_point_composition(u32 first_code_point, u32 second_code_point);
|
2022-10-03 04:57:22 +03:00
|
|
|
|
|
|
|
enum class NormalizationForm {
|
|
|
|
NFD,
|
|
|
|
NFC,
|
|
|
|
NFKD,
|
|
|
|
NFKC
|
|
|
|
};
|
|
|
|
|
2022-10-06 17:45:59 +03:00
|
|
|
NormalizationForm normalization_form_from_string(StringView form);
|
|
|
|
StringView normalization_form_to_string(NormalizationForm form);
|
|
|
|
|
2023-09-06 14:25:56 +03:00
|
|
|
String normalize(StringView string, NormalizationForm form);
|
2022-10-03 04:57:22 +03:00
|
|
|
|
|
|
|
}
|