normalization

Unicode normalization forms for MoonBit

unicode
normalization
nfc
nfd
nfkc
nfkd
moon add tonyfettes/normalization@0.4.0
Download zip
Version
0.4.0
License
Apache-2.0
Last updated
last month
Downloads
189

Dependencies

README

#normalization

Unicode NFC, NFD, NFKC, and NFKD normalization for MoonBit, using Unicode 16.0.0 data from tonyfettes/ucd.

moon add tonyfettes/normalization

See the repository root README for API documentation and examples.

#
NormalizationForm

pub(all) enum NormalizationForm {
NFD
NFC
NFKD
NFKC
} derive(Eq)

Normalization form enumeration

#
is_normalized

fn is_normalized(s : String, form : NormalizationForm) -> Bool

Check if a string is in the specified normalization form

#
nfc

fn nfc(s : String) -> String

Normalize a string to NFC (Canonical Decomposition + Composition)

Characters are first decomposed canonically, reordered, then recomposed using canonical composition rules. This is the most commonly used normalization form.

#
nfd

fn nfd(s : String) -> String

Normalize a string to NFD (Canonical Decomposition)

Characters are decomposed to their canonical equivalents and combining marks are reordered by Canonical Combining Class.

#
nfkc

fn nfkc(s : String) -> String

Normalize a string to NFKC (Compatibility Decomposition + Composition)

Characters are decomposed to compatibility equivalents, reordered, then recomposed. Often used for identifier comparison.

#
nfkd

fn nfkd(s : String) -> String

Normalize a string to NFKD (Compatibility Decomposition)

Characters are decomposed to their compatibility equivalents (including formatting variants like superscripts, fractions, etc.) and combining marks are reordered.

#
normalize

fn normalize(s : String, form : NormalizationForm) -> String

Normalize a string to the specified form

Powered by MoonBit

Site sourceReport issuePackagesBuild queueSkillsStatistics

© 2026 mooncakes.io