Closed3
Rust for rustaceansの勉強メモ: インターフェイスをデザインする
インターフェイス4つの原則
- unsuprizing
- flexible
- obvious
- constrained
これは読むとよい
unsuprizing
標準トレイトは実装するべき
ユーザーはforeign typeのためにforeign traitを実装できない
- Debug derive or debgu_helper on fmt::Formatter
- Send Sunc Unpin
- Clone Default
- PartialEq PartialOrd Hash Eq Ord
- Serializeble Deserializable
新しいトレイトを実装するときは適切なblanket実装を提供したほうがいいかも
&T where T: Trait
&mut T where T: Trait
Box<T> where T: Trait
Wrapper Type
Deref, AsRef, From, Into, Borrow
Flexible
Object Safety
トレイトオブジェクトの必要条件
traitがobject safeならdyn Traitと書ける。
object safetyはpublic APIの一部
object safetyである条件
- 戻り値の型がSelfでない。
- ジェネリックな型引数がない。
Fallible and Blocking Desturctor
Obvious
Documenting
-
painc!
やerror
を返しうるならどんなときに返すのか書こう - クレートやモジュールレベルでend to endレベルの例を書こう
- ドキュメントを組織しよう
type system
new type patternやphotom dataを使おう
※参考
このスクラップは2021/10/24にクローズされました