Skip to content

Releases: andamira/devela

v0.22.1

13 Jan 12:37
Compare
Choose a tag to compare
  • fix docs compilation.

Full Changelog: v0.22.0...v0.22.1

v0.22.0

13 Jan 12:25
Compare
Choose a tag to compare

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.
  • 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 storing Option<T>.
    • Array2d: cap_col, cap_row, cap_major, cap_minor, num_major, num_minor.
    • BareBox.
    • ExtAny method type_id.
    • Float and ExtFloat:
      • FRAC_1_SQRT_2PI.
      • eval_poly to evaluate polynomials.
      • for calculus: derivative, integrate, partial_derivative_[x|y].
    • Float and ExtFloatConst 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.
  • 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!, as env_!, vec! as vec_!.
    • structs:
      • NonZero, Saturating, Wrapping, OsStr, OsString.
      • HashMapEntry and BTreeMapEntry.
      • HashMap and BTreeMap from std if hashbrown is disabled.
      • FromStr, IterChars.
    • crate items from multiple related modules, like errors and strings.
  • new modules: num::alg, sys::sound, media::{audio, color, draw, font, image, layout}, phys, ui.
  • new sys::os::linux module and example linux.
  • new NonValue* constants MAX, MIN.
  • new lints.

Examples, utilities, manifest, files

  • new examples:
    • id_pin.
    • id_seq and type ExampleIdSeqUsize.
    • enumint and type ExampleEnumIntU8.
  • manifest:
    • add patches section.
    • add table of contents.
    • add profiles: dev-lto, release-lto.
  • 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 in build::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 and copy-tex.
    • trust \href commands.
    • move to config/.
  • new directory config/.
    • put here a copy of Cargo.toml::dep_all.

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 in Char).
  • remove standalone fn hash_pengy (made part of HasherPengy).
  • remove most re-exported fns from std::mem (namespaced in Mem).
  • remove re-exported fns from std::ptr (namespaced in Ptr).
  • remove convenience fn: out_dir from the build script.
  • disable Graph*, Node*, and NodeIndex* 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 to unsafe_layout.
    • nightly_stabilized to nightly_stable.
    • _[max|min]_docs to _docs_[max|min], _docsrs_max to _docsrs.
    • dep_linux to linux_deps, dep_text to text_deps, dep_work to work_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 for Char* 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 use MemPod instead of bytemuck::Pod.
    • rename:
      • Also to Tap, Apply to Chain.
      • COLOR to Color.
      • Color to ColorBase.
      • GcdExt to GcdResult.
      • AllocMap to HashMap, AllocSet to HashSet.
      • AllocOrdMap to BTreeMap, AllocOrdSet to BTreeSet.
      • AllocPrioQueue to BinaryHeap.
      • AllocLinkedList to LinkedList.
      • Dst* types const-generic N to CAP.
      • sys::io items by prefixing them with Io.
      • Egc to Grapheme, EgcString to GraphemeString.
      • EgcNonul to GraphemeNonul, EgcU8 to GraphemeU8.
      • UninitArray to ArrayUninit.
  • Compare
    • make Compare<usize> always compiled.
    • implement for f16 and 128.
  • functions and constant:
    • Graph::edge_exists no loger panics.
    • rename:
      • Array::len to capacity.
      • mem_* prefixed fns as Mem methods.
      • ptr_* prefixed fns as Ptr 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! to `size_of_...
Read more

v0.21.2

08 Aug 23:20
Compare
Choose a tag to compare

Added

  • add convenience fns: out_dir and out_dir_path to the build script.
  • add new build::utils module.

Changed

  • move build codegen output from /build/out/ to {OUT_DIR}/build/.
  • show debug information about OUT_DIR and the code-generated files.
  • move println to the utils module.
  • update .gitignore.

Fixed

  • this should fix compilation in docs.rs.

Full Changelog: v0.21.1...v0.21.2

v0.21.1

08 Aug 21:54
Compare
Choose a tag to compare

Changed

  • rename build script's construct folder to build.
  • update .gitignore.

Fixed

  • include build folder.
  • fix docs.

Full Changelog: v0.21.0...v0.21.1

v0.21.0

08 Aug 20:48
Compare
Choose a tag to compare

Added

  • add features: num_geom, num_float, num_int, num_rand, sys, safe_sys, unsafe_thread.
  • add features: _num_all, _float_all, _float_f[32|64], _int_all, _int_[iu][all|8|16|32|64|128|size].
  • add features: _bit_all, _bit_[iu][8|16|32|64|128|size].
  • add features: _ascii_all, _ascii_u[8|16|32|64|128|size].
  • add features: _non_value_all, _non_value_[iu][8|16|32|64|128|size].
  • add features: _non_range_all, _non_range_[iu][8|16|32|64|128|size].
  • add features: _range_all, _non_range_[iu][8|16|32|64|128|size].
  • add features: _sort_all, _sort_[iu][8|16|32|64|128|size].
  • add features: _cmp_all, _cmp_[iu][8|16|32|64|128|size].
  • add features: _default, _min_docs, _max_docs, _max, _docsrs_stable,__dbg, __no_test nightly_stabilized.
  • add features: _node_all, _node_u[8|16|32|64|128|size].
  • add compilation flags for reflection purposes, named _some_*.
  • enable doc_notable_trait unstable feature with nightly_doc.
  • add traits: ExtFuture, ExtFloatConst, ExtLog, NumVector.
  • add functions: future_block, hash_pengy.
  • add type: Prompt.
  • add type: Pinned.
  • add type: Timecode.
  • add types: NodeU*, EdgeU* GraphU*.
  • add types: LoggerConfig, LoggerPrint, Logging.
  • add types: Divisor, GcdExt, ValueQuant.
  • add types: Extent, Extent2d, Extent3d.
  • add types: Angle, AngleDirection, AngleKind
  • add types: Vector, Vector2d, Vector3d, VecVector.
  • add types: Point, Point2d, Point3d, Points, VecPoints.
  • add types: HasherFnv, HasherFx, HasherFx32, HasherFx64, HasherBuildFnv, HasherBuildFx.
  • add types: TupleIter, TupleIterRef, TupleIterMut, TupleElement, TupleElementRef, TupleElementMut.
  • add ByteSized constants: PTR_BITS, LITTLE_ENDIAN, BIG_ENDIAN.
  • add unsigned gcd_ext and gcd_ext_euc methods to Int.
  • add Floating and ExtFloat method: neg_abs.
  • add *_assign methods to Num and NumRef.
  • add NumError variant: NoInverse.
  • add DataError variants: NodeLinkNotSet, NodeLinkNotUnique.
  • add new arms to array_init: init, init_heap.
  • add methods to BareBox: as_ref.
  • add methods to Array: as_bare_slice.
  • add methods to Int: midpoint, modulo*.
  • add methods to Int, NumInt, NumRefInt: midpoint.
  • add methods to ExtAny: downcast_ref, downcast_mut.
  • add methods to Tuple:: nth_ref, nth_mut, into_iter, iter_ref, iter_mut.
  • add methods to Cast and PrimitiveCast: wrapping_cast_*, for [iu]size_[up|down].
  • re-export more items from: std::io, core::ptr.
  • re-export: String, ToString, Rc, RcWeak.
  • add build script for debugging purposes.
  • add lints table in manifest.

Removed

  • remove features: num_all, ui, ui_all, num_float, num_int, num_niche_impls, num_niche_range, result, safe_result, fig, safe_fig, io, io_safe, os, os_safe, rend, safe_rend, safe_ui, safe_ui_term.
  • remove dependencies: either, crossterm, miniquad.
  • remove deprecated ident_total_count macro.
  • remove repr(C) attribute from niche types.
  • remove Mem trait bound from ByteSized.
  • remove gfx module.

Changed

  • bump rust version to 1.80.1.
  • move result module inside code.
  • move io moule and os submodules to sys.
  • move rustdoc-header.html file to /DOCS/.
  • move _deps::{code, alloc, std} to ::{_libcore, _liballoc, _libstd}.
  • rename Range to InRange.
  • rename Biting to Bitwise.
  • rename Mem trait to ExtMem.
  • rename Text trait to StrOwn.
  • rename _docs module to _info.
  • rename ExtTuple trait to Tuple.
  • rename copy function to io_copy.
  • rename StringEgc to EgcString.
  • rename NonSpecific* to NonValue*.
  • rename mem::BitSize to mem::BitSized.
  • rename mem::ByteSize to mem::ByteSized.
  • rename NonEdge* aliases to NonExtreme*.
  • rename ByteSized::PTR_SIZE constant to PTR_BYTES.
  • rename os module to sys, make submodules private.
  • rename work module to exec, make submodules private.
  • rename Floating wrapper to Float and make it own self.
  • rename is_aarch64_feature_detected to detect_aarch64.
  • rename is_x86_feature_detected to detect_x86.
  • rename DataError variant: EmptyNode to NodeEmpty.
  • rename private feature _exclude_example to __excluded.
  • rename methods: into_array_const to into_array_copy, into_inner_const to into_inner_copy, from_array_const to from_array_copy, as_array_const to as_array_copy, as_tuple_const to as_tuple_copy.
  • improve cdbg, allow to customize the location path and print fmt.
  • improve enumset, allow to specify the visibility and attributes of the set.
  • make Compare methods: pmin, pmax and pclamp return Option.
  • change TaskWakerNoop struct into task_waker_noop fn.
  • add more consts to Float and ExtFloat.
  • add the ?Sized trait bound for ExtAny auto-impls.
  • change From<float> for Sign to return the zero sign.
  • change default Tuple arity to 12.
  • change tuple capability features to: _tuple_arity_24, _tuple_arity_36, _tuple_arity_48, _tuple_arity_60, _tuple_arity_72, _tuple_arity_96.
  • add bounds for color_gamma_* functions.
  • make some methods const: Slice::<u8>::trim_leading_bytes, StringU*::from_bytes_n[left|right], Timecode::split_nanos_u[32|64].
  • make some methods optionally const: Slice::{lsplit, msplit_[left|right]}, Ascii::digits_str, StringU*::from_bytes_n[left|right][_unchecked].
  • feature-gate Compare impls for primitives.
  • feature-gate StackU* method own_resize_default_truncate.
  • feature-gate Float methods: clamp_total, max_total, min_total.
  • feature-gate ExtFloat methods: clamp_total, max_total, min_total.
  • make optionally const Int methods: is_prime, prime_nth, prime_pi,
  • move the enabling of all module's sub-features to the root module feature.
  • update CI actions/checkout@v3 -> v4.
  • update devela_macros.

Fixed

  • fix exec re-exports.
  • fix Bitsized impl for niche types.
  • fix feature-gating of Compare methods: is_normal, is_subnormal.
  • make _info/examples parseable by rustfmt.
  • add missing NumInt sqrt implementations.
  • make no-std io memrchr function private.

Full Changelog: v0.20.0...v0.21.0

v0.20.0

12 Mar 10:21
Compare
Choose a tag to compare

Added

  • add traits: NumToStr, ConstDefault, DataQueue, DataDeque, DataStack, DataDesta, ExtTuple, ExtArray.
  • add types: Destaque, DestaqueIter, Stack, StackIter, Mismatch, Own, GfxError, GfxResult, Pnm, Array2d, OptRes, TupleFmt, ArrayFmt, UninitArray, Ascii, MilliToHour, NanoToSec, SecToYear.
  • add features: fig, num_all, safe_code, safe_data, safe_fig, safe_gfx, safe_mem, safe_num, safe_os, safe_result, safe_text, safe_time, safe_ui, safe_ui_term, safe_work, unsafe_array, unsafe_async, unsafe_const, unsafe_dyn, unsafe_niche, unsafe_slice, unsafe_str, nightly_coro, nightly_doc, _exclude_example, ui_window, ui_events, num_niche_range.
  • add capability features: _capability_max, _tuple_arity_31, _tuple_arity_63, _tuple_arity_95, _tuple_arity_127.
  • add RNGS: Xabc, XorShift8, XorShift8Custom, XorShift16, XorShift32, XorShift64, XorShift128, XorShift128p, Xyza8a, Xyza8b.
  • add Floating constants: FRAC_1_PHI, NEG_FRAC_1_PHI, SQ_PHI, FRAC_NEG_1_PHI.
  • add no_std reimplementations of std::error and std::io types and traits.
  • add non-optional dependency either and re-export its items.
  • add optional dependencies: memchr, wide, crossterm, miniquad, rand_core.
  • add macros: assert_eq_all, assert_approx_eq_all, unwrap.
  • add Array methods: new_boxed, into_slice, into_vec.
  • add examples: cargo-script, bitfield, enumset.
  • add fns: mem_copy, serr and sok.
  • add type aliases: isize_down, usize_down.
  • add niche number aliases: NonEdge*.
  • add Bare type alias of unit.
  • add module: fig.
  • add script tools/rustfmt and rustfmt_excluded_files list.
  • add new DataError variants: MismatchedLength, `InvalidAxisLength.
  • add new TextError variants: CharConversion, OutOfBounds.
  • add new Floating and ExtFloat methods: sign, is_zero, is_sign_positive_nonzero, is_sign_negative_nonzero.
  • re-export proc-macros: ident_total, ident_unique, ident_total_unique.
  • re-export crate-defined result-related types from result.
  • re-export core types from data::iter.
  • re-export core tpes from num::cmp.
  • re-export Default from code.

