This is the changelog, summarising changes in each version(some minor changes may be ommited).
Added "rust_1_83"
feature, which turns typewit
functions that use &mut
into const fns.
Added these methods to BoolWitG
:
is_true
is_false
to_true
to_false
unwrap_true
unwrap_false
Relaxed Copy + Clone + Debug
impls of BooleanWitG
to work for any <B> BooleanWitG<B>
, instead of requiring <const B: bool> BoolWitG<Bool<B>>
.
Fixed TypeWitnessTypeArg
impl for BoolWitG
, it was overconstrained in a way that made HasTypeWitness<BoolWitG<T>>
not work as a bound.
Added typewit::const_marker::BoolWitG
enum
Replaced typewit::const_marker::BoolWit
enum with type alias to `BoolWitG``
Added Copy + Clone + Debug
impls to BoolWit
Fixed "adt_const_marker"
crate feature
Deprecated {TypeCmp, TypeNe}::with_any
due to unsoundness: both constructors rely on TypeId::of::<L>() != TypeId::of::<R>()
implying L != R
, which is not true in the general case.
Added "rust_1_65"
feature
Added BaseTypeWitness
trait, which requires "rust_1_61"
feature.
Added MetaBaseTypeWit
enum, which requires "rust_1_61"
feature.
Added these items to type_fn
module:
InjTypeFn
traitRevTypeFn
traitFnRev
type-level functionCallInjFn
type aliasUncallFn
type alias
Added inj_type_fn
macro
Added reexport of these in type_fn
module:
inj_type_fn
macrotype_fn
macro
Added TypeCmp
enum
Added these associated items to TypeEq
:
with_any
constructorto_cmp
methodunmap
methodunproject
method
Added type_ne
macro
Added these associated items to TypeNe
:
with_any
constructorwith_fn
constructorto_cmp
methodflip
methodjoin_left
methodjoin_right
methodmap
methodproject
methodunmap
methodunproject
methodin_mut
methodin_ref
methodin_array
method (requires"rust_1_61"
feature)zip
method (requires"rust_1_61"
feature)zip3
method (requires"rust_1_61"
feature)zip4
method (requires"rust_1_61"
feature)
Removed the need to enable "const_marker"
feature to enable const_marker
module.
Added equals
method to all marker types in const_marker
module.
Deprecated eq
methods of all marker types in const_marker
module.
Added type_constructors
module, which requires "rust_1_65"
and includes these items:
BaseTypeWitnessTc
traitTcTypeCmp
structTcTypeEq
structTcTypeNe
structBaseTypeWitnessReparam
type aliasBaseTypeWitnessToTc
type aliasMapBaseTypeWitness
type aliasTcToBaseTypeWitness
type alias
Added methods
module, which requires "rust_1_65"
and includes these items:
zipping
modulein_array
functionzip2
functionzip3
functionzip4
function
The methods::zipping
submodule (which requires "rust_1_65"
) contains:
Zip2
traitZip3
traitZip4
traitZip2Out
type aliasZip3Out
type aliasZip4Out
type alias
Added type_ne
module, which contains:
- reexport of
TypeNe
- reexport of
type_ne
macro LeftArg
marker typeRightArg
marker type
Added typewit_proc_macros
optional dependency.
Added "proc_macros"
feature, enabled by default, which enables typewit_proc_macros
dependency.
Added polymatch
macro.
Added "adt_const_marker"
feature.
Added BoolWit
in typewit::const_marker
Added these structs in typewit::const_marker
(under the "adt_const_marker"
feature):
Str
(unit struct)
Added these structs in typewit::const_marker::slice
(under the "adt_const_marker"
feature):
BoolSlice
(unit struct)CharSlice
(unit struct)I8Slice
(unit struct)I16Slice
(unit struct)I32Slice
(unit struct)I64Slice
(unit struct)I128Slice
(unit struct)IsizeSlice
(unit struct)StrSlice
(unit struct)U8Slice
(unit struct)U16Slice
(unit struct)U32Slice
(unit struct)U64Slice
(unit struct)U128Slice
(unit struct)UsizeSlice
(unit struct)
Changed "nightly_mut_refs*"
crate feature to enable the "rust_stable"
feature.
Added support for these to simple_type_witness
macro:
- Generic parameters using
< >
syntax - Non-
[ ]
-surroundedwhere
clauses #[cfg(...)]
attributes on variants and generic parameters- Using
__Wit
in constraints. - Defaulted generic parameters (only used for defaulting generic arguments in
MakeTypeWitness
impls)
Added support for #[cfg(...)]
attributes on generic parameters to type_fn
macro.
Added Identity
trait
Added type_fn
macro.
Added "const_marker"
feature, enabled by the default feature.
Added const_marker
module, conditional on "const_marker"
feature, with these items:
Bool
(unit struct)Char
(unit struct)I128
(unit struct)I16
(unit struct)I32
(unit struct)I64
(unit struct)I8
(unit struct)Isize
(unit struct)U128
(unit struct)U16
(unit struct)U32
(unit struct)U64
(unit struct)U8
(unit struct)Usize
(unit struct)
Every type in const_marker
defines an eq
method, and implement Copy + Clone + Debug
.
Added TypeNe
type, with a new_unchecked
constructor function.
TypeNe
implements Clone
, Copy
, Debug
, Eq
, Hash
, Ord
, PartialEq
, PartialOrd
.
Added TypeEq::{in_array, zip, zip3, zip4}
methods
Added typewit::type_fn::FnIdentity
type-level function.
Reduced Minimum Supported Rust Version to 1.57.0
Added "rust_stable"
and "rust_1_61"
features
Added type_fn::Invoke
struct, which implements TypeFn
.
Removed blanket impl of TypeFn
for Fn
(minor breaking change)
Declared TypeEq
struct, with these associated items:
NEW
(associated constant)flip
(method)in_box
(method)in_mut
(method)in_ref
(method)join
(method)map
(method)new
(method)new_unchecked
(method)project
(method)reachability_hint
(method)to_left
(method)to_right
(method)TypeEq
implementsClone
,Copy
,Debug
,Default
,Eq
,Hash
,MakeTypeWitness
,Ord
,PartialEq
,PartialOrd
,TypeWitnessTypeArg
.
Declared type_eq
function.
Declared HasTypeWitness
, MakeTypeWitness
, TypeWitnessTypeArg
traits.
Declared simple_type_witness
macro.
Declared type_fn
module with these items:
TypeFn
traitCallFn
type alias- GBox (structs), this implements
TypeFn
- GRef (structs), this implements
TypeFn
- GRefMut (structs), this implements
TypeFn
Declared these crate features:
alloc
mut_refs
nightly_mut_refs
Set the Minimum Supported Rust Version to 1.61.0