* Add async support stuff
* Set main thread id
* Add v2 test to ensure `TaskScheduler.FromCurrentSynchronizationContext` works
* Remove uneeded async
---------
Co-authored-by: Tig <tig@users.noreply.github.com>
* Fixes#3930. Tests are crashing again...
* Clear the source settings on test.
* Just call CM.Reset.
* Fix one more test 'not run' because of the use of enums in parameters
* Replace void to Task
* Tons of API doc updates
* Added logging control to UICatalog
* Added logging control to UICatalog - more
* fixed minor issues
* removed logs from .gitignore
* Fixed log file path
* Fixed app desc
* Add benchmarks for potentially optimizable RuneExtensions
* Add new RuneExtensions.DecodeSurrogatePair benchmark implementation
Avoids intermediate heap array allocations which is especially nice when the rune is not surrogate pair because then array heap allocations are completely avoided.
* Enable nullable reference types in RuneExtensions
* Make RuneExtensions.MaxUnicodeCodePoint readonly
Makes sure no one can accidentally change the value. Ideally would be const value.
* Optimize RuneExtensions.DecodeSurrogatePair
* Remove duplicate Rune.GetUnicodeCategory call
* Add new RuneExtensions.IsSurrogatePair benchmark implementation
Avoids intermediate heap allocations by using stack allocated buffer.
* Optimize RuneExtensions.IsSurrogatePair
* Add RuneExtensions.GetEncodingLength tests
* Optimize RuneExtensions.GetEncodingLength
* Optimize RuneExtensions.Encode
* Print encoding name in benchmark results
* Rename variable to better match return description
* Add RuneExtensions.EncodeSurrogatePair benchmark
---------
Co-authored-by: Tig <tig@users.noreply.github.com>