SharpGen.Runtime/BooleanHelpers.IntToRawBool.Span.cs (48 lines of code) (raw):
using System;
using System.Runtime.InteropServices;
namespace SharpGen.Runtime
{
public static partial class BooleanHelpers
{
/// <summary>
/// Converts integer array to bool array.
/// </summary>
/// <param name="src">A pointer to the array of integers.</param>
/// <param name="array">The target bool array to fill.</param>
public static void ConvertToBoolArray(Span<byte> src, Span<RawBool> array)
{
var arrayLength = array.Length;
for (var i = 0; i < arrayLength; i++)
array[i] = src[i] != 0;
}
/// <summary>
/// Converts integer array to bool array.
/// </summary>
/// <param name="src">A pointer to the array of integers.</param>
/// <param name="array">The target bool array to fill.</param>
public static void ConvertToBoolArray(Span<short> src, Span<RawBool> array)
{
var arrayLength = array.Length;
for (var i = 0; i < arrayLength; i++)
array[i] = src[i] != 0;
}
/// <summary>
/// Converts integer array to bool array.
/// </summary>
/// <param name="src">A pointer to the array of integers.</param>
/// <param name="array">The target bool array to fill.</param>
public static void ConvertToBoolArray(Span<int> src, Span<RawBool> array) =>
MemoryMarshal.Cast<int, RawBool>(src).CopyTo(array);
/// <summary>
/// Converts integer array to bool array.
/// </summary>
/// <param name="src">A pointer to the array of integers.</param>
/// <param name="array">The target bool array to fill.</param>
public static void ConvertToBoolArray(Span<long> src, Span<RawBool> array)
{
var arrayLength = array.Length;
for (var i = 0; i < arrayLength; i++)
array[i] = src[i] != 0;
}
/// <summary>
/// Converts integer array to bool array.
/// </summary>
/// <param name="src">A pointer to the array of integers.</param>
/// <param name="array">The target bool array to fill.</param>
public static void ConvertToBoolArray(Span<sbyte> src, Span<RawBool> array)
{
var arrayLength = array.Length;
for (var i = 0; i < arrayLength; i++)
array[i] = src[i] != 0;
}
/// <summary>
/// Converts integer array to bool array.
/// </summary>
/// <param name="src">A pointer to the array of integers.</param>
/// <param name="array">The target bool array to fill.</param>
public static void ConvertToBoolArray(Span<ushort> src, Span<RawBool> array)
{
var arrayLength = array.Length;
for (var i = 0; i < arrayLength; i++)
array[i] = src[i] != 0;
}
/// <summary>
/// Converts integer array to bool array.
/// </summary>
/// <param name="src">A pointer to the array of integers.</param>
/// <param name="array">The target bool array to fill.</param>
public static void ConvertToBoolArray(Span<uint> src, Span<RawBool> array) =>
MemoryMarshal.Cast<uint, RawBool>(src).CopyTo(array);
/// <summary>
/// Converts integer array to bool array.
/// </summary>
/// <param name="src">A pointer to the array of integers.</param>
/// <param name="array">The target bool array to fill.</param>
public static void ConvertToBoolArray(Span<ulong> src, Span<RawBool> array)
{
var arrayLength = array.Length;
for (var i = 0; i < arrayLength; i++)
array[i] = src[i] != 0;
}
}
}