eq:
値 どうしが等 しいかを判定 するEqtrait を stdlib側 に置 きます。core/mathにある具体的 なeqoverload を、trait経由 で共通的 に使 えるようにします。
- ここでいう
Eqは「等値 かどうか」を返 す capability です。 近似比較 や順序比較 は別 の trait / helper で扱 います。
- 各 impl に
依存 します。ここで提供 する基本型 impl は O(1) です。
Eq:
Eq::eq x yの形 で、2つの値 が等 しいかを判定 できるようにします。
型 ごとの意味論 に応 じて impl する必要 があります。利用者 はStringifyと違 い、「表示 が同 じ」ことと「等値 」を混同 しないでください。
eq_by_trait: trait
Eqtrait を generic bound経由 で利用 する入口 を提供 します。
TEST
#entry main
#target core
#import "core/test" as *
#import "core/traits/eq" as *
fn main <()*>i32> ():
assert eq_by_trait 10 10;
assert not eq_by_trait 10 11;
0Eq::eqをそのまま呼 び出 します。
- impl に
依存 します。
ne_by_trait: trait
Eqだけを用 いて「等 しくない」ことを判定 します。
Eq::eqの結果 をnotで反転 します。
- impl に
依存 します。