always_equal 1.0.1

A wrapper for types that can't implement Eq
Documentation
# 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.