rust
surf surf-1.x 系では↓のように Cargo.toml にバージョン番号または所在だけ書けば wasm 向けにもそのまま使えました。べんり。 # surf-1.x [dependencies] surf = "1.0.3" surf-2.x 系から↓のように Cargo.toml に default-features と features を明示的に…
package.json -> licenses.json おまけ: Cargo.toml -> licenses.json package.json -> licenses.json package.json と npm|yarn を使っているプロジェクトでお世話になっている依存ライブラリーのライセンス表示を自動生成したい時、とりあえず yarn で yar…
問題 // ↓これは問題ありません trait Trait { fn function() -> Self; } // ↓これは E0277: the size for values of type `Self` cannot be known at compilation time trait TraitOptional { fn function() -> Option<Self>; } // -> Result<Self, E> とかする場合も同様</self,></self>…
Repos: https://github.com/usagi/rust-memory-container-cs 作ったので GitHub ↑ しつつ、なんとなくすごい久しぶりに Qiita に初心者さんに優しそうな雰囲気を装った解説↓ https://qiita.com/usagi/items/fc329895cebd3466910e も書いてみました。ちなみに…
dimension_shift_buffer https://crates.io/crates/dimension_shiftable_buffer https://github.com/usagi/dimension_shiftable_buffer https://docs.rs/dimension_shiftable_buffer/1.0.0/dimension_shiftable_buffer/ vec-dimension-shift https://crates.…
trait T を実装した struct S について、 S から &dyn T へアップキャストした後、 &dyn T から &S へダウンキャストでき…ません。Rustでtrait継承のdynなオブジェクトを扱おうとすると悲しむポイントです。 trait T { fn hello(&self); } struct S {} impl …
publishedhttps://t.co/hJD0s7Leoh: tiahttps://t.co/Rpx0g9zfdpgithub: usagi/tiahttps://t.co/IrrhxsH58Rtia; trait, impl accessors | automaticThis is a syntax sugar proc-macro crate for trait, impl accessors patterns.#Rust #rustlang— Usagi Ito…
主題 Rust の impl な fn の第1引数、つまり: struct S { } impl S { fn f(❤ここ❤) { } } ❤ここ❤ の部分の書き方と、書き方に応じてどのような効果、意図として扱われうるかを整理します。 fn f() fn f(self) fn f(mut self) fn f(&self) fn f(&mut self) す…
https://crates.io/crates/roxmltree/ https://github.com/RazrFalcon/roxmltree/ https://docs.rs/roxmltree/0.13.0/roxmltree/ note: このメモは roxmltree-0.13.0 の時代に書きました。 はじめに知っておくとよいこと 与えられた XML ≈ Document を Node …
結果 test benches::amxml_root ... bench: 40,783 ns/iter (+/- 6,365) test benches::amxml_sec ... bench: 28,487 ns/iter (+/- 1,295) test benches::minidom_root ... bench: 1,942 ns/iter (+/- 73) test benches::minidom_sec ... bench: 2,127 ns/it…
XPath 使いたい需要に対応できる XML パーサーを crates.io で探すと有用そうな crate が2つ見つかりました。簡単な XPath で使い勝手を確認したメモです。 amxml sxd-xpath ( + sxd-document ) 1. amxml cargo add amxml #[cfg(test)] mod tests { /// 共通…
状況 crates.io には執筆時点では複数の XML お取り扱いらしい crate が存在しています: xml-rs 4,013kDL quick-xml 681 kDL xml5ever 183kDL xmlparser 232kDL sxd-document 63kDL strong-xml 0.7kDL trashy-xml 0.7kDL などなど。他にもいくつも登録されて…
症状 WSL2 経由で動作する VSCode の rust-analyzer が一見動作しているように見えて OUTPUT に大量のエラーメッセージ: Assertion failed: We don't expect to receive commands in CodeActions を吐く。発症するとエラーが吐かれる度、作業中やログ監視な…
だいじな事: crate を分割したら、お呼ばれされる側の Cargo.toml で [lib] の crate-type が明示的に rlib を吐かない定義になっていないか確認しよう! 期待動作する例 # crate aaa に依存される側の crate bbb の Cargo.toml # ☆ ↓ src/lib.rs ありの cra…
症状 数日ぶり程度に使用した Arch Linux 環境の rust 処理系で cargo が +nightly を受け付けてくれなくなって困った ( -Z したかった ) rustup toolchain では stable, nightly が installed 状態 原因 rust は rustup を per user で導入して使っていた"…
Node.js と Rust による native code のマーシャリング手法は NEON と node-ffi-napi の2種類が現時点で有力です。マーシャリング部分のコストの特徴を大雑把に掴むため雑なベンチマーキングをしました。 Note: 理論的にはもう1つ N-API を直接リンクして cd…
reddit の Rust コミュニティーに template-rust-backend-with-electron-frontend のリリースについてポストしたところ、主に2つ、 Tauri と NEON について話題になりました。( up-vote たくさんとちょうど使いたかったんだありがとう的なポストも頂きました…
「RustのcdylibをバックエンドにElectronをフロントエンドにする」プロジェクトを3秒くらいでお手軽作れるcargo-generateできるプロジェクトテンプレートを公開しました。 template-rust-backend-with-electron-frontend https://github.com/usagi/template-…
今回のメモの Node.js は: node -v v13.5.0 です。先ずは Node.js 初心者らしく npm i ffi して死にました: npm i ffi ほか多数のエラーを観測し、死んでしまいました。☠ https://www.npmjs.com/package/ffi どんどん使われなくなっているので何か代替に置き…
現時点ではほぼダメです。試した中では唯一 conrod だけ日本語アプリを作る実用に耐えられそうです。 crate 日本語表示 日本語入力 コピペ UI部品の見栄え その他 conrod ○TTF可 ◎自然にできる ◎自然にできる ∞ 作り込み次第 vulkan対応で軽快, GL版だともっ…
こんかい使えるようにする対象物 Rust crates.io gdal https://crates.io/crates/gdal GDAL https://gdal.org/ crate gdal は内部的に元のGDAL(の動的リンクライブラリー)を呼びつけて GeoJSON を読んだりできるラッパータイプのライブラリー。 extern cra…
今回は「はなし」記事です。若干技術的な内容も含まれますが、基本的には随筆のようなものです。 github: https://github.com/usagi/cities_heightfield_from_gsi crate: https://crates.io/crates/cities_heightfield_from_gsi ↑このアプリを Rust で作り直…
// for rust-1.27.2(stable) use std::mem; use std::io::Write; fn main() { { // f64 (primitive) -> Vec< u8 > let f = 1.0f64; let view = &f as *const _ as *const u8; let slice = unsafe { std::slice::from_raw_parts( view, mem::size_of::< f64 >…
終末にちょっとしたツールを作ろうかと思い、もののついでに rust の知識をアップデート…というより再学習して遊ぼうかと思いました。 4年前に遊んだ記憶 rust-0.9 が最後に手元で遊んだ頃の rust だった覚えがある ユーザーとして簡単な何かを作れそうなコ…