Removed

  • remove devela_depend, simplify system for optional dependencies.
  • remove features: fullest, safest, unsafest, full_unsafe, data_unsafe, mem_unsafe, num_unsafe, os_unsafe, text_unsafe, ui_unsafe, ui_term_unsafe, work_unsafe, dep, dep_interop.
  • remove IntBuf type and IntBufAble trait.
  • remove re-exported macro: option_unwrap.
  • remove type aliases: NonMax* `NonMin*, DirectArray, BoxedArray.
  • remove file .gitattributes.
  • remove CharConversionError.
  • remove asci_ standalone fns.
  • deprecateident_total_count macro.

Changed

  • bump rust version to 1.76.0.
  • make num::cmp non-public.
  • move cmp from data to num.
  • move ops from num to code.
  • move any from data to code.
  • move docs html header to src/_doc.
  • move .git_hooks to tools/git_hooks.
  • move traits: Apply, Also to result.
  • make bytemuck a non-optional dependency.
  • rename src/Doc.md to src/_doc/features.md.
  • rename ::{_alloc, _core, _std} to ::_deps::{alloc, core, std}.
  • rename the __doc module to _docs and the _dep module to _deps.
  • rename the error module to result, and the render module to gfx.
  • rename AnyExt, OptionExt, ResultExt, SliceExt, SliceExtMut, StrExt and StringExt to ExtAny, ExtOption, ExtResult, ExtSlice, ExtSliceMut, ExtStr and ExtString and ExtVec respectively.
  • rename LiteCoroutine, LiteCoroutineExecutor, LiteCoroutineWaiter and LiteCoroutineWaker to Coro, CoroRun CoroYield and TaskWakerNoop, respectively.
  • rename ArrayStringError to TextError, ArrayU*String to StringU*, ArrayU8NonNulString to StringNonul, ArrayU8NonNulEgc to EgcNonul.
  • rename DataErrors to DataError and NumErrors to NumError.
  • rename num_int_niche feature to num_niche_impls.
  • rename *fence functions to atomic_*fence.
  • rename ascii_ re-exported macros to str_.
  • prefix allocated collections with Alloc.
  • rename aliases: Dst*U to Dst*Usize.
  • rename mem::Size to mem::ByteSize.
  • rename feature docsrs to _docsrs.
  • rename FloatOps to ExtFloat.
  • rename feature full to all.
  • rename Direct to BareBox.
  • rename Slicing to Slice.
  • rename Sorting to Sort.
  • rename Primiting to Cast.
  • rename Comparing to Compare.
  • document selected examples from _docs.
  • derive common traits for Boxed, Cast.
  • always compile num submodules in general.
  • always compile text::fmt, work::async::coro.
  • make text chars methods not depend on alloc.
  • make bitfield and enumset examples standalone.
  • recreate the pre-commit script to leverage rustfmt.
  • update enumset: rename LEN associated constant to ENUM_VARIANTS, and add enum_variants method.
  • update the cdbg macro with column number.
  • update and improve the array_init macro.
  • update the cswap macro with xor swap.
  • improve the pre-commit git hook.

Fixed

  • refactor root modules, simplify and dissassociate root-level feature-gating.
  • update and add more tests for macros: cfor, mem_size_of_expr.
  • allow to forbid unsafe at the individual module level.
  • fix data::dst feature-gates.

Full Changelog: v0.19.0...v0.20.0

v0.19.0

24 Jan 14:52
Compare
Choose a tag to compare

Added

  • new features: docsrs, num_int_niche.
  • add optional dependency unicode-width.
  • new root modules: io, render, ui.
  • new fns mem::ptr_in_stack, factorial_*, bytes_from_bits.
  • new structs Priming, Comparing, Slicing, Sorting, Biting, Int, Frac.
  • new traits: DataArray, PrimitiveCast, BitOps, NumInt, NumRefInt, VecExt.
  • new macros: bitfield, enumset, ident_const_index, ident_total_count, init_array.
  • new NumErrors variants: MismatchedSizes, NonNegativeRequired, PositiveRequired.
  • new color constants: COLOR_LUMINANCE_[RED|GREEN|BLUE].
  • complete Floating and FloatOps methods and constants.
  • reexport panic from error, and hint from code.
  • new type aliases: isize_up, usize_up.
  • new enums: DataErrors, Sign.

Removed

  • remove os::linux functionality.
  • remove features: linux, linux_unsafe, unsafe_linux, unsafe_os, ops, ops_unsafe, unsafe_ops, unsafe_code, unsafe_color, unsafe_result, unsafe_time, code_usafe, color_unsafe, result_unsafe, time_unsafe.
  • remove standalone fns from: num::ops, mem::slice, data::convert::collection.
  • remove linux specific tools and github actions.
  • remove the Underflow variant from NumErrors.
  • remove the prelude.

Changed

  • bump rust version to 1.75.0.
  • move term module to ui.
  • move any module to data.
  • move color module to render.
  • move num and ops modules to num.
  • move data::slice to mem::slice.
  • move error::{Also, Apply} to code.
  • move num::convert module to code.
  • move niche number types to num::niche.
  • move data::array to data::collections::array.
  • move corresponding standalone fns to Sorting, Comparing and Casting.
  • move cmp fns to Comparing methods: clamp*, max*, min*, pclamp, pmax, pmin.
  • rename meta module to code.
  • rename task module to work.
  • rename result module to error.
  • rename NumError and NumResult to NumErrors and NumResult, respectively, and move them to the num module.
  • rename AnsiColor3 to AnsiColor3b and AnsiColor8 to AnsiColor8b.
  • rename fns: div_half_* to div_ties_*.
  • rename term features to ui_term features.
  • rename Fp to Floating and FloatExt to FloatOps.
  • rename Floating and FloatOps float parameters to x, y z.
  • rename Floating and FloatOps method: round to round_ties_away.
  • rename FromPrimitives to PrimitiveJoin and IntoPrimitives to PrimitiveSplit.
  • rename fn mem_ptr_ratio and method Size::ptr_ratio to ptr_size_ratio.
  • rename reexported time types: Duration to SystemDuration, Instant to SystemInstant.
  • reexport BitwisePrimitives and CastPrimitives traits from prelude.
  • change Ansi::print method and ansip macro to depend on std.
  • improve Floating type and FloatOps trait to be partially available without std or libm features, reverting to the taylor versions when there's no better option.
  • impl DataCollection for array, Vec, VecDeque, OrderedMap, OrderedSet, UnorderedMap, UnorderedSet.
  • impl Error and Display for NumErrors.
  • make ascii_calc_digit_* functions public.
  • make DataCollection always available.
  • make prime_number_theorem compilable without libm nor std.
  • make devela_macros a non-optional dependency, and update it.
  • update color gamma fns, rename to color_gamma_[apply|remove]_f*, add f64 versions.
  • update DataCollection methods to return DataResult; add new methods collection_contains, collection_count.
  • update IntoPrimitives related method to take self, remove one generic argument.
  • update CastPrimitives with missing usize and isize methods.
  • update Collection trait.
  • update crate description.
  • update devela_depend.

Fixed

  • fix bytemuck dependency when data is enabled.
  • update and improve CI tests.
  • add many missing attributes.
  • fix and update many docs.

Full Changelog: v0.18.1...v0.19.0

v0.18.1

08 Nov 11:35
Compare
Choose a tag to compare

Fixed

  • fix FloatExt reexport.
  • fix DERIVED.md links.

Full Changelog: v0.18.0...v0.18.1

v0.18.0

03 Nov 18:38
Compare
Choose a tag to compare

Added

  • new ops gcd fns: gcd_*, gcd_ext_* and gcd_ext_euc_*, lcm_*.
  • new ops base fns: count_digits, count_digits_sign, count_digits_base, count_digits_base_sign, digital_root, digital_root_base.
  • new ops factor fns: factors_*, factors_proper_*, factors_prime_*, factors_prime_unique_*, factors_prime_buf_*, factors_prime_unique_buf_*, factors_prime_unique_plus_buf_*.
  • new ops sort fns: sort_bubble, sort_insertion, sort_merge, sort_quick_lomuto, sort_quick_hoare, sort_quick_3way, sort_selection, sort_shaker, sort_counting, sort_counting_buf.
  • new mem macro: cswap.
  • add new fn to LinuxTerminal size: pixels_per_cell.
  • new trait FloatExt and struct Fp.

Changed

  • changed result of LinuxTerminalSize fns: cells and pixels to [u16; 2].
  • rename const_for to cfor and make it always available.
  • make ops::cmp float fns always available.
  • add libm feature to docs.rs compilation.

Fixed

  • add missing rustdoc header file.
  • fix reversed order of LinuxTerminalSize::cells.

Full Changelog: v.0.17.0...v0.18.0

v.0.17.0

28 Oct 09:01
Compare
Choose a tag to compare

Added

  • new types: DstArray, DstValue, DstStack, DstQueue, DstQueueIter, DstQueueIterMut, DstQueuePopHandle, DstStackIter, DstStackIterMut.
  • new ops fns: div_rem_*, div_ceil_*, div_floor_*, div_half_away_*, div_half_towards_*, div_half_even_*, div_half_odd_*, sqrt_*, sqrt_ceil_*, sqrt_floor_*, scale_*, lerp_*.
  • new aliases: DstQueueU, DstStackU, DstValueU, DstVecU.
  • new trait: DstBuf.
  • impl more traits for Array: PartialOrd, Ord, AsRef, AsMut, Borrow, BorrowMut, Hash.
  • new features: color, color_unsafe, unsafe_color, ops, ops_unsafe, unsafe_ops.
  • add katex docs header to support mathematical notation.
  • new optional dependency: libm.
  • new modules: color, ops.

Removed

  • remove features: nightly_docs, cmp, cmp_unsafe, unsafe_cmp, convert, convert_unsafe, unsafe_convert.
  • remove az optional dependency.

Changed

  • rename Collection to DataCollection.
  • make Array private field public to the crate.
  • rename depend feature to dep and depend module to _dep.
  • allow warnings for broken intra-doc links when dep is disabled.
  • move to ops the modules: cmp, convert.
  • update cargo aliases for docs.
  • bump devela_depend.

Fixed

  • fix test for mem_size_of_expr.
  • remove redundant re-exports of optional dependencies.
  • update cargo aliases.

Full Changelog: v0.16.0...v.0.17.0