Crates.io | kanaria |
lib.rs | kanaria |
version | 0.2.0 |
source | src |
created_at | 2019-03-23 12:08:01.426887 |
updated_at | 2020-02-24 00:14:19.943083 |
description | This library provides functions such as hiragana, katakana, half-width and full-width mutual conversion and discrimination. |
homepage | |
repository | https://github.com/sam-osamu/com.kanaria |
max_upload_size | |
id | 123281 |
size | 7,596,478 |
このライブラリは、ひらがな・カタカナ、半角・全角の相互変換や判別を始めとした機能を提供します。
変換処理は次のものをご用意しています。
判定処理は次のものをご用意しています。
ひがらなを除き、それぞれ半角のみ、全角のみ、半角・全角区別なしの物があります。
UCSStrに文字列を読み込ませ、変換先の設定を行い(この例だとカタカナに変換後、さらに半角に変換)、
Stringとして吐き出しているサンプルです。
let source = "吾輩は😺猫である😺";
let expect = "吾輩ハ😺猫デアル😺";
assert_eq!(expect.to_string(), UCSStr::from_str(source).katakana().narrow().to_string());
また、上記のようにメソッドチェーンによる連続した変換設定はできませんが、
次のような形でも変換できます。
use kanaria::converter::{Converter, ConverterFactory};
let target = vec!['あ', 'い', 'う', 'え', 'お'];
let mut result = Vec::<char>::with_capacity(target.len());
unsafe {
// ほかにも、UCSStrと同じようにVec<T>やStringに出力する機能もあります
let len = ConverterFactory::from_slice(target.as_slice())
.katakana()
.write_to_ptr(result.as_mut_ptr());
result.set_len(len);
};
assert_eq!(result, vec!['ア', 'イ', 'ウ', 'エ', 'オ']);
この例は、半角文字を全角文字に変換しています。
この形式での変換は生ポインタ(*mut u16など)への書き込みを行うことができます。
連続での変換はせず、なおかつ速度を求める場合はこちらのほうが便利です。
ちなみに、他言語向けのラッパーライブラリも別途ご用意しています。
以下はC#の例です(VB.NETからも同じ要領で使用できるはずです)。
var katakana = "吾輩ハ😺猫デアル😺";
var hiragana = "吾輩は😺猫である😺";
Assert.AreEqual(katakana, UcsString.From(hiragana).Katakana().ToString());
Assert.AreEqual(hiragana, UcsString.From(katakana).Hiragana().ToString());
各言語で使用されるパッケージマネージャやビルドツール等からインストールできます。
Rust( https://crates.io/crates/kanaria )
[dependencies]
kanaria = "0.1.1"
C#( https://www.nuget.org/packages/Kanaria.Net/ )
PM> Install-Package Kanaria.Net -Version 0.1.2
Maven( https://bintray.com/sam-osamu/maven/com.kanaria.kanaria_jvm )
<dependency>
<groupId>com.kanaria</groupId>
<artifactId>kanaria_jvm</artifactId>
<version>0.1.0</version>
<type>pom</type>
</dependency>
Gradle( https://bintray.com/sam-osamu/maven/com.kanaria.kanaria_jvm )
compile 'com.kanaria:kanaria_jvm:0.1.0'
次のページをご参照ください(これはRust向けのものです)。
https://docs.rs/kanaria/0.1.1/kanaria/
RustDocのようにサンプルを交えての記載まではできていませんが、
各言語のラッパー関数にも同様の関数コメントをご用意しています。