Crates.io | josa |
lib.rs | josa |
version | 0.1.2 |
source | src |
created_at | 2019-10-25 15:49:59.544245 |
updated_at | 2019-10-26 11:11:20.904421 |
description | Korean language josa selector |
homepage | |
repository | https://github.com/YujinGaya/josa |
max_upload_size | |
id | 175639 |
size | 14,157 |
Idiomatic josa selector.
Josa is a Rust library to select appropriate josas for korean language.
push_josa
methodJosa is an extension trait implemented for String
type.
Its API works just like push_str
method on String
.
use josa::JosaExt;
use josa::Josa::{EunNeun, IGa};
let mut user = "유진".to_owned();
let mut mackerel = "고등어".to_owned();
user.push_josa(EunNeun);
mackerel.push_josa(IGa);
let sentence = format!("{} {} 먹고싶다", user, mackerel);
assert_eq!(sentence, "유진은 고등어가 먹고싶다");
:warning: Like
push_str
does,push_josa
expectsString
, notstr
, as its argument.
+
, +=
operatorYou can use +
, +=
operator to append josa.
use josa::Josa::{EunNeun, IGa};
let user = "유진".to_owned();
let mackerel = "고등어".to_owned();
let sentence = format!("{} {} 먹고싶다", user + EunNeun, mackerel + IGa);
assert_eq!(sentence, "유진은 고등어가 먹고싶다");
select
methodIn case you want to append a josa to formatted text such as <span>고양이</span>
,
you can use select
method.
use josa::select;
use josa::Josa::IGa;
let cat = "고양이";
let josa = select(cat, IGa).unwrap();
let cat = format!(r#"<span class="bold">{}</span>{}"#, cat, josa);
assert_eq!(cat, r#"<span class="bold">고양이</span>가"#);
Add josa
as a dependency in your Cargo.toml
.
[dependencies]
josa = "0.1.2"
Now you can use josa crate.
use josa::*;
// Use here..
See docs.rs
select
macroAs soon as hygiene 2.0 (#54727) arrives stable, we will add support for following macro:
select!("{}{은} {}{가} 먹고싶다", user, mackerel);
which is terser than current syntax:
As soon as non-ASCII identifiers (#55467) arrives stable, we will change the names of josas to Hangul:
format!("{} {} 먹고싶다", user + 은는, mackerel + 이가);
Distributed under the MIT license.