Candoumbe.Types 0.3.0-rc.375

This is a prerelease version of Candoumbe.Types.
dotnet add package Candoumbe.Types --version 0.3.0-rc.375
                    
NuGet\Install-Package Candoumbe.Types -Version 0.3.0-rc.375
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Candoumbe.Types" Version="0.3.0-rc.375" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Candoumbe.Types" Version="0.3.0-rc.375" />
                    
Directory.Packages.props
<PackageReference Include="Candoumbe.Types" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Candoumbe.Types --version 0.3.0-rc.375
                    
#r "nuget: Candoumbe.Types, 0.3.0-rc.375"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Candoumbe.Types@0.3.0-rc.375
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Candoumbe.Types&version=0.3.0-rc.375&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Candoumbe.Types&version=0.3.0-rc.375&prerelease
                    
Install as a Cake Tool

Types

GitHub Workflow Status (develop) GitHub Workflow Status (nightly) GitHub Workflow Status (main) codecov GitHub raw issues Nuget Mutation testing badge Various custom types that can be useful when doing development.

Disclaimer

This project adheres to Semantic Versioning.

Major version zero (0.y.z) is for initial development. Anything MAY change at any time.

The public API SHOULD NOT be considered stable.

How it all started

This project was born out of frustration encountered while developing a matching algorithm in a professional context. The goal of that project was to enable the effective matching of one or more temporary workers based on :

  • the assignment dates
  • the declared availability of collaborators.
  • their qualification ...

With the team back then, it took several weeks to get this "planning matcher" to work properly and, at the time, I was not very happy with the result (specifically with the planning matching part of the algorithm).

That's how I started working on types from Candoumbe.Types.Calendar namespace.

Features

Calendar

The Calendar namespace contains various types related to calendar operations, such as:

  • DateTimeRange: a datetime range represents a interval between two DateTimes
  • DateOnlyRange: an interval between two DateOnlys
  • TimeOnlyRange: an interval between two TimeOnlys

Numerics

The numerics namespace contains various types useful when you want to work with very specific numeric values such as:

  • NonNegativeInteger: a type that can only hold non-negative integers
  • PositiveInteger: a type that can only hold integers values greater than zero.

Contributing

Contributions are welcome! Feel free to submit issues or pull requests to improve the project. License

This project is licensed under the MIT License. See the LICENSE file for more details.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.3.0-rc.375 128 6/22/2025
0.2.1 143 6/17/2025
0.2.1-fix.12 128 6/17/2025
0.2.1-fix.9 122 6/15/2025
0.2.1-fix.8 125 6/15/2025
0.2.1-fix.4 80 12/10/2024
0.2.1-beta.1 75 12/9/2024
0.2.0 96 12/3/2024
0.2.0-string-segment-l0183 85 9/30/2024
0.2.0-string-segment-l0182 100 9/30/2024
0.2.0-string-segment-l0181 83 9/30/2024
0.2.0-rc0000 75 10/9/2024
0.2.0-rc.279 79 12/3/2024
0.2.0-rc.278 67 12/2/2024
0.2.0-rc.277 74 12/2/2024
0.2.0-rc.275 72 11/27/2024
0.2.0-rc.2 80 10/11/2024
0.2.0-rc.1 75 10/11/2024
0.2.0-rc.0 74 11/12/2024
0.2.0-publish-nuget-package... 79 9/27/2024
0.2.0-publish-nuget-pa0001 83 9/27/2024
0.2.0-alpha0180 79 9/27/2024
0.2.0-alpha0017 172 3/5/2023
0.2.0-alpha0016 163 3/4/2023
0.2.0-alpha0014 162 3/4/2023
0.2.0-alpha0003 178 1/29/2023
0.1.0-alpha0023 169 1/29/2023
0.1.0-alpha0022 178 1/29/2023
0.1.0-alpha0021 177 1/24/2023
0.1.0-alpha0020 167 1/24/2023
0.1.0-alpha0019 176 1/22/2023

### 💥 Breaking changes
• Moved all types from Candoumbe.Types.Numerics namespace from Candoumbe.Types NuGet package into Candoumbe.Types.Numerics NuGet package
• Moved all types from Candoumbe.Types.Calendar namespace from Candoumbe.Types NuGet package into Candoumbe.Types.Calendar NuGet package
### 🚀 New features
• Added NonNegativeLong type ([#43](https://github.com/candoumbe/Candoumbe.Types/issues/43))
• Added PositiveLong type ([#43](https://github.com/candoumbe/Candoumbe.Types/issues/43))
• Added StringSegmentLinkedList.Contains(ReadOnlySpan<char>) ([#])
• Added StringSegmentLinkedList.Contains(ReadOnlySpan<char>, IEqualityComparer<char>)
### 🧹 Housekeeping
• Add DotNet.ReproducibleBuilds package to core.props
• Update [Candoumbe.Pipelines](https://nuget.org/packages/pipelines) to 0.13.2
• Update README.md with new badges for nightly and main branches, and mutation testing
• Improve StringSegmentLinkedList.Replace when replacing a string by a string  method to reduce memory allocations
   • Optimize character replacement logic
   • Avoid unnecessary allocations by using ReadOnlyMemory<char> and ReadOnlySpan<char>
   • Refactor code for better readability and performance
### 🛠️ Technical
• Updated GitHub workflows to download required SDKs when running CI.

Full changelog at https://github.com/candoumbe/Candoumbe.Types/blob/release/0.3.0/CHANGELOG.md