jp_utils

Rust crate providing some handy tools for working with Japanese text

Usage

jp_utils = "0.1.4"

Examples

```rust use jputils::furi::{segment::SegmentRef, Furigana}; // Feature: "furigana" use jputils::hiragana::Syllable; // Feature: "hiragana" use jputils::JapaneseExt; use jputils::{alphabet::Alphabet, counter::is_counter};

// Basic string functions on japanese alphabet using the jp_utils::JapaneseExt trait assert!("あ".iskana()); assert!("あ".ishiragana()); assert!("日本語".iskanji()); assert!("日ほん語".haskanji()); assert!("日本語".isjapanese()); assert!("例です".startswithalphabet(Alphabet::Kanji)); assert!("ょ".issmallkana()); assert!(!"よ".issmallkana()); assert!("、".issymbol()); asserteq!("1".tohalfwidth(), "1");

// Hiragana hacks (requires feature: "hiragana") asserteq!( Syllable::fromchar('く').todakuten(), Syllable::fromchar('ぐ') );

// Furigana parsing (requires feature "furigana"!) let furigana = Furigana("[日本|に|ほん]が[好|す]きです"); asserteq!(furigana.kanjistr(), "日本が好きです"); asserteq!(furigana.kanastr(), "にほんがすきです");

let mut iter = furigana.segments(); // and even iterate over each part asserteq!( iter.next(), Some(SegmentRef::newkanji("日本", &["に", "ほん"])) ); asserteq!(iter.next(), Some(SegmentRef::newkana("が"))); asserteq!(iter.next(), Some(SegmentRef::newkanji("好",&["す"]))); asserteq!(iter.next(), Some(SegmentRef::newkana("きです"))); assert_eq!(iter.next(), None);

// Counter assert!(iscounter("人")); assert!(!iscounter("楽"));

```