ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

rust

Rust+Clion+WSL2のメモ

Windows+WSL2環境で、Clionを使ってRustのデバッグをするときのメモ。 ClionはWindowsにインストーする。 cargo new はWindows上で行う。 Clionは、Windows上のディレクトリを開く Run onはLocal machine, working directoryはWindowsのパスを選択(図1) Se…

Lisp interpreter in rust

最近、中国語の勉強ばかりしていたので、リハビリがてらRustでLisp処理系を作る本を買ってみました。 www.amazon.co.jp 多分、本の内容もここにある気がして、買わなくても良かったのではと思うが筆者にお金が入るならOK。 github.com SICPにのっているよう…

Rustでthe trait bound `ImageBuffer<Rgb<u8>, Vec<u8>>: image::image::GenericImage` is not satisfied

Rustでimageprocを使って画像処理に挑戦したときにはまったのでメモ。 ソースはこんな感じで、ファイルを開いてちょっと画像処理に挑戦してみました。 let mut img_work = image::open(input_image_path).unwrap().to_rgb8(); draw_filled_circle_mut(&mut i…

ゼロからのOS自作入門(その5)RustでCの構造体を受け取る

ゼロからのOS自作入門(その4)osbook_day03c の続き。 natsutan.hatenablog.com 4日目はUEFIアプリからグラフィックスの情報をカーネルに渡します。今、UEFIアプリがC、カーネルをRustで書いているので、CとRustの間で構造体のやりとりが必要です。 std::os…

基礎から学ぶ組込Rust

基礎から学ぶ組込Rustの本を読みました。久しぶりに組込プログラマに戻れた気がしてとても楽しめました。 www.c-r.com どんな本 Wio TerminalをRustで制御していく本です。 組込がある程度分かっていて、組込Rustに興味がある人 Rustはある程度分かっていて…

ゼロからのOS自作入門(その3) Rustで書いたカーネルをブートさせる

ゼロからのOS自作入門(その2) メモリマップの取得 の続きです。 natsutan.hatenablog.com Cで書かれたフレームバッファを塗りつぶすカーネルを作っていたら、UEFIアプリは無理でもOSだけならRustで書けるんじゃと思ってやってみました。Rustで書かれたカー…

Rustでnomを使ってみた

nomはrust用のパーサコンビネータです。 https://github.com/Geal/nom/ Qiitaの記事を見て使ってみましたが、小一時間ハマったので結果をメモ 元ネタ https://qiita.com/k5n/items/e95842744fc5db931d03 このサンプルが最新のnomでは動きませんでした。 Carg…

rustで細かいプログラムを一つのディレクトリに入れる

なんかタイトル何ってるかわかりにくいです。 rustでプログラムを作るときは、cargo newコマンドを使います。ただ、ちょっとしたプログラムを作る度にcargo newするのも面倒ですよね。ディレクトリもどんどん増えますし。本で勉強していて、練習問題がでてき…

Rustの配列操作メモ

Rust Standard Library Cookbook から、気になった配列の操作をメモしました。 要素の取りだし 配列の要素を取り出すにはgetを使います。Option型で返ってくるので、Someかunwrapでその値を取り出せます。[ ]でも同じ動きです。 [ ]を使って配列の領域外にア…

RustでSimulated Annealing

本棚を見たら組合せ最適化アルゴリズムの最新手法―基礎から工学応用までという本を見つけました。Simulated Annealingのアルゴリズムが載っていたので、せっかくだからRustで実装してみました。 問題 この図の回路を2つのエリアにわける方法を考えます。簡単…

rustでマクロ

rust standard library cookbookから。 マクロを使って、簡単な可変長引数を実現する例。 macro_rules! multiply { ( $last:expr ) => { $last }; ( $head:expr, $($tail:expr), + ) => { $head * multiply!($($tail), +) }; } fn main() { let val1 = multi…

Rustでグラフ

ほとんどライブラリの使い方レベルだけど、なんとか動いた。 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で文字列の連結

Rust Standard Library Cookbookを読み始めました。 Amazon CAPTCHA この本ではRustの文字列連結として3つの方法が紹介されています。 moveによる連結 一番標準の方法。わかりやすく効率も良いが、連結後はmoveによりhelloは使えなくなる。 fn by_moving() …

rustを使ってonnxを読み込んでみた

https://cipepser.hatenablog.com/entry/protobuf-read-in-rust を参考にrustを使ってonnxを読み込んでみました。 Cargo.toml protobufを使えるようにする。 [dependencies] protobuf = { version = "~2.0", features = ["with-bytes"] } onnxフォーマットの…