2个版本

0.1.1 2020年11月18日
0.1.0 2020年11月18日

#870 in 数学

MIT许可证

10KB
162

ApproxEq

Crate Documentation Current Crates.io Version

ApproxEq特性方便定义类型之间的近似关系,并为原始数值类型提供了已声明的任意实现!

轻松为您的类型定义实现

use approxeq::ApproxEq;

enum BookFormat {
    Paperback,
    Hardback,
    Ebook,
}

struct Book {
    isbn: i32,
    format: BookFormat,
}

impl ApproxEq for Book {
    // Two books are approximately equal when their respective ISBNs parity matches
    fn aeq(&self, &other: Self) -> bool {
        self.isbn % 2 == other.isbn %2
    }
}

fn main() {
    let b1 = Book { isbn: 3, format: Paperback }
    let b2 = Book { isbn: 5, format: Hardback }
    let b3 = Book { isbn: 10, format: Ebook }

    assert!(b1.aeq(&b2));
    assert!(b1.nae(&b3));
}

贡献

欢迎所有和任何的PR。

致谢

ApproxEq crate可以称为一个玩笑。

大部分文档是rust-lang的std::cmp::PartialEq特性文档的改编。

无运行时依赖