Rust

Option<Self> を返す trait を実装したかったがRustコンパイラ君が賢すぎただけの日記

trait OptionalConstructor { fn optional_new() -> Option<Self>; // ^^^^^^^^^^^^ doesn't have a size known at compile-time // Option<Self> where Self: Sized; } Compiling playground v0.0.1 (/playground) error[E0277]: the size for values of type `Self` ca</self></self>…

Rust: Fully Qualified Syntax について簡単なメモ

2021/3/31 更新 高度なトレイト - The Rust Programming Language 日本語版 を知らなかった、これを読んでください 経緯 数時間前に「僕はチンパンジーだからでパーサコンビネータ使うの難しいな〜、LR(1)パーサを手書きするのが一番早いですよ〜」と同僚と…

また serde-rs/json にPR投げてmergeされたので Value::pointer / Iterator::try_fold のおすすめメソッド2選についてメモ

また? 前回のです serde-rs/json にPR投げてmergeされた - KRAZY感情STYLE 今回のPR github.com Value::pointer とは pointer を使わずに obj[x][y] を取ってくる例を考えてみます use serde_json::{Value, json}; let obj = json!({"x": {"y": 1}}); let v…

std::sync::mpsc::channelで少しハマったのでメモ

std::sync::mpsc - Rustの挙動についてちょっと知見を持ったので綴っていく。 やりたいこと めっちゃ重たいタスクがN個あって、それぞれにスレッドを作ってmpsc::channel経由でメインスレッドに値を返してもらう例を考える。 use std::thread; use std::sync…