Skip to content

Instantly share code, notes, and snippets.

View martincostello's full-sized avatar
🌈
Coding stuff 🔭📈

Martin Costello martincostello

🌈
Coding stuff 🔭📈
View GitHub Profile
@martincostello
martincostello / SystemTextJsonContentSerializerForSourceGenerator.cs
Last active August 28, 2024 12:57
A class for plugging the JSON source generator with Refit
using System.Net;
using System.Reflection;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Refit;
/// <summary>
/// A class representing an implementation of <see cref="IHttpContentSerializer"/> that can be
/// used with the <c>System.Text.Json</c> source generators. This class cannot be inherited.
@martincostello
martincostello / AddNumbers.Tests\AddNumbers.Tests.csproj
Created December 4, 2021 15:34
An extension method to turn a string into a sequence of numbers using .NET 6 Generic Math
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<EnablePreviewFeatures>true</EnablePreviewFeatures>
<ImplicitUsings>enable</ImplicitUsings>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Shouldly" Version="4.0.3" />
</ItemGroup>
<ItemGroup>
@martincostello
martincostello / NSubstituteExtensions.cs
Last active August 11, 2023 11:05
Mocking Moq for NSubstitute
// Copyright (c) Martin Costello, 2023. All rights reserved.
// Licensed under the Apache 2.0 license.
using System.Linq.Expressions;
using NSubstitute.Core;
using NSubstitute.ExceptionExtensions;
namespace NSubstitute;
/// <summary>
@martincostello
martincostello / OpenApiYamlEndpoint.cs
Created July 31, 2024 18:58
Generate YAML using Microsoft.AspNetCore.OpenApi
using System.Diagnostics.CodeAnalysis;
using Microsoft.Extensions.Options;
using Microsoft.OpenApi.Extensions;
using Microsoft.OpenApi.Models;
using Microsoft.OpenApi.Writers;
namespace Microsoft.AspNetCore.OpenApi;
public static class OpenApiYamlEndpoint
{
@martincostello
martincostello / BigIntegerBenchmarks.cs
Created August 16, 2024 16:32
BigInteger go brrr in .NET 9
using System.Numerics;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Diagnosers;
using BenchmarkDotNet.Jobs;
namespace DotNetBenchmarks;
[MemoryDiagnoser]
[SimpleJob(RuntimeMoniker.Net80, baseline: true)]
[SimpleJob(RuntimeMoniker.Net90)]