🦀

Rust で rgb の数値から色がすぐ確認できるコマンドつくった

2022/06/19に公開

TL;DR

  • 昨日 The Rust Programming Language 読んだので Rust 書こうと思って数時間取り組んでみた
  • stdin 受け取って ANSI エスケープシーケンスで rgb 色を表現したテキストを表示するコマンド作った
  • せっかくなので Crate.io に publish した

言いたいこと

Rust 書いててめちゃくちゃ楽しいのでみんな気軽に入門しようよ🤟🤟🤟🤟🤟

本文

普段仕事では TypeScript を書いているのですが、勤めている会社の方々が折々に「Rustはいいぞ!」と言うので、軽いノリで入門してみました。

  1. Zenn にあった Rust入門 パラ読み
  2. The Rust Programming Language 日本語版 の 1 - 5, 7, 9, 10 章をちゃんと読む

をしたので、ここまでの内容ふんわり踏まえて何かコード書いたほうがいいだろうなーと思い、とりあえず書くことにしました。
題材は「rgbの値を指定したらその値の色のテキストを出力する」としました。 The Rust Programming Language のなかで stdin を使うコードを書いたからこの題材が浮かんだのかもしれません。

最終的にできたこと

mshowrgb
# 0 - 255 までの数字を入力
Enter a number of red : 255
Enter a number of green : 0
Enter a number of blue : 0
# rgb エスケープシーケンスに対応しているターミナルなら
# ■ に色がついて表示される
■

よかったら使ってみてね

cargo が入っていれば

$ cargo install mshowrgb

mshowrgb コマンドが使えるようになります。

コード

https://github.com/mirko-san/mshowrgb

さいごに

総評としては

  • とにかくコンパイラが丁寧に怒ってくれるのでうれしい
  • エラー処理ちゃんと理解したらもっとエレガントに書けそうなのでワクワクする

という感じでした

ここまでは合計 3 日くらいです。要領いい人なら 1 日で雰囲気つかむことが出来そうです。
Rust は日本語の資料もありますし、環境構築も簡単で、なにより書いていてとても楽しいです。
ぜひ皆様も気軽に Rust に入門してみましょう🤟

おまけ

自分は勉強のモチベを保つのが苦手なので、勉強のはじめに読もうとしているテキストの見出しを一覧にし、読んだものはマスを塗りつぶしたりして進捗の見える化をしました。

https://twitter.com/mirko_960/status/1537248896728338432?s=20&t=kMJFQtGZNAN_3ezCfVpRgQ

この取り組みが割と良かったので、よろしければ皆様もお試しください。

GitHubで編集を提案

Discussion