Skip to content

Instantly share code, notes, and snippets.

View MichalBrylka's full-sized avatar

Michał Bryłka MichalBrylka

View GitHub Profile
public sealed class EnumTransformerCreator : ICanCreateTransformer
{
public ITransformer<TEnum> CreateTransformer<TEnum>()
{
Type enumType = typeof(TEnum), underlyingType = Enum.GetUnderlyingType(enumType);
switch (Type.GetTypeCode(underlyingType))
{
case TypeCode.Byte:
case TypeCode.SByte:
private static byte ParseDaysOfWeek(ReadOnlySpan<char> text)
{
if (text.Length == 4 && char.ToUpper(text[0]) == 'N' && char.ToUpper(text[1]) == 'O' &&
char.ToUpper(text[2]) == 'N' && char.ToUpper(text[3]) == 'E'
)
return 0;
else if (text.Length == 6 && char.ToUpper(text[0]) == 'M' && char.ToUpper(text[1]) == 'O' &&
char.ToUpper(text[2]) == 'N' && char.ToUpper(text[3]) == 'D' && char.ToUpper(text[4]) == 'A' &&
char.ToUpper(text[5]) == 'Y'
)
using System;
using System.Collections.Generic;
namespace Nemesis.TextParsers
{
/// <summary>
/// Stores up to 3 elements or an array
/// </summary>
public readonly ref struct LeanCollection<T>
{
using System;
using System.Data;
using System.Data.SqlClient;
using System.Globalization;
using System.Linq;
using System.Text;
using NUnit.Framework;
namespace Nemesis.Education.DotNet.CSharp6and7
{
using System;
using System.IO;
using System.Linq;
using BenchmarkDotNet.Attributes;
using Nemesis.TextParsers;
using Newtonsoft.Json;
namespace Benchmarks
{
/*//[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,2
@MichalBrylka
MichalBrylka / StringConcatBench.cs
Created September 28, 2019 13:49
Performance of string concat
using System;
using System.Text;
using BenchmarkDotNet.Attributes;
using Nemesis.TextParsers;
// ReSharper disable CommentTypo
namespace Benchmarks
{
[MemoryDiagnoser]
[Benchmark]
public int Sequence_Tokenize()
{
int result = 0;
var seq = new ReadOnlySequence<char>(Numbers.AsMemory());
var reader = new SequenceReader<char>(seq);
while (!reader.End)
{
// ReSharper disable once RedundantArgumentDefaultValue
if (reader.TryReadTo(out ReadOnlySpan<char> readChars, '|', '\\', true))
<Application x:Class="WpfApp2.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp2"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
param(
[Parameter(Mandatory=$False)]
[System.Double]$expectedFraction=1.0,
[Parameter(Mandatory=$False)]
[System.Double]$path
)
function Get-ImageMeta
{
Param