All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
UrlPath.Combine
now usesstring.EndsWith(char)
on .NET 6+- All
IsEmpty
extension methods now takesnull
collections (and returnsfalse
if collection isnull
)
0.4.0-alpha - 2023/9/26
This is a release towards the Beta phase, with last-minute breaking changes (can't do any breaking changes after Beta phase so have to do it now)
- Added
IDictionary.Invert()
to invert key and values and create a new dictionary - Added
Fails.ArgumentNull(string)
for argument null exception with a default message - Added
HighWord
,LowWord
,HighByte
,LowByte
support for corresponding types
- Moved extensions to generic
IEnumerable
to a new typeEnumerableExtensions
- Moved
CollectionExtensions
toUtil.Enumerables
- Moved Key-to-Value-Container types to
NexusKrop.IceCube.Data.Containers
name-space - Renamed
Throws
toFails
- Renamed
MathUtil
toMathUtility
- Renamed
ProcessUtil
toProcesses
- Yet again, we have moved to GitHub
- Removed the following deprecated methods:
- 2
foreach
based overloads ofCollectionExtensions.Iterate
ProcessUtil.ShellExecute
- 2
0.3.2-alpha - 2023/6/22
This is a small release that adds one API.
- Added
string.ToSnakeCase()
extension method that converts strings to snake case
- We now have moved to Gitea.com
0.3.1-alpha - 2023/6/19
- Added Visual Basic wrapper modules as a seperate package
- Added
Dictionary.Of
andList.Of
creation helpers that works similar toArrays.Of
but for lists and dictionaries
- Renamed
Arrays.From
toArrays.Of
and deprecated the old one
0.3.0-alpha - 2023/6/16
This is a major release that adds new utility methods and changed existing API definitions. Please be noted that there are multiple breaking changes in this version.
- Added new Iterate functions which are for-based, and provides index, plus allowing modification of the collection during operation
- Added new
Throws
class to create exception instances for throwing - Added new
Shell
class for interaction with the command-line or GUI shell- Added
Shell.System
andShell.IsAvailable
- Added
- Added
ByteExtensions
class to operate bits in a byte - Added new
UrlPath
class with URL processing utilities - Added
IterationFunc
andIterationAction
as delegates for iteration
- Renamed old
foreach
-based Iterate functions toForEach
- Deprecated old Iterate functions (they are now wrappers to ForEach).
- Made
Checks
functions to make use ofThrows
instead of creating one directly - Move
ProcessUtil.ShellExecute
toShell.ShellExecute
- Fixed a build failure in
ProcessUtil
0.2.0-alpha - 2023/3/3
- Added Key-to-Value Container that can be formatted as binary, and stores primitive data
- Added annotation attribute
ApiStatus
to indicate the status of an API - Added
TypeExtensions
class - Added
IsPrimitive
extension method for types to check if the type is primitive - Added IntelliSense documentation file (
XML
Documentation) to build output and NuGet package - Added
IBinaryWriter
andIBinaryReader
interfaces to represent generic Binary writing and reading - Added wrappers for
BinaryWriter
andBinaryReader
(N-prefixed) that implementsIBinaryWriter
andIBinaryReader
respectively
- The following methods can now be used on .NET Framework and Mono:
ProcessExtensions.EndGracefully()
Checks.OnWindows()
- Further improve NuGet package metadata.
- Changed the icon of the NuGet package to the new logo.
BigEndianBinaryWriter
no longer available for .NET 6 target- Made
BigEndianBinaryWriter
andBigEndianBinaryReader
implementIBinaryWriter
andIBinaryReader
respectively
0.1.4-alpha - 2023/3/1
- Fixed SourceLink.
0.1.3-alpha - 2023/2/1
- Added
BigEndianBinaryReader
andBigEndianBinaryWriter
for Big Endian binary I/O
- Now IceCube builds for .NET 7
- Removed deprecated extension method
Iterate<T>(Predicate<T>, Action<T>)
- Removed localisation module (and tests for it) completely since it is not used anywhere
0.1.2-alpha - 2023/2/1
- Decouple localisation module from IceCube main package
0.1.1-alpha - 2023/1/30
- Added extension method
EndGracefully()
forProcess
class that ends a process gracefully (behaviour depending on platform) for Windows and GNU/Linux on .NET 6+ - Added extension method
Iterate<T>(Func<bool, T>)
for enumerables that breaks if theFunc
returnsfalse
- Added check method
ProcessRunning(Process)
to check (assert) if a process is running or not
- Fixed an issue resulted in
LanguageService.CurrentLanguage
not producing a default value outside of Windows
- Made
Iterate<T>(Predicate<T>, Action<T>)
extension method obsolete in favour ofIterate<T>(Func<bool, T>)
0.1.0-alpha - 2023/1/27
- Initial release.