array_struct_mapping_storage.sol 732 B

123456789101112131415161718192021222324252627282930313233
  1. contract array_struct_mapping_storage {
  2. struct A {
  3. mapping(uint256 => uint256) a;
  4. }
  5. A[] private map;
  6. // canary here to ensure we don't overwrite it at any point
  7. int64 public number;
  8. function set(uint64 array_no, uint64 index, uint64 val) public {
  9. map[array_no].a[index] = val;
  10. }
  11. function get(uint64 array_no, uint64 index) public view returns (uint256) {
  12. return map[array_no].a[index];
  13. }
  14. function rm(uint64 array_no, uint64 index) public {
  15. delete map[array_no].a[index];
  16. }
  17. function push() public {
  18. map.push();
  19. }
  20. function pop() public {
  21. map.pop();
  22. }
  23. function setNumber(int64 x) public {
  24. number = x;
  25. }
  26. }