2 changed files with 29 additions and 6 deletions
@ -0,0 +1,23 @@ |
|||
// Copyright (c) The Avalonia Project. All rights reserved.
|
|||
// Licensed under the MIT license. See licence.md file in the project root for full license information.
|
|||
|
|||
using System; |
|||
using System.Runtime.CompilerServices; |
|||
|
|||
namespace Avalonia |
|||
{ |
|||
/// <summary>
|
|||
/// Provides extension methods for enums.
|
|||
/// </summary>
|
|||
public static class EnumExtensions |
|||
{ |
|||
[MethodImpl(MethodImplOptions.AggressiveInlining)] |
|||
public static unsafe bool HasFlagCustom<T>(this T value, T flag) where T : unmanaged, Enum |
|||
{ |
|||
var intValue = *(int*)&value; |
|||
var intFlag = *(int*)&flag; |
|||
|
|||
return (intValue & intFlag) == intFlag; |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue