Kanda - 3.0.0
What's Changed
- Added support for coercing
stdClass
toarray<TKey, TValue>
by @Ocramius in #437 - chore(ga): bump actions/cache from 3 to 4 by @dependabot in #438
- Fix psalm 5.20 issues by @veewee in #439
json_encode
never returns an empty string by @gsteel in #441- feat(option):
apply
closure should be able to returnmixed
by @devnix in #442 - Avoid iterating over non-nullable sends by @veewee in #444
- feat(locale): introduce 'Locale' component by @azjezz in #445
- chore(locale): add
Locale::default()
function to retrieve default locale by @azjezz in #447 - feat(default): introduce
Default
component by @azjezz in #449 - chore: rename all enum cases to PascalCase instead of SHOUT_CASE by @azjezz in #450
- feat(io): introduce
ReadHandle::reachedEndOfDataSource
by @azjezz in #452 - chore: drop support for PHP 8.1 by @azjezz in #454
- feat(async): introduce optional incremental timeout to the public API by @azjezz in #455
- feat(types): Traceless types by @veewee in #453
- chore: miscellaneous changes by @azjezz in #458
- fix(type): Positive int has a broken exception path by @veewee in #459
- feat(types): Memoize simple types without arguments by @veewee in #457
- Fix PHP84 nullable types by @veewee in #460
- feat(type): Introduce type constructor purity by @veewee in #461
- feat(type): Mark type classes as readonly by @veewee in #463
- feat: narrow return type for
min()
,max()
,median()
andmean()
by @simPod in #464 - feat(type): Notnull type optimizations by @veewee in #465
- docs(type): Provides an initial documentation document for the Type component by @veewee in #462
- feat: narrow ResultInterface to concrete implementation after calling
isSucceeded()
andisFailed()
by @simPod in #466 - Revert "feat: narrow ResultInterface to concrete implementation after calling
isSucceeded()
andisFailed()
(#466) by @simPod in #469 - Change
Iter\apply
(Closure(T): void)
$function
to(Closure(T): mixed)
by @devnix in #471 - Add
Vec
versions of theunique
functions by @BackEndTea in #472 - feat(Result): introduce
Result::unwrapOr()
by @simPod in #470 - feat: introduce
first_opt()
,first_key_opt()
,last_opt()
,last_key_opt()
andsearch_opt()
by @simPod in #467 - feat(datetime): Introduce
DateTime
component by @azjezz in #446 - chore: fix static analysis by @azjezz in #474
- Adds
param-immediately-invoked-callable
inOption
by @klifoth in #475 - Add missing Option::orElse method by @veewee in #476
- feat(DateTime) Provide a human-like months substract and add system by @veewee in #477
- Move nonnull type to public namespace by @veewee in #478
- Use MONTHS_PER_YEAR by @veewee in #479
- Update README.md by @mattsches in #481
- feat(collections): introduce
Set
,SetInterface
,MutableSet
, andMutableSetInterface
by @azjezz in #482 - Fix mutation coverage by @veewee in #485
- Add value-of type by @gsteel in #483
- feat(collections): add fromItems and containsKey by @pfmmfp in #484
New Contributors
- @klifoth made their first contribution in #475
- @mattsches made their first contribution in #481
- @pfmmfp made their first contribution in #484
Full Changelog: 2.9.0...3.0.0