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で独自のスライス型を定義する本
serde::Deserialize
の実装
残念ながら
Deserialize
の実装は面倒である。