1.
はじめに
2.
事前知識
2.1.
strong typedef
2.2.
スライス型
2.3.
2種類の独自スライス型
3.
スライス型の定義
3.1.
struct
3.2.
derive
3.3.
#[repr(transparent)]
4.
所有権付きの型の定義
5.
スライス型のメソッド定義
5.1.
値の作成
5.2.
元の型へのキャスト
6.
所有権付きの型のメソッド定義
6.1.
追加の制約なしの場合
6.2.
追加の制約付き場合
7.
トレイト実装
7.1.
Borrow, BorrowMut, ToOwned
7.2.
From, TryFrom
7.2.1.
追加の制約なしでの値の作成
7.2.2.
追加の制約付きでの値の作成
7.2.3.
内部の型を取り出す
7.2.4.
所有権の有無の変換
7.2.5.
スマートポインタとの変換
7.2.6.
Cow との変換
7.3.
FromStr
7.4.
Deref, DerefMut
7.5.
AsRef, AsMut
7.6.
Debug, Display
7.7.
Default
7.8.
PartialEq, PartialOrd
8.
nostd, alloc 対応
8.1.
どう対応すべきか
9.
serde 対応
9.1.
Cargo.toml
9.2.
lib.rs
9.3.
serde::Serialize の実装
9.4.
serde::Deserialize の実装
9.4.1.
所有権なしのスライス型
9.4.2.
所有権付きの型
10.
型パラメータ対応
11.
附録
Light (default)
Rust
Coal
Navy
Ayu
Rustで独自のスライス型を定義する本
所有権付きの型のメソッド定義
本節では所有権付きの型に対して基本的なメソッドを定義する例を紹介する。 スライス型と違って所有権のある値は素朴に扱えるため、そこまで非自明なコードは表れない。