Split refactor
Pull Request Test Coverage Report for Build 10186399190
Details
- 10 of 277 (3.61%) changed or added relevant lines in 8 files are covered.
- 4 unchanged lines in 2 files lost coverage.
- Overall coverage decreased (-1.0%) to 49.617%
| Changes Missing Coverage | Covered Lines | Changed/Added Lines | % |
|---|---|---|---|
| Sources/U8String/Helpers/UnsafeExtensions.cs | 0 | 2 | 0.0% |
| Sources/U8String/InteropServices/U8StringMarshalling.cs | 0 | 4 | 0.0% |
| Sources/U8String/U8String.Formatting.cs | 0 | 10 | 0.0% |
| Sources/U8String/Shared/U8Interpolation.cs | 10 | 26 | 38.46% |
| Sources/U8String/IO/U8WriteExtensions.cs | 0 | 24 | 0.0% |
| Sources/U8String/Shared/U8Searching.cs | 0 | 37 | 0.0% |
| Sources/U8String/Prototypes/Split/Split.cs | 0 | 55 | 0.0% |
| Sources/U8String/Prototypes/Split/Pattern.cs | 0 | 119 | 0.0% |
| <!-- | Total: | 10 | 277 |
| Files with Coverage Reduction | New Missed Lines | % |
|---|---|---|
| Sources/U8String/Shared/U8Interpolation.cs | 2 | 29.76% |
| Sources/U8String/IO/U8WriteExtensions.cs | 2 | 0.0% |
| <!-- | Total: | 4 |
| Totals | |
|---|---|
| Change from base Build 10179247710: | -1.0% |
| Covered Lines: | 6274 |
| Relevant Lines: | 11744 |
💛 - Coveralls
Its too bad that the diff set is so large due to many unrelated changed like code formatting which makes it hard to review actual changes
Oh. I'm so sorry you had to look through that.
This was never intended for review and I'm likely to redo this in my free time. This project is currently on a very, very slow burn because there were changes in .NET 9's type system that significantly impact this project - ref structs in generics affect how the "core" of this project is done as it was intended to support multiple string container types from the start.
Given that the implementation has an uncompromising performance target, this should also include natively allocated string instances over GC-based ones which is the only one that is conveniently supported currently. This may not be acceptable for HPC projects.
There are other issues like a huge number of overloads that make it very time-consuming to work on because I hand-validate the disassembly of almost each method, on top of microbenchmarking and running in a few sample applications. And current source generator that is mandatory for "proper" UTF-8 string literal declarations and eliding UTF-8 validation at build-time against known valid inputs uses effectively obsolete sourcegen API and needs to be rewritten too.
These factors mean that in order to realize the vision for U8String I may need to carve out a vacation in the coming months to do this project justice. Currently, however, I sadly just don't have time to work on this as it would conflict with my job obligations. In any case, thank you for looking through this and I'm open to feedback.