BitFlags256.cs 522 B

123456789101112131415161718192021222324
  1. namespace Lua.Internal;
  2. internal unsafe struct BitFlags256
  3. {
  4. internal fixed long Data[4];
  5. public bool this[int index]
  6. {
  7. get => (Data[index >> 6] & (1L << (index & 63))) != 0;
  8. set
  9. {
  10. if (value)
  11. {
  12. Data[index >> 6] |= 1L << (index & 63);
  13. }
  14. else
  15. {
  16. Data[index >> 6] &= ~(1L << (index & 63));
  17. }
  18. }
  19. }
  20. public void Set(int index) => Data[index >> 6] |= 1L << (index & 63);
  21. }