onigiri
最近Rustのクレートを自作してcrates.ioに登録してみました。その名もonigiri。なぜこの名前にしたかと申しますと、charを米粒と考えて、集めたらどうなるか?おにぎり・握り飯・おにぎらない・おむすび・茶碗のご飯。そこで英語でrice ballなんていうのも面白くないので、onigiriにしたわけです。このクレートの機能は特に大したものではありません。おそらく皆さんはもっと効率的で優れたコードによって、同様の結果を得ることができると思います。登録したのは、私が時々、あったら便利だなと思うごく小さな機能を、毎回書くのが面倒なので、気軽に
cargo build
して使えるようにしたかっただけです。便利だなと感じていただけたなら、しめしめという感じです。使い方はとても簡単です。cargoで新しいプロジェクトを作成したら、Cargo.tomlに以下のように書いてください。
----------
Cargo.toml
----------
[dependencies]
onigiri = "0.1.3"
現在の最新のバージョンは0.1.3になっています。大した機能を持っていないので、ビルドもすぐ終わります。一応テストはしておりますので、おかしなことにはならないはずです。ちなみに私のOSはLinuxMint18で、Rust1.28.0を使って作りました。実際の使用例は以下のようなものです。
extern crate onigiri;
use onigiri::{tools, validator};
fn main() {
let test_text = "-123".to_string();
let new_vvchar = tools::create_vvchar(&test_text);
assert_eq!(&new_vvchar, &vec![vec!['-', '1', '2', '3']]);
assert_eq!(validator::is_negative_number(&new_vvchar[0]), true);
let num = tools::Ni32::new(&new_vvchar[0]);
assert_eq!(&num.attr, &-123_i32);
let literal = tools::Literal::new(&new_vvchar[0]);
assert_eq!(&literal.attr, &"-123".to_string());
let mut new_isize = tools::Nisize::new(&new_vvchar[0]);
assert_eq!(&new_isize.attr, &-123_isize);
assert_eq!(&new_isize.attr + 23_isize, -100_isize);
let new_i128 = tools::Ni128::new(&new_vvchar[0]);
assert_eq!(&new_i128.attr, &-123_i128);
}
簡単に説明しますと、Vec