hanguleam/composer
Types
pub type AssembleError {
InvalidChoseong(String)
InvalidJungseong(String)
InvalidJongseong(String)
}
Constructors
-
InvalidChoseong(String) -
InvalidJungseong(String) -
InvalidJongseong(String)
Values
pub fn assemble(fragments: List(String)) -> String
Assembles Korean text fragments by intelligently combining characters. Processes fragments according to Korean linguistic rules including consonant-vowel combinations and Korean linking (연음).
Examples
assemble(["ㄱ", "ㅏ", "ㅂ"])
// -> "갑"
assemble(["안녕하", "ㅅ", "ㅔ", "요"])
// -> "안녕하세요"
assemble(["뀽", "ㅏ"])
// -> "뀨아"
pub fn combine_character(
choseong choseong: String,
jungseong jungseong: String,
jongseong jongseong: String,
) -> Result(String, AssembleError)
Combines Korean jamo components into a complete Hangul syllable.
Examples
combine_character(choseong: "ㄱ", jungseong: "ㅏ", jongseong: "")
// -> Ok("가")
combine_character(choseong: "ㄲ", jungseong: "ㅠ", jongseong: "ㅇ")
// -> Ok("뀽")
pub fn combine_character_unsafe(
choseong: String,
jungseong: String,
jongseong: String,
) -> String
⚠️ UNSAFE: Combines jamo into Hangul syllable without validation. WILL PANIC on invalid inputs.
Use combine_character() for safe operation or ensure inputs are pre-validated.
pub fn combine_vowels(vowel1: String, vowel2: String) -> String
Combines two Korean vowels into a single complex vowel if possible.
Examples
combine_vowels("ㅗ", "ㅏ")
// -> "ㅘ"
combine_vowels("ㅣ", "ㅏ")
// -> "ㅣㅏ" (no combination possible)