| ... | @@ -680,6 +680,11 @@ pub fn alignCast(comptime alignment: u29, ptr: var) AlignCastError!@typeOf(@alig | ... | @@ -680,6 +680,11 @@ pub fn alignCast(comptime alignment: u29, ptr: var) AlignCastError!@typeOf(@alig |
| 680 | return @alignCast(alignment, ptr); | 680 | return @alignCast(alignment, ptr); |
| 681 | } | 681 | } |
| 682 | | 682 | |
| | 683 | pub fn isPowerOfTwo(v: var) bool { |
| | 684 | assert(v != 0); |
| | 685 | return (v & (v - 1)) == 0; |
| | 686 | } |
| | 687 | |
| 683 | pub fn floorPowerOfTwo(comptime T: type, value: T) T { | 688 | pub fn floorPowerOfTwo(comptime T: type, value: T) T { |
| 684 | var x = value; | 689 | var x = value; |
| 685 | | 690 | |