Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.33 KB | None | 0 0
  1. namespace Evil
  2. {
  3.     public struct Bitmask
  4.     {
  5.         private int bitmask;
  6.  
  7.         public int Data
  8.         {
  9.             get            
  10.             {
  11.                 return bitmask;
  12.             }
  13.         }
  14.  
  15.         public Bitmask(Enum bitmask)
  16.         {
  17.             this.bitmask = Convert.ToInt32(bitmask);
  18.         }
  19.  
  20.         public Bitmask(int bitmask)
  21.         {
  22.             this.bitmask = bitmask;
  23.         }
  24.  
  25.         public bool this[Enum bitmask]
  26.         {
  27.             get
  28.             {
  29.                 return (int)(this.bitmask & Convert.ToInt32(bitmask)) > 0;
  30.             }
  31.             set
  32.             {
  33.                 if (value)
  34.                 {
  35.                     this.bitmask &= ~Convert.ToInt32(bitmask);
  36.                 }
  37.                 else
  38.                 {
  39.                     this.bitmask |= Convert.ToInt32(bitmask);
  40.                 }
  41.             }
  42.         }
  43.  
  44.         public static Bitmask operator &(Bitmask left, Bitmask right)
  45.         {
  46.             return new Bitmask(left.Data & right.Data);
  47.         }
  48.  
  49.         public static Bitmask operator |(Bitmask left, Bitmask right)
  50.         {
  51.             return new Bitmask(left.Data | right.Data);
  52.         }
  53.  
  54.         public static Bitmask operator ~(Bitmask right)
  55.         {
  56.             return new Bitmask(~right.Data);
  57.         }
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement