Skip to content

Commit 5f96f7b

Browse files
authored
feat: add basic types to pointer casting (#198)
1 parent 6a90b1b commit 5f96f7b

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

src/_modules/Pointer.sol

+15-11
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,38 @@ library LibPointer {
99
}
1010

1111
function asString(Pointer self) internal pure returns (string memory val) {
12-
bytes32 memoryAddr = self.asBytes32();
13-
1412
assembly {
15-
val := memoryAddr
13+
val := self
1614
}
1715
}
1816

1917
function asBytes(Pointer self) internal pure returns (bytes memory val) {
20-
bytes32 memoryAddr = self.asBytes32();
21-
2218
assembly {
23-
val := memoryAddr
19+
val := self
2420
}
2521
}
2622

2723
function asBool(Pointer self) internal pure returns (bool val) {
28-
bytes32 memoryAddr = self.asBytes32();
29-
3024
assembly {
31-
val := memoryAddr
25+
val := self
3226
}
3327
}
3428

3529
function asUint256(Pointer self) internal pure returns (uint256 val) {
36-
bytes32 memoryAddr = self.asBytes32();
30+
assembly {
31+
val := self
32+
}
33+
}
34+
35+
function asInt256(Pointer self) internal pure returns (int256 val) {
36+
assembly {
37+
val := self
38+
}
39+
}
3740

41+
function asAddress(Pointer self) internal pure returns (address val) {
3842
assembly {
39-
val := memoryAddr
43+
val := self
4044
}
4145
}
4246
}

0 commit comments

Comments
 (0)