Skip to content

Instantly share code, notes, and snippets.

View joost-morsink's full-sized avatar

Joost Morsink joost-morsink

  • The Netherlands
View GitHub Profile
@joost-morsink
joost-morsink / AutoVersioning.targets
Created May 8, 2020 03:44
Auto versioning targets to import in csproj
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BuildTimestamp>$([System.DateTime]::UtcNow.ToString("yyyyMMddHHmmss"))</BuildTimestamp>
<BuildMachine>$([System.Environment]::MachineName)</BuildMachine>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
<PropertyGroup Condition="'$(BuildType)' == ''">
<BuildType>Dev</BuildType>
</PropertyGroup>
public interface IConstraint<T>
{
bool Satisfies(T value);
}
public class Constrained<T, Constraint>
where Constraint : IConstraint<T>, new()
{
public static bool TryCreate(T val, out Constrained<T, Constraint> result)
{
var c = new Constraint();
{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE UndecidableInstances #-}
module Lib
(StringValued (getValue),
SqlString,
sqlEncode
public static class Option
{
public static Option<T> Some<T>(T item)
=> new Option<T>(item);
public static Option<T> None<T>()
=> new Option<T>();
}
public struct Option<T>
{
private readonly T value;
public struct EmailAddress
{
private EmailAddress(string value)
{
Value = value;
}
public string Value { get; }
public static bool TryParse(string emailAddress, out EmailAddress result)
public interface IStringValued
{
string Value { get; }
}
public struct BareString : IStringValued
{
public BareString(string value)
{
Value = value;
}