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)
Search Document