ブログ名

競技プログラミングやお歌のお話をする高菜です。

procon-bundler を作り直しました。

  • 予め用意したソースコード(ライブラリ)を使いたい!
  • しかしソースコードを 1 ファイルにして提出いといけませんね……

そんな私の需要に答えたのがこちら、procon-bundler なのですが、この度ソースコードを全消しして書き直しましたのでお知らせいたします。

Q. どういう感じにバンドルされるのかを知りたいです!

README にもあるとおり、こうです。カスタマイゼーションポイントがないのがあれですが、rust-fmt でフォーマット済みのクレートなら大体ちゃんと動くのではないでしょうか。割としっかりテストはしているつもりです。

  • モジュールの展開とインデントの調整(インライン、ブロックともに)
  • cfg(test) つきモジュールの消去(インライン、ブロックともに)(モジュール以外のアイテムは消去されません。)
  • doc comments の消去(4 種類すべて)
  • パスの置換(マクロ、非マクロともに)
  • フォールドマーカー {{{, }}} の付加

README にもあるとおり、procon-bundler-sampleprocon-bundler-sample-result にバンドルされる様子を見るとわかりやすいのではなでしょうか。前者のソースコード中にたくさんコメントしてありますので、ご覧いただけるとです。

Q. つかってみたいです!

README をご覧ください。

Q. お名前がださいです。

……わかります(泣)

TODO

  • クレート名をディレクトリ名から取ってきているのが普通にバグです。(運用で回避可能ではあります。)
  • lib クレートにしか対応していません。(bin クレートに対応するのも難しくないのですが、モチベが……)
  • ac-adapter-rs 側に、すべてのクレートがバンドル・コンパイルできることのテストを追加します。
  • 気をつけたつもりですが、- / _ 問題でバグを踏んでいない自信がありません。
  • mod.rs に対応していません。(えっ)
  • みなさまが私の GitHub にスターをつけます。(えっ)