Adder
struct Adder : ISupplier<double, double, double>, IFunctional<Func<double, double, double>>, ISupplier<float, float, float>, IFunctional<Func<float, float, float>>, ISupplier<IntPtr, IntPtr, IntPtr>, IFunctional<Func<IntPtr, IntPtr, IntPtr>>, ISupplier<int, int, int>, IFunctional<Func<int, int, int>>, ISupplier<long, long, long>, IFunctional<Func<long, long, long>>, ISupplier<uint, uint, uint>, IFunctional<Func<uint, uint, uint>>, ISupplier<ulong, ulong, ulong>, IFunctional<Func<ulong, ulong, ulong>>
using DotNext.Runtime.CompilerServices;
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace DotNext.Threading
{
[StructLayout(LayoutKind.Auto)]
internal readonly struct Adder : ISupplier<double, double, double>, IFunctional<Func<double, double, double>>, ISupplier<float, float, float>, IFunctional<Func<float, float, float>>, ISupplier<IntPtr, IntPtr, IntPtr>, IFunctional<Func<IntPtr, IntPtr, IntPtr>>, ISupplier<int, int, int>, IFunctional<Func<int, int, int>>, ISupplier<long, long, long>, IFunctional<Func<long, long, long>>, ISupplier<uint, uint, uint>, IFunctional<Func<uint, uint, uint>>, ISupplier<ulong, ulong, ulong>, IFunctional<Func<ulong, ulong, ulong>>
{
double ISupplier<double, double, double>.Invoke(double x, double y)
{
return x + y;
}
float ISupplier<float, float, float>.Invoke(float x, float y)
{
return x + y;
}
[return: System.Runtime.CompilerServices.NativeInteger]
unsafe IntPtr ISupplier<IntPtr, IntPtr, IntPtr>.Invoke([System.Runtime.CompilerServices.NativeInteger] IntPtr x, [System.Runtime.CompilerServices.NativeInteger] IntPtr y)
{
return (IntPtr)(void*)((long)x + (long)y);
}
int ISupplier<int, int, int>.Invoke(int x, int y)
{
return x + y;
}
long ISupplier<long, long, long>.Invoke(long x, long y)
{
return x + y;
}
uint ISupplier<uint, uint, uint>.Invoke(uint x, uint y)
{
return x + y;
}
ulong ISupplier<ulong, ulong, ulong>.Invoke(ulong x, ulong y)
{
return x + y;
}
}
}