| ... | ... | @@ -96,19 +96,18 @@ pub fn TrailerFlags(comptime Fields: type) type { |
| 96 | 96 | pub fn ptr(self: Self, p: [*]align(@alignOf(Fields)) u8, comptime field: FieldEnum) *Field(field) { |
| 97 | 97 | if (@sizeOf(Field(field)) == 0) |
| 98 | 98 | return undefined; |
| 99 | | const off = self.offset(p, field); |
| 99 | const off = self.offset(field); |
| 100 | 100 | return @ptrCast(*Field(field), @alignCast(@alignOf(Field(field)), p + off)); |
| 101 | 101 | } |
| 102 | 102 | |
| 103 | 103 | pub fn ptrConst(self: Self, p: [*]align(@alignOf(Fields)) const u8, comptime field: FieldEnum) *const Field(field) { |
| 104 | 104 | if (@sizeOf(Field(field)) == 0) |
| 105 | 105 | return undefined; |
| 106 | | const off = self.offset(p, field); |
| 106 | const off = self.offset(field); |
| 107 | 107 | return @ptrCast(*const Field(field), @alignCast(@alignOf(Field(field)), p + off)); |
| 108 | 108 | } |
| 109 | 109 | |
| 110 | | pub fn offset(self: Self, p: [*]align(@alignOf(Fields)) const u8, comptime field: FieldEnum) usize { |
| 111 | | _ = p; |
| 110 | pub fn offset(self: Self, comptime field: FieldEnum) usize { |
| 112 | 111 | var off: usize = 0; |
| 113 | 112 | inline for (@typeInfo(Fields).Struct.fields) |field_info, i| { |
| 114 | 113 | const active = (self.bits & (1 << i)) != 0; |