/runtime/typeinfo/ti_ulong.d

http://github.com/wilkie/djehuty · D · 45 lines · 30 code · 9 blank · 6 comment · 4 complexity · c3e73bfa16a81a0c2b87921b4c3d3961 MD5 · raw file

  1. /*
  2. * ti_ulong.d
  3. *
  4. * This module implements the TypeInfo for the ulong type.
  5. *
  6. */
  7. module runtime.typeinfo.ti_ulong;
  8. class TypeInfo_m : TypeInfo {
  9. char[] toString() {
  10. return "ulong";
  11. }
  12. hash_t getHash(void *p) {
  13. return *cast(uint *)p + (cast(uint *)p)[1];
  14. }
  15. int equals(void *p1, void *p2) {
  16. return *cast(ulong *)p1 == *cast(ulong *)p2;
  17. }
  18. int compare(void *p1, void *p2) {
  19. if (*cast(ulong *)p1 < *cast(ulong *)p2) {
  20. return -1;
  21. }
  22. else if (*cast(ulong *)p1 > *cast(ulong *)p2) {
  23. return 1;
  24. }
  25. return 0;
  26. }
  27. size_t tsize() {
  28. return ulong.sizeof;
  29. }
  30. void swap(void *p1, void *p2) {
  31. ulong t;
  32. t = *cast(ulong *)p1;
  33. *cast(ulong *)p1 = *cast(ulong *)p2;
  34. *cast(ulong *)p2 = t;
  35. }
  36. }