Rustで自己参照構造体が作れない理由と解決法
自分自身の一部への参照を持つ構造体(自己参照構造体とここでは呼ぶことにします)を作ろうとして、コンパイルエラーに遭遇してしまうのはRust初心者にありがちなようです。ここでは、なぜ自己参照構造体...
17 search resultsShowing 1~17 results
You need to log-in
自分自身の一部への参照を持つ構造体(自己参照構造体とここでは呼ぶことにします)を作ろうとして、コンパイルエラーに遭遇してしまうのはRust初心者にありがちなようです。ここでは、なぜ自己参照構造体...
Rustのserdeは非常に強力なフレームワークですが、重用していると時折serdeの標準機能では対応できないケースに出くわします。そんな時に便利なserde_withクレートをご紹介します。 ...
Rustでプログラミングする上で、よく使いそうなクレートを目的別に一言で紹介します。 目的 クレート グローバル変数を使いたい lazy_static バイナリデータを読み書きしたい byteo...
Rust 1.0がリリースされたのは2015年の5月で、5年前のこととなります。自分は1.0 betaのころにRustを始めたので、なかなか感慨深いものです。この5年の間に、いくつもの企業でRu...
委譲が欲しくなる場面 次のようなトレイトWidgetと、それを実装するBaseWidgetがあるとします。 trait Widget { fn size(&self) -> (u3...
この記事は Rustその3 Advent Calendarの10日目の記事です。空いていたのでちょっとしたツールをご紹介します。 Rustのマクロについて Rustのマクロは、Rustの他の要素...
Rustでバイナリをパースする方法はいくつかありますが、nomでやってみたら以外と簡単だったので記事にします。 nomとは GitHub: https://github.com/Geal/nom...
Rustの標準ライブラリでは、VecやHashMapなどいくつかのコレクション型が用意されています。どういった型が用意されているか、以下で簡単にまとめていきます。なお、Vec以外はstd::co...
今更ながらRust Playgroundの紹介 とにかくRustを試す Webブラウザで https://play.rust-lang.org/ にアクセスする。 初めてアクセスしたならすでにH...
Rustに導入される予定の新しいエディション、Rust 2018について、リリース前に得られる情報をご紹介します。 Rust 2018とは何か Rust公式ブログの [What is Rust ...
1.38からstd::any::type_nameという関数を使って型の名前を取得することができるようになりました。 fn print_typename<T>(_: T) { pri...
Rustで整数値がオーバーフローした場合の挙動をまとめてみます。 オーバーフローの起きる式 オーバーフローを起こす以下のようなコードを書いて、Rust Playgroundに貼り付けて実行してみ...
Advent Calendarということで、この1年かけてちまちまRustでゲームを作ってきたことに関して考えたことを書いていきます。Rustをゲーム開発に使って感じた、Rustの長所と短所を自...
BoxやVecは与えられた型に応じてヒープ領域を確保してくれますが、確保するメモリサイズが0であるときの詳しい挙動を調べてみました。 Box<T>のTがゼロサイズの場合 Rustでは...
serdeはRustのデータ構造をシリアライズ/デシリアライズするためのフレームワークです。これで何ができるか大雑把に紹介すると、Rustの構造体等のデータ構造を、自動的にJSONやTOML、Y...
Rustのstdライブラリは、最小限の機能しか持っておらず、なにか実用的なコードを書くのであれば他の様々なクレート(ライブラリ)を利用する必要があります。ただし、知らないものを利用することはでき...
パフォーマンス上の問題から、expect()よりunwrap_or_else()とpanic!()の組み合わせを使うべき場合がある、という話。 expect()の失敗時に表示される文字列 Opt...
17 search resultsShowing 1~17 results
Qiita is a knowledge sharing service for engineers.