- Silenced a
dead_code
warning for thevalue
field of generated wrappers.
RefCell<T>
now neutralizes to InertRefCell<T>
, whose borrow
method will
panic if the RefCell<T>
was borrowed mutably prior to being neutralized.
- Made more types neutralize to
Inert<T>
to access non-NeutralizeUnsafe
T
s. - Removed
InertPanicInfo
.
The most notable change in this release is that impls of NeutralizeUnsafe
for
things like (A, B)
don't require A
to be NeutralizeUnsafe
itself anymore,
which means that (A, B)
can be neutralised even if some of its fields aren't.
Furthermore, if those fields aren't NeutralizeUnsafe
but are Sync
, users
can still safely access their contents through Inert::get_ref
.
- Made the getters be
#[inline]
, thanks Rémy Rakić! - Fixed a span which would make the code not build with
#[deny(unsafe_code)]
.
- Decorated the inert getters with
#[allow(unsafe_code)]
.
- Introduced
inert::Neutralized<T>
. - Implemented
#[inert::neutralize(as vis? unsafe InertFoo)]
.
- Implemented
#[inert::neutralize(as Self)]
.
- Tweaked some documentation.
- Added a test based on a tree of
RefCell<T>
values.
Let's try to document a bit what the hell we are doing here. 👀
- Renamed
Neutralize
toNeutralizeUnsafe
. - Renamed
Inert::from_ref
toInert::new_unchecked
.
- Added some documentation.
- Implemented
Eq
,Ord
,Debug
andDisplay
forInert<T>
. - Implemented
NeutralizeUnsafe
forcore::cell::Cell<T>
. - Implemented
NeutralizeUnsafe
forstd::sync::Weak<T>
. - Introduced safe ways to neutralize with
Inert::new
andInert::new_mut
.
Initial release! No documentation, no tests, only 🥖