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; } } }