v0.22.0
Added
New features & flags
- new features for:
- code:
code
,error
,_unroll
,_unroll_128
,_unroll_256
,_unroll_512
,_unroll_1024
,_unroll_2048
. - data:
hash
. - doc:
_docsrs[_stable]_nodep
. - num:
alg
,geom
,prim
,cast
,join
,split
,unit
,wave
,_cmp_f16
,_cmp_f128
,_float_f16
,_float_f128
. - media
media
,safe_media
,audio
,color
,draw
,font
,image
,midi
. - sys:
time
,linux
,dep_linux
,unsafe_syscall
. - text:
ascii
,fmt
,str
,_char7
,_char8
,_char16
. - nightly:
nightly_alloc
,nightly_autodiff
,nightly_bigint
,nightly_float
,nightly_stable_next1
,nightly_stable_next2
,nightly_stable_later
. - safety:
safe_audio
,safe_color
,safe_draw
,safe_ffi
,safe_font
,safe_image
,safe_io
,safe_layout
,safe_ui
,safest
,unsafe_async
. - ui:
ui
,layout
. - other:
alloc_deps
,lang
,windows
,__force_miri_dst
.
- code:
- new cfg flags:
cargo_primary_package
,*·
,_*··
.
New items
- new structs:
Interval
,Pnm
.- new namespaces:
Alloc
,Arch
,ByteSearch
,Char
,Env
,Mem
,Ptr
,Str
. - new standalone error types:
FailedErrorConversion
,DataNotEnough
,NotImplemented
,NotSupported
,ElementNotFound
,InvalidAxisLength
,KeyAlreadyExists
,MismatchedCapacity
,MismatchedDimensions
,MismatchedIndices
,NodeEmpty
,NodeLinkNotSet
,NodeLinkNotUnique
,NotEnoughElements
,NotEnoughSpace
,IndexOutOfBounds
,DataOverflow
,PartiallyAdded
,InvalidChar
,InvalidUtf8
,SystemTimeError
. - new composite error types:
NotAvailable
,DataNotEnough
,MismatchedBounds
,PartialSpace
. False
,True
,UnitBi
,UnitSi
.HasherPengy
.Lgc16
.TimeSplit
.TypeResource
.WaveletHaar
,WaveletUnitVec
.
- new aliases:
AllocMapFx
,AllocSetFx
,FmtResult
,NoTime
.MediaResult
,AudioResult
,ColorResult
,DrawResult
,FontResult
,ImageResult
.UiResult
,LayoutResult
.- re-exported primitives:
char
. TimeSplitYearNano
,TimeSplitYearDay
,TimeSplitYearSec
,TimeSplitHourSec
,TimeSplitHourNano
,TimeSplitMilliNano
.
- new enums:
CompressionMode
,EncodingMode
,WaveletUnitRole
.AllError
,AllErrorKind
,MediaError
,ColorError
,AudioError
,DrawError
,FontError
,ImageError
,UiError
,LayoutError
.
- new enum variants:
DataError::ElementNotFound
.
- new traits:
ColorBase
,ExtCellOption
,ExtError
,ExtOptRes
,ExtPath
,ExtThread
,MemPod
,TypeResourced
,Unit
.WaveletCompressionVec
,WaveletTransformVec
.
- new associated methods and constants for:
Array
:from_fn
,contains_[from|to|between]
,as_bare_mut_slice
,get[_mut]
.Array
, when storingOption<T>
.Array2d
:cap_col
,cap_row
,cap_major
,cap_minor
,num_major
,num_minor
.BareBox
.ExtAny
methodtype_id
.Float
andExtFloat
:FRAC_1_SQRT_2PI
.eval_poly
to evaluate polynomials.- for calculus:
derivative
,integrate
,partial_derivative_[x|y]
.
Float
andExtFloatConst
consts:LOW_MARGIN
,MEDIUM_MARGIN
,HIGH_MARGIN
.Graph
methods:edge_exists_unchecked
,edge_remove
.NonValue*
:is_max
,is_min
,[checked|strict|saturating|wrapping]_[add|sub]
.Slice
:eq
,from_mut
,from_ref
,from_raw_parts
,from_raw_parts_mut
,range[_mut][_checked]
,range_from[_mut][_checked]
,range_to[_mut][_checked]
,take_first[_mut][_checked]
,take_last[_mut][_checked]
,take_omit_last[_mut][_checked]
.UnicodeScalar
&char*
types:MIN
.
- new macros:
capture_first!
,capture_last!
,capture_tail_tuple!
,const_bool!
,field_of!
,id_seq!
,impl_non_value!
,impl_trait!
,include_from!
,mod_from!
,str!
,type_marker!
,type_resource!
,unroll
.- private:
doc_availability!
,impl_error
,EMOJI_*
,TAG_*
.
- new vendored items
- structs:
CacheAlign
,ConstList
,FatPtr
,IdPinBox
,IdPin
,VecChunk
. - macros:
cfg_if!
,const_assert!
. - traits:
ConstBool
.
- structs:
- new optional dependencies:
allocator-api2
,bumpalo
,crossterm
,jiff
,js-sys
,kira
,midir
,nc
,pyo3
,rayon
,regex-lite
,rkyv
,rodio
,rustix
,safe_arch
,serde
,stringzilla
,symphonia
,sysinfo
,tinyaudio
,tokio
,tracing
,wasm-bindgen
,web-sys
,winnow
.
- new re-exported:
- items from:
alloc::alloc
,core::{cell, num, ops, result}
,std::{backtrace, fmt, path}
. - fns:
array_from_fn
,array_from_mut
,array_from_ref
. - macros:
assert_unchecked!
,autodiff
,compile_error!
,concat
,enumint!
,format!
,format_args!
,option_env!
,stringify
,thread_local!
,write!
,writeln!
.- wrapped:
env!
, asenv_!
,vec!
asvec_!
.
- structs:
NonZero
,Saturating
,Wrapping
,OsStr
,OsString
.HashMapEntry
andBTreeMapEntry
.HashMap
andBTreeMap
fromstd
ifhashbrown
is disabled.FromStr
,IterChars
.
- crate items from multiple related modules, like errors and strings.
- items from:
- new modules:
num::alg
,sys::sound
,media::{audio, color, draw, font, image, layout}
,phys
,ui
. - new
sys::os::linux
module and examplelinux
. - new
NonValue*
constantsMAX
,MIN
. - new lints.
Examples, utilities, manifest, files
- new examples:
id_pin
.id_seq
and typeExampleIdSeqUsize
.enumint
and typeExampleEnumIntU8
.
- manifest:
- add
patches
section. - add table of contents.
- add profiles:
dev-lto
,release-lto
.
- add
- new
.clippy.toml
configuration file. - new github workflows:
get_errno.yml
,get_syscall.yml
. - new scripts in
utils/
:cargo-native
,manifest.sh
,release_dates.rs
,get_errno.sh
,get_syscall.sh
,docs_coverage.sh
,docs_items.rs
. - new convenience fn:
manifest_dir
inbuild::utils
. - hide
no_inline
items re-exports. - new file
DOCS/VENDORED_rustdoc.md
- show docs for the build scripts (private).
- add system of internal structural modules.
- rustdoc html header:
- load katexextensions
mchem
andcopy-tex
. - trust
\href
commands. - move to
config/
.
- load katexextensions
- new directory
config/
.- put here a copy of
Cargo.toml::dep_all
.
- put here a copy of
Removed
- remove custom no_std
Error
definition. - remove items:
NeverOk
,NeverErr
,HasherFx32
,HasherFx64
. - remove types:
char24
,char32
,InRange*
,NonRange*
,HourMilliSplit
,SecNanoSplit
,YearSecSplit
. - remove aliases of text-related types.
- remove features:
_default
,_max
,_non_value_*
,_in_range
,num_geom
,unsafe_const
. - remove standalone
char_*
fns (namespaced inChar
). - remove standalone fn
hash_pengy
(made part ofHasherPengy
). - remove most re-exported fns from
std::mem
(namespaced inMem
). - remove re-exported fns from
std::ptr
(namespaced inPtr
). - remove convenience fn:
out_dir
from the build script. - disable
Graph*
,Node*
, andNodeIndex*
types. - remove
Float::const_abs
.
Changed
Misc.
- bump rust version to 1.83.0.
- start using
core::error::Error
.
Features & flags
- rename features:
unsafe_dyn
tounsafe_layout
.nightly_stabilized
tonightly_stable
._[max|min]_docs
to_docs_[max|min]
,_docsrs_max
to_docsrs
.dep_linux
tolinux_deps
,dep_text
totext_deps
,dep_work
towork_deps
.
- rename compilation flags:
_some_*
to_*··
._int_i_·
to_int_i··
,_int_u_·
to_int_u··
,_string_u_·
to_string_u··
.
- modify how features
_non_value_u8
,_non_value_u16
are enabled forChar*
types. - feature gate methods returning
DataResult
in:Array
,Array2d
,ArrayUninit
,Bitwise
,BitOps
. - show build env variables if
__dbg
feature is enabled.
Items
- structs:
- make
data::dst
types useMemPod
instead ofbytemuck::Pod
. - rename:
Also
toTap
,Apply
toChain
.COLOR
toColor
.Color
toColorBase
.GcdExt
toGcdResult
.AllocMap
toHashMap
,AllocSet
toHashSet
.AllocOrdMap
toBTreeMap
,AllocOrdSet
toBTreeSet
.AllocPrioQueue
toBinaryHeap
.AllocLinkedList
toLinkedList
.Dst*
types const-genericN
toCAP
.sys::io
items by prefixing them withIo
.Egc
toGrapheme
,EgcString
toGraphemeString
.EgcNonul
toGraphemeNonul
,EgcU8
toGraphemeU8
.UninitArray
toArrayUninit
.
- make
Compare
- make
Compare<usize>
always compiled. - implement for
f16
and128
.
- make
- functions and constant:
Graph::edge_exists
no loger panics.- rename:
Array::len
tocapacity
.mem_*
prefixed fns asMem
methods.ptr_*
prefixed fns asPtr
methods.
- make const most of the
Angle
methods. - make const all the
Float
methods that were previously feature-gated, and add:
eval_poly
,factorial
,mul_add_fallback
,scale
,lerp
,ln*_series
,log[10|2]_series
. - make const versions of the following
Float
methods:
clamp_nan
,fisr
,hypot_fisr
,max_nan
,min_nan
,cbrt_nr
,sqrt_nr
,hypot_nr
,rem_euclid
,*_series
,*_series_terms*
. - add additional const methods:
const_floor
,const_ceil
,const_round
,const_round_ties_away
,const_round_ties_even
,const_round_ties_odd
,const_trunc
,const_fract
,const_split
,const_signum
,const_copysign
,const_clamp
,const_min
,const_max
,const_powi
. - improve precision of
ExtFloatConst
constants from 35 to 80 decimals. - remove all
inline
attributes for most functions
- macros:
- update
cdbg!
to support a single@
. - update
reexport!
to support receiving an optional tag argument. - rename
mem_size_of_expr!
tosize_of_expr!
. - rename re-wrapped macros to avoid prelude collision when glob importing:
env
→env_
,panic
→panic_
,vec
→vec_
.
- update
- modules:
- make modules public:
data::serde
,sys::arch
,text::fmt
. - rename:
num::geom::algebra
tonum::algebra::linear
.exec
towork
, and related features.mem
tosys::mem
.sys::ffi
to `ffi.time
tophys::time
._alloc
&_std
inside_dep
._dep::_core
to_core
._deps
to_dep
._lib*
by removing thelib
prefix.
- make modules public:
- traits:
- impl
Num
for niche types.
- impl
- dependencies:
- make
bytemuck
an optional dependency.
- make
Examples, utilities, manifest, files
- rename
DOCS/DERIVED.md
toVENDORED.md
. - rename the
tools
directory toutils
. - simplify aliases for
cargo-asm
. - refactor the build script.
Fixed
- reduce noise from required features on methods from
Divisor
,Int
,Float
,Frac
. - make
utils/check.rs
not compile withall_dep
when cross-compiling certain arches. - hide public macros from the crate root when
cfg(cargo_primary_package)
. - fix build script utility call paths, add missing
_tuple*
features. - fix
bitfield
andenumset
being able to be called from the root. - several fixes for linux syscalls on multiple architectures.
- simplify system of documentable & testable examples.
- fix reexported fns:
fmt_format
,fmt_write
. - fix
f64::NR_TOLERANCE
from 1e-14 to 1e-12. - fix a few tests and examples.
- fix
RcWeak
re-export. - fix
HashSetFx
alias.
Full Changelog: v0.21.2...v0.22.0