💕
Rust の CLI 作りに便利そうなクレート
はじめに
Rust でサクッと CLI を作ってみたいと考え、色々調べていたところ、
「なんか便利そう!」「これ面白い!」が結構出てきたので紹介させてください。
ゆるく3つほど紹介していければと思いますので、ぜひ。
figlet-rs
文字を立体的に出力できるクレート。
use figlet_rs::FIGfont;
fn main() {
let standard_font = FIGfont::standard().unwrap();
let figure = standard_font.convert("Hello Rust");
assert!(figure.is_some());
println!("{}", figure.unwrap());
}
いい感じでかっこいい!
半角英数字であればOKそうです。
さすがに日本語には対応していませんでした。
色々応用できそうで良いですね〜
colored
文字に色をつけることのできるクレート。
use colored::Colorize;
fn main() {
println!("{} {}", "Hello,".red(), "World!".blue())
}
カラフルで映えますね。
色だけでなく、文字の太さなどのスタイルも自由にカスタマイズできそうでした
dialoguer
対話形式のクレート。
use dialoguer::{Confirm, Input, Select};
fn main() {
let name: String = Input::new()
.with_prompt("あなたの名前は?")
.interact_text()
.unwrap();
println!("Hello, {}!", name);
let food = Select::new()
.with_prompt("好きな食べ物は?")
.items(&["うどん", "パスタ", "ラーメン"])
.default(0)
.interact()
.unwrap();
println!("You selected: {}", ["うどん", "パスタ", "ラーメン"][food]);
let confirm = Confirm::new().with_prompt("もう一回?").interact().unwrap();
if confirm {
println!("Continuing...");
} else {
println!("Exiting...");
}
}
インタラクティブな実装が簡単にできるのは Good!
おわりに
調べた感じ、このようなOSSライブラリは結構ありそうでした。
Rust もこれから認知度が上がって、これらのライブラリは重宝されていくと思いますので、
定期的にウォッチしつつ、CLI作りに励んでいきたいですね。
では。
Discussion