Releases: TomPlum/advent-of-code-libs
Releases · TomPlum/advent-of-code-libs
Logging: Template Overloads
AdventLogger
- Added overloaded functions that accept template strings to reduce string constructions and variable evaluation, improving performance.
Hotfix: AdventLogger Performance
AdventLogger
- Logging level function overrides that accept object parameters no long eagerly invoke the objects
toString()
function. This was incurring a huge performance cost when logging an object thousands of times, even though the logging level was set such that it would not be logged. The function now invokes the template function from SLF4J that checks with the appender if the log is permissable before evaluating to the toString().
Hotfix: Advent Map Override Data
AdventMap
overrideData()
now acceptsMutableMap
and doesn't invoke.toMap()
. Improves performance.
Math: Advent Map Mutability
AdventMap
- Internal
data
had its visibility reduced fromprotected
tointernal
. - Internal
data
is now mutable viavar
. - Added
overrideData()
andgetDataMap()
functions. - Made
it
lambda variables explicit.
Math: Advent Map Point Generification
Advent Map
- Generified
AdventMap
position. TypeP
is now accepted, restrictred toPoint
. Reduces consumer casting.
Math: AdventMap Tile Removal
AdventMap
- Added new
AdventMap
abstract super class. Contains common functionality across dimensions. - Added
removeTile()
functionality. - Removed
snapshot()
function and exposeddata
map withprotected
visiblity. - Restricted
AdventMap
generic typeT
. It not must be sub-class ofMapTile
. - Kotlin Doc improvements.
Hotfix: 4D Interfaces
Point4D
now correctly implementsPoint
AdventMap4D
is now abstract- Kotlin Doc additions
Math: 4th Dimension
- Added Point Interface
- Added Point4D
- Moved
Point
classes to sub-package - Added AdventMap4D
Math: Point3D Adjacency
Point3D:
- Added
adjacent()
function. Produces the 26 adjacent Point3D points.
Hotfix: Map2D Performance
AdventMap2D:
- Fixed performance issue with
filterPoints()