タグ

ブックマーク / qiita.com/garkimasera (3)

  • Rustのマクロを可視化するツール railroad - Qiita

    この記事は Rustその3 Advent Calendarの10日目の記事です。空いていたのでちょっとしたツールをご紹介します。 Rustのマクロについて Rustのマクロは、Rustの他の要素と比べて変わった文法なので最初は戸惑うかもしれません。しかし、やっていることは「どういう構文にマッチするのかを定義する」「その構文がコンパイル時にどう変換されるか定義する」の2つです。このうち、前者の「どういう構文にマッチするのか」がイメージしやすくなれば、マクロを書きやすくなるでしょう。というわけで、この部分を可視化します。 railroadは、その名の通り鉄道の線路のようにマクロの構文を可視化してくれます。ありがたいことに、Webブラウザで動くデモがありますので、以下から使わせてもらいます。 試しに、頻繁に使うマクロであるvec!を可視化してみます。vec!の定義は以下の通りです。置換後の内容は

    Rustのマクロを可視化するツール railroad - Qiita
  • Rust+nomでバイナリ(bmpファイル)を読もう - Qiita

    Rustでバイナリをパースする方法はいくつかありますが、nomでやってみたら以外と簡単だったので記事にします。 nomとは GitHub: https://github.com/Geal/nom Rustのパーサコンビネータライブラリのデファクトスタンダード的な存在です。昔はマクロ中心の記述が中心で、マクロに慣れないと辛いところもありましたが、バージョン5からimpl Traitを活用した関数中心の記述に変更されました。マクロを使わないと書けないところも残っていたりしますが、かなり簡単にパーサコンビネータを使うことができます。文字列だけでなくバイナリのパーサを書くのにも使えます。 目標 バイナリを読む練習として、今回は仕様がかなり簡単な部類のバイナリファイルであるbmp(Windows Bitmap)ファイルを読むことを目標とします。フォーマットはWikipediaを読めばわかります。bm

    Rust+nomでバイナリ(bmpファイル)を読もう - Qiita
  • この1年Rustをゲーム開発に使ってみた感想 - Qiita

    Advent Calendarということで、この1年かけてちまちまRustゲームを作ってきたことに関して考えたことを書いていきます。Rustゲーム開発に使って感じた、Rustの長所と短所を自分なりにまとめていきます。具体的にゲームはこうして作るものだ、といった技術的な話ではありませんが、よろしければお付き合いください。 何を作ったか GitHubの次のページにて公開しています。 スクリーンショット 作成したのは、2Dドット絵のローグライクゲームです。描画や入出力機能はSDLに依存しますが、他はほぼ全てRustで作成したものです。未完成品ではありますが、基的な探索や戦闘、アイテム、会話、店なんかは実装してあります。さびた(rusted)遺跡(ruin)を探索するゲームということで、Rusted Ruinsと命名しています。 なぜRustで作ったか プログラミングができてゲームも好きなら

    この1年Rustをゲーム開発に使ってみた感想 - Qiita
  • 1