user_defined_operators.sol 471 B

1234567891011121314151617181920
  1. type Bitmap is int256;
  2. function sub(Bitmap a, Bitmap b) pure returns (Bitmap) {
  3. return Bitmap.wrap(Bitmap.unwrap(a) - Bitmap.unwrap(b));
  4. }
  5. function add(Bitmap a, Bitmap b) pure returns (Bitmap) {
  6. return Bitmap.wrap(Bitmap.unwrap(a) + Bitmap.unwrap(b));
  7. }
  8. function neg(Bitmap a) pure returns (Bitmap) {
  9. return Bitmap.wrap(-Bitmap.unwrap(a));
  10. }
  11. using {sub as -, neg as -, add as +} for Bitmap global;
  12. function foo(Bitmap a, Bitmap b) {
  13. Bitmap c = a + b;
  14. // ...
  15. }