Breaking
All of these are bug fixes, that's why we only bump the minor version
- Fixes bug with
-1
incorrectly appending when used in nested lenses - Now error is raised when modifier conflicts with path definition
Non-breaking
- Slightly improved docs
- Added docs for Elixir 1.17
Breaking
None
Non-breaking
Exceptions generated by incorrect modifiers produce more meaningful error messages
Breaking
None
Non-breaking
Pathex.Accessibility.from_struct/2
to createforce_over
-friendly lenses for Elixir structuresPathex.Accessibility.from_record/3
to createforce_over
-friendly lenses for records
- Documentation improvements, typos etc.
- Documentation for VSCode reformatting
- Fixed
:delete
op bug forall
lens #21 - Improved performance of
all
lens - Added Code of Conduct
- Fixed
:delete
op bug forall
lens #20
Negative indexes, lens fixes, force_update nil filling and refactoring
Breaking
- matching force_update fix. Now it doesn't raise an error when called
- filtering force_update fix. Now it doesn't raise an error when called
- Tuple force_update fix. Now it works with indexes and for
force_set {}, path(2), 1
it will create{nil, nil, 1}
. - List force_update fix. Now it works with indexes and for
force_set [], path(2), 1
it will create[nil, nil, 1]
.
Non-breaking
- Tuple negative index is now supported for all operations
- List negative indexes now work the same way as positive indexes (but backwards), except
-1
which still prepends to the list.
Breaking
- Pathex now uses Elixir 1.13 (or higher) version
Non-breaking
Pathex.t
spec fixPathex.Short
for shorter path definitionPathex.pattern
for creating patterns from inlined pathsPathex
now can beuse
-d inside functions or anything like this- Paths inlining is now detected for aliased, imported and macro calls
- Internal spec fixes, dead code eliminations and formatting
Breaking
- Changed behaviour of path-closures created with
path
when working with improperKeyword.t()
Non-breaking
- Improved documentation
- Removed dead code
- Added
Pathex.Accessibility
module for creating paths in runtime
Breaking
- Updating and viewing keywords with
star
andsome
lenses now doesn't raise when they're used against non-proper keyword
Non-breaking
- Concatenated paths now can force_over for not only maps
- Fixed debug lens
- Added ability to pass calls and arbitary structures into
path
macro - Unrolled some clauses for
star
andsome
for extra efficiency
Breaking
- Reworked
star
lens. Now it is less optimistic and returns:error
when no values were viewed/updated - Removed sigils
- Removed deprecated lens
id
- Removed deprecated lens
either
- Removed
recur
function
Non-breaking
compose
function for recursive lensdelete
method for all paths, lenses and higher order functionsinspect
method for all paths, lenses and higher order functions- Matchable updater for lists and maps
- Builders are selected for combination (not for mod as they used to)
- Reworked documentation
- Annotated paths
Breaking
None! (See deprecated in Non-breaking)
Non-breaking
-
Deprecated
id
lens -
Deprecated
either
lens -
Fixed bug with concatenation context overlapping
-
some
lens -
star
lens -
matching
lens -
filtering
lens -
Removed some dead code
-
Moved lenses code to separate modules
Breaking
None!
Non-breaking
star
lensall
lens
Breaking
None!
Non-breaking
|||
operator- stack-optimized version of
~>
operator - stack-optimized version of
|||
operator
Breaking
force_set
/get
/set
clause in closure was renamed toforce_update
/view
/update
and added a special argument with default value in it
Non-breaking
alongside
macro- stack-optimized version of
&&&
operator - path code generation size assertion
- better documentation format
id
lenseither
lensany
lens
Yeah, it starts from 1.0.0 I can describe previous versions if anybody needs this. Just open an issue! :)