using System;
using System.Runtime.CompilerServices;
namespace SharpGen.Runtime
{
public static unsafe partial class BooleanHelpers
{
///
/// Converts integer array to bool array.
///
/// A pointer to the array of integers.
/// The target bool array to fill.
public static void ConvertToBoolArray(byte* src, Span array)
{
fixed (void* dest = array)
Unsafe.CopyBlockUnaligned(dest, src, (uint) array.Length);
}
///
/// Converts integer array to bool array.
///
/// A pointer to the array of integers.
/// The target bool array to fill.
public static void ConvertToBoolArray(short* src, Span array)
{
var arrayLength = array.Length;
for (var i = 0; i < arrayLength; i++)
array[i] = src[i] != 0;
}
///
/// Converts integer array to bool array.
///
/// A pointer to the array of integers.
/// The target bool array to fill.
public static void ConvertToBoolArray(int* src, Span array)
{
var arrayLength = array.Length;
for (var i = 0; i < arrayLength; i++)
array[i] = src[i] != 0;
}
///
/// Converts integer array to bool array.
///
/// A pointer to the array of integers.
/// The target bool array to fill.
public static void ConvertToBoolArray(long* src, Span array)
{
var arrayLength = array.Length;
for (var i = 0; i < arrayLength; i++)
array[i] = src[i] != 0;
}
///
/// Converts integer array to bool array.
///
/// A pointer to the array of integers.
/// The target bool array to fill.
public static void ConvertToBoolArray(sbyte* src, Span array)
{
fixed (void* dest = array)
Unsafe.CopyBlockUnaligned(dest, src, (uint) array.Length);
}
///
/// Converts integer array to bool array.
///
/// A pointer to the array of integers.
/// The target bool array to fill.
public static void ConvertToBoolArray(ushort* src, Span array)
{
var arrayLength = array.Length;
for (var i = 0; i < arrayLength; i++)
array[i] = src[i] != 0;
}
///
/// Converts integer array to bool array.
///
/// A pointer to the array of integers.
/// The target bool array to fill.
public static void ConvertToBoolArray(uint* src, Span array)
{
var arrayLength = array.Length;
for (var i = 0; i < arrayLength; i++)
array[i] = src[i] != 0;
}
///
/// Converts integer array to bool array.
///
/// A pointer to the array of integers.
/// The target bool array to fill.
public static void ConvertToBoolArray(ulong* src, Span array)
{
var arrayLength = array.Length;
for (var i = 0; i < arrayLength; i++)
array[i] = src[i] != 0;
}
}
}