[Rust] cargo install で文字化けして通信エラーが発生する
cargo install でエラーが発生する 例えば cargo install ripgrep を実行すると以下のような結果で github にうまくつながらずにネットワークエラーになります。 $ cargo install ripgrep Updating crates.io index warning: spurious network error (2 tries remaining): […]
Web備忘録 プログラミングを中心に技術的な事柄を忘れないように書き残します。
cargo install でエラーが発生する 例えば cargo install ripgrep を実行すると以下のような結果で github にうまくつながらずにネットワークエラーになります。 $ cargo install ripgrep Updating crates.io index warning: spurious network error (2 tries remaining): […]
Rust の Vec をインデックス付きでループする方法 Rust の Vec もしくは イテレーターの要素をループして走査する際、インデックスも一緒にほしい場合があります。その方法をまとめます。 単純に for i in 0..a.len() {} みたいにしてループするのではなく、インデックスと要素のペアセットでループするようにします。 enumerate() を使う std::iter::I […]
Rust で Trait を使った継承のような実装 Rust は、Trait を使って struct に関数の実装を強制することができます。Trait はオブジェクト指向のプログラミング言語でいうところの、インターフェースや抽象クラスのような役割を果たします。 Trait 含め、struct に関数を実装する方法を忘れないようにメモします。 struct は関数をメンバに持たない Rust の s […]
Rust で Brainfuck Brainfuck – Wikipedia Brainfuck は、インタプリタのサイズが小さくなるように設計されたプログラミング言語です。実装するのがとてもお手軽な一方、Brainfuckで書かれたコードは非常に読みにくくなります。 Rust で Brainfuck のインタプリタを実装してみます。以前、C# で実装してみたことがあるのでそれをRus […]
[20190201_RustでWebAssembly入門のためのまとめ Rust で WebAssembly に入門する Introduction – Rust and WebAssembly 上記ページが Rust + WebAssembly のためのチュートリアル & リファレンスのページになります。このページを参考に、Rust のコードから WebAssembly を生成 […]
Rust を使ってソートアルゴリズムを実装してみる Rust を使ってソートアルゴリズムを実装してみます。バブルソート、洗濯ソート、挿入ソートをそれぞれ実装します。 Rust はクセが強いので、結構苦労しましたが以下を学びました。 配列要素の交換は swap() を使う Clone を実装する型は clone() を使える Copy を実装すると型は配列の要素をそのまま交換できる 10..1 みた […]
Cargo とは Cargo はRustのビルドシステムおよびパッケージマネージャです。Cargoは、コードの構築、コードが依存するライブラリのダウンロード、それらのライブラリの構築など、多くのタスクをユーザーに代わって処理します。 .NET でいうところの nuget や Javascript でいうところの npm みたいなパッケージ管理機能 + ビルド時のもろもろの便利機能を提供してくれます […]
Rust とは Rust とは、プログラミング言語の1種で、速度、並行性、安全性を言語仕様として保証することで、C(C++)に代わるシステムプログラミングに適した言語を目指しています。言語仕様、ソースコード、ドキュメントがオープンソースで公開されています。 2015年にversion1.0が公開されており、比較的新しい言語となります。 システムプログラミングに適した言語であるということからもわかる […]