📝 docs: update README for bottom crates
parent
67975d9b11
commit
27b75fe424
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "always_equal"
|
||||
version = "1.0.0"
|
||||
version = "1.0.1"
|
||||
authors = ["Trish"]
|
||||
edition = "2018"
|
||||
license = "AGPL-3.0"
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
# Always-Equal
|
||||
|
||||
Always-Equal lets you wrap `PartialEq` implementations around
|
||||
things that cannot be compared, like a `File`.
|
||||
|
||||
To use Always-Equal, put these two conditional `use`
|
||||
statements in your module:
|
||||
|
||||
```
|
||||
#[cfg (test)]
|
||||
use always_equal::test::AlwaysEqual;
|
||||
|
||||
#[cfg (not (test))]
|
||||
use always_equal::prod::AlwaysEqual;
|
||||
```
|
||||
|
||||
Then wrap `AlwaysEqual` around anything that needs
|
||||
PartialEq but can't possibly implement it:
|
||||
|
||||
```
|
||||
use std::fs::File;
|
||||
use always_equal::test::AlwaysEqual;
|
||||
|
||||
#[derive (Debug, PartialEq)]
|
||||
pub struct MyStruct {
|
||||
pub b: bool,
|
||||
pub i: i64,
|
||||
pub file: AlwaysEqual <File>,
|
||||
}
|
||||
|
||||
// In test code, you can create an empty wrapper using
|
||||
// `testing_blank`, which is equal to any other wrapper:
|
||||
|
||||
let expected = MyStruct {
|
||||
b: true,
|
||||
i: 0,
|
||||
file: AlwaysEqual::testing_blank (),
|
||||
};
|
||||
|
||||
# let my_file = File::open ("Cargo.toml").unwrap ();
|
||||
let actual = MyStruct {
|
||||
b: true,
|
||||
i: 0,
|
||||
file: my_file.into (),
|
||||
};
|
||||
|
||||
assert_eq! (expected, actual);
|
||||
```
|
||||
|
||||
This is implemented with `Option` in test mode.
|
||||
In production mode, wrappers are never equal to any other
|
||||
wrapper, and the `Option` is removed so that
|
||||
`sizeof::<AlwaysEqual <T>> () == sizeof::<T>`
|
||||
_should_ be true.
|
|
@ -0,0 +1,4 @@
|
|||
# PTTH core
|
||||
|
||||
Common code used by both `ptth_relay` and `ptth_server`.
|
||||
Most users will want to use those binary crates directly.
|
|
@ -1,6 +1,7 @@
|
|||
//! # PTTH Core
|
||||
//!
|
||||
//! Common code used by both `ptth_relay` and `ptth_server`.
|
||||
//! Most users will want to use those binary crates directly.
|
||||
|
||||
#![warn (clippy::pedantic)]
|
||||
|
||||
|
|
Loading…
Reference in New Issue