| ... | ... | @@ -468,6 +468,20 @@ pub fn ArrayListAligned(comptime T: type, comptime alignment: ?u29) type { |
| 468 | 468 | pub fn unusedCapacitySlice(self: Self) Slice { |
| 469 | 469 | return self.allocatedSlice()[self.items.len..]; |
| 470 | 470 | } |
| 471 | |
| 472 | /// Return the last element from the list. |
| 473 | /// Asserts the list has at least one item. |
| 474 | pub fn getLast(self: *Self) T { |
| 475 | const val = self.items[self.items.len - 1]; |
| 476 | return val; |
| 477 | } |
| 478 | |
| 479 | /// Return the last element from the list, or |
| 480 | /// return `null` if list is empty. |
| 481 | pub fn getLastOrNull(self: *Self) ?T { |
| 482 | if (self.items.len == 0) return null; |
| 483 | return self.getLast(); |
| 484 | } |
| 471 | 485 | }; |
| 472 | 486 | } |
| 473 | 487 | |
| ... | ... | @@ -913,6 +927,20 @@ pub fn ArrayListAlignedUnmanaged(comptime T: type, comptime alignment: ?u29) typ |
| 913 | 927 | pub fn unusedCapacitySlice(self: Self) Slice { |
| 914 | 928 | return self.allocatedSlice()[self.items.len..]; |
| 915 | 929 | } |
| 930 | |
| 931 | /// Return the last element from the list. |
| 932 | /// Asserts the list has at least one item. |
| 933 | pub fn getLast(self: *Self) T { |
| 934 | const val = self.items[self.items.len - 1]; |
| 935 | return val; |
| 936 | } |
| 937 | |
| 938 | /// Return the last element from the list, or |
| 939 | /// return `null` if list is empty. |
| 940 | pub fn getLastOrNull(self: *Self) ?T { |
| 941 | if (self.items.len == 0) return null; |
| 942 | return self.getLast(); |
| 943 | } |
| 916 | 944 | }; |
| 917 | 945 | } |
| 918 | 946 | |