contract array_struct_mapping_storage {
struct A {
mapping(uint256 => uint256) a;
}
A[] private map;
// canary here to ensure we don't overwrite it at any point
int64 public number;
function set(uint64 array_no, uint64 index, uint64 val) public {
map[array_no].a[index] = val;
}
function get(uint64 array_no, uint64 index) public view returns (uint256) {
return map[array_no].a[index];
}
function rm(uint64 array_no, uint64 index) public {
delete map[array_no].a[index];
}
function push() public {
map.push();
}
function pop() public {
map.pop();
}
function setNumber(int64 x) public {
number = x;
}
}