Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/YujinGaya/hangul
Utilities to manipulate hangul syllables
https://github.com/YujinGaya/hangul
hangul rust text-processing
Last synced: about 1 month ago
JSON representation
Utilities to manipulate hangul syllables
- Host: GitHub
- URL: https://github.com/YujinGaya/hangul
- Owner: yujingaya
- Created: 2019-07-11T02:34:36.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-10-25T16:22:30.000Z (about 5 years ago)
- Last Synced: 2024-05-14T15:44:40.816Z (7 months ago)
- Topics: hangul, rust, text-processing
- Language: Rust
- Homepage: https://docs.rs/hangul
- Size: 11.7 KB
- Stars: 8
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-hangul - hangul - Utilities to manipulate hangul syllables (Programming Languages / Rust)
README
# Hangul
> Utilities to manipulate [Hangul Syllables][syllables].![crates.io version][version] ![crates.io license][license] ![crates.io download][download]
Hangul is a library to manipulate [Hangul Syllables][syllables] in the [Rust] language.
## Overview
Hangul is an [extension trait] implemented for the primitive type [`char`]. Currently it has following methods:- **Predicate** checks whether given [`char`] is a [Hangul Syllable][syllables]: _is\_syllable()_
- **Predicate** indicates whether the syllable has a jongseong — in other words, [closed]: _is\_open()_, _is\_closed()_
- **Getters** for choseong, jungseong, jongseong, and jamo: _choseong()_, _jungseong()_, _jongseong()_, _to\_jamo()_
- **Iterator** iterates over jamos consisting a syllable: _jamos()_:warning: **This crate only deals with [Compatibility Jamo]**: If you need [Jamo], file a issue in this repository with your context.
## Usage
Add `hangul` as a dependency in your `Cargo.toml`.```toml
[dependencies]
hangul = "0.1.3"
```then import [`HangulExt`](trait.HangulExt.html) trait in your code:
```rust
use hangul::HangulExt;
```Now you can use methods on [`char`].
```rust
use hangul::{HangulExt};assert_eq!(
"첫사랑"
.chars()
.flat_map(|c| c.jamos().unwrap())
.collect::(),
"ㅊㅓㅅㅅㅏㄹㅏㅇ"
);
```## Documentation
See [docs.rs][documentation]## License
Distributed under the MIT license.[syllables]: https://en.wikipedia.org/wiki/Hangul_Syllables
[version]: https://img.shields.io/crates/v/hangul
[license]: https://img.shields.io/crates/l/hangul
[download]: https://img.shields.io/crates/d/hangul
[Rust]: https://rust-lang.org
[extension trait]: https://github.com/rust-lang/rfcs/blob/master/text/0445-extension-trait-conventions.md
[`char`]: https://doc.rust-lang.org/std/primitive.char.html
[closed]: https://en.wikipedia.org/wiki/Syllable#Open_and_closed
[Compatibility Jamo]: https://en.wikipedia.org/wiki/Hangul_Compatibility_Jamo
[Jamo]: https://en.wikipedia.org/wiki/Hangul_Jamo_(Unicode_block)
[documentation]: https://docs.rs/hangul