rust
Windows+WSL2環境で、Clionを使ってRustのデバッグをするときのメモ。 ClionはWindowsにインストーする。 cargo new はWindows上で行う。 Clionは、Windows上のディレクトリを開く Run onはLocal machine, working directoryはWindowsのパスを選択(図1) Se…
最近、中国語の勉強ばかりしていたので、リハビリがてらRustでLisp処理系を作る本を買ってみました。 www.amazon.co.jp 多分、本の内容もここにある気がして、買わなくても良かったのではと思うが筆者にお金が入るならOK。 github.com SICPにのっているよう…
Rustでimageprocを使って画像処理に挑戦したときにはまったのでメモ。 ソースはこんな感じで、ファイルを開いてちょっと画像処理に挑戦してみました。 let mut img_work = image::open(input_image_path).unwrap().to_rgb8(); draw_filled_circle_mut(&mut i…
ゼロからのOS自作入門(その4)osbook_day03c の続き。 natsutan.hatenablog.com 4日目はUEFIアプリからグラフィックスの情報をカーネルに渡します。今、UEFIアプリがC、カーネルをRustで書いているので、CとRustの間で構造体のやりとりが必要です。 std::os…
基礎から学ぶ組込Rustの本を読みました。久しぶりに組込プログラマに戻れた気がしてとても楽しめました。 www.c-r.com どんな本 Wio TerminalをRustで制御していく本です。 組込がある程度分かっていて、組込Rustに興味がある人 Rustはある程度分かっていて…
ゼロからのOS自作入門(その2) メモリマップの取得 の続きです。 natsutan.hatenablog.com Cで書かれたフレームバッファを塗りつぶすカーネルを作っていたら、UEFIアプリは無理でもOSだけならRustで書けるんじゃと思ってやってみました。Rustで書かれたカー…
nomはrust用のパーサコンビネータです。 https://github.com/Geal/nom/ Qiitaの記事を見て使ってみましたが、小一時間ハマったので結果をメモ 元ネタ https://qiita.com/k5n/items/e95842744fc5db931d03 このサンプルが最新のnomでは動きませんでした。 Carg…
なんかタイトル何ってるかわかりにくいです。 rustでプログラムを作るときは、cargo newコマンドを使います。ただ、ちょっとしたプログラムを作る度にcargo newするのも面倒ですよね。ディレクトリもどんどん増えますし。本で勉強していて、練習問題がでてき…
Rust Standard Library Cookbook から、気になった配列の操作をメモしました。 要素の取りだし 配列の要素を取り出すにはgetを使います。Option型で返ってくるので、Someかunwrapでその値を取り出せます。[ ]でも同じ動きです。 [ ]を使って配列の領域外にア…
本棚を見たら組合せ最適化アルゴリズムの最新手法―基礎から工学応用までという本を見つけました。Simulated Annealingのアルゴリズムが載っていたので、せっかくだからRustで実装してみました。 問題 この図の回路を2つのエリアにわける方法を考えます。簡単…
rust standard library cookbookから。 マクロを使って、簡単な可変長引数を実現する例。 macro_rules! multiply { ( $last:expr ) => { $last }; ( $head:expr, $($tail:expr), + ) => { $head * multiply!($($tail), +) }; } fn main() { let val1 = multi…
ほとんどライブラリの使い方レベルだけど、なんとか動いた。 extern crate petgraph; use std::fs; use std::io::Write; // https://docs.rs/petgraph/0.4.13/petgraph/ use petgraph::Graph; use petgraph::algo; use petgraph::dot::Dot; fn main() { let …
Rust Standard Library Cookbookを読み始めました。 Amazon CAPTCHA この本ではRustの文字列連結として3つの方法が紹介されています。 moveによる連結 一番標準の方法。わかりやすく効率も良いが、連結後はmoveによりhelloは使えなくなる。 fn by_moving() …
https://cipepser.hatenablog.com/entry/protobuf-read-in-rust を参考にrustを使ってonnxを読み込んでみました。 Cargo.toml protobufを使えるようにする。 [dependencies] protobuf = { version = "~2.0", features = ["with-bytes"] } onnxフォーマットの…