世界を動かす技術を、日本語で。

Rust型システムのクリック可能なビジュアルガイド

概要

RustCurious.com は、Rustの型システムを視覚的に解説するガイド。 lang_items に焦点を当て、Rustに組み込まれた型やトレイトを説明。 VecString などのライブラリ由来の型は対象外。 Rustのコア設計は no_std 環境や組み込み開発にも対応。 Ben Williamson による2025年無料Rustコースも案内。

RustCurious.comの特徴

  • Rustの型システム をボックス図で直感的に解説
  • lang_items (組み込み型・トレイト)に特化した説明
  • 構造体(struct) のみで構成されるVec, String, HashMapなどは非掲載
  • コア型とトレイトの 言語レベルでの役割 を明確化
  • ライブラリコードのみ で構築可能な型との違いを可視化

lang_itemsの重要性

  • 特定の構文機能 をRust言語に直接組み込むための型・トレイト群
  • 例: CopySizedFn などのトレイト
  • 標準ライブラリに依存しない コア機能の実装基盤
  • no_std 環境や組み込みファームウェア開発での活用
  • 動的ヒープ未使用 のシステムレベル開発に適応

Rustのコア設計とno_std対応

  • プラットフォーム非依存 なコア設計
  • 標準ライブラリを使わない (no_std)crateの開発をサポート
  • 組み込みシステム制約の厳しい環境 向けのRust活用
  • 動的メモリ確保なし でのプログラム構築を可能に
  • 組み込み用途システムレベル開発 でのRustの強みを発揮

RustCurious.comの活用方法

  • Rustの型システム の全体像を視覚的に把握
  • 言語組み込み型・トレイト の理解を深める
  • ライブラリ設計低レベル開発 の参考資料
  • Rust学習者組み込み開発者 向けのナビゲーション
  • RustCurious.com でクリックによる詳細情報の参照が可能

無料Rustコース案内

  • Ben Williamson による2025年無料Rustコース
  • @RustCurious アカウントで最新情報発信
  • 初学者 から 中級者 まで幅広く対応
  • RustCurious.com と連携した実践的学習体験
  • コミュニティディスカッション への参加推奨

Hackerたちの意見

ちょっとしたことなんだけど、整数の値の範囲が含まれてるのがめっちゃ好き!どっちが一つ深くいけるか、いつも忘れちゃうんだよね(「[-128から127]なのか、[-127から128]なのか」)。後で参考にするためにブックマークしとく!

いつもマイナスだよね。0xFFFF... には二の補数がないし、最上位ビットが立ってる。

それに苦しむなんて想像できないな。二の補数表現を理解するのはプログラミングの基本スキルだし。バイト値が128って?それは16進数で何になるの?

ちょっとしたメモだけど、符号付き整数が対称的だったらいいなと思うことがある。i8は[-127から127]の範囲を表し、0xFFがNaNを表す感じ。計算できない操作(ゼロでの割り算、オーバーフロー、別のNaNとの演算など)はすべてNaNになるっていう。さらに対称性を持たせるために、符号付き整数でも同じことができるかも。手動でそんな型をエンコードすることは可能だけど、CPUがその操作をネイティブにサポートしてないから、効率的ではないよね。

モバイルで左から右にスクロールするのがすごく好き!折りたたまれるんじゃなくて。

よく使うリソースをもう一つ追加するね: https://cheats.rs/ 特に気に入ってるのは、データ構造のライフタイム [1] とメモリレイアウト [2] をグラフィカルに表現してるところ。APIリファレンスと同じくらい貴重だよ。他のドキュメントにも入れてほしいな。 [1] https://cheats.rs/#memory-lifetimes [2] https://cheats.rs/#memory-layout

実際にはそんなに多くないよね!元素表みたいな感じがする。

なぜPhantomDataはunsafeサポートグループにいるの?

明らかに他の用途にも使えるけど、基本的にはunsafeサポートのために設計されてるんだよね(ポインタを通じて値を所有するunsafeな型をdropckが理解できるように)。詳しくは https://doc.rust-lang.org/nomicon/phantom-data.html で見てみて。

すごくいいね!注目してくれてありがとう。それに、どれだけ同意してるかを示すために - https://news.ycombinator.com/item?id=45140572

本当に素晴らしくて簡潔なプレゼンテーションだね!