Skip to content

Commit 7e93985

Browse files
authored
optional enum in set_enum_type patch (#624)
1 parent 4e0f7dd commit 7e93985

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

tools/regz/src/Database.zig

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,6 @@ pub const DevicePeripheral = struct {
5959
.{ .name = "struct_id", .on_delete = .cascade, .on_update = .cascade },
6060
},
6161
};
62-
63-
// TODO: SQL opts
6462
};
6563

6664
pub const Mode = struct {
@@ -1518,7 +1516,7 @@ pub fn create_nested_struct(
15181516
parent: StructID,
15191517
opts: CreateNestedStructOptions,
15201518
) !StructID {
1521-
var savepoint = try db.sql.savepoint("create_interrupt");
1519+
var savepoint = try db.sql.savepoint("create_nested_struct");
15221520
defer savepoint.rollback();
15231521

15241522
const struct_id = try db.create_struct(.{});
@@ -2060,7 +2058,7 @@ pub fn get_register_ref(db: *Database, ref: []const u8) !RegisterID {
20602058
return register.id;
20612059
}
20622060

2063-
pub fn set_register_field_enum_id(db: *Database, register_id: RegisterID, field_name: []const u8, enum_id: EnumID) !void {
2061+
pub fn set_register_field_enum_id(db: *Database, register_id: RegisterID, field_name: []const u8, enum_id: ?EnumID) !void {
20642062
try db.exec(
20652063
\\UPDATE struct_fields
20662064
\\SET enum_id = ?
@@ -2076,7 +2074,7 @@ pub fn set_register_field_enum_id(db: *Database, register_id: RegisterID, field_
20762074
.name = field_name,
20772075
});
20782076

2079-
log.debug("set_register_field_enum_id: register_id={} field_name={s} enum_id={}", .{
2077+
log.debug("set_register_field_enum_id: register_id={} field_name={s} enum_id={?}", .{
20802078
register_id,
20812079
field_name,
20822080
enum_id,
@@ -2142,7 +2140,7 @@ pub fn apply_patch(db: *Database, ndjson: []const u8) !void {
21422140
}
21432141
},
21442142
.set_enum_type => |set_enum_type| {
2145-
const enum_id = try db.get_enum_ref(set_enum_type.to);
2143+
const enum_id = if (set_enum_type.to) |to| try db.get_enum_ref(to) else null;
21462144
const field_name, const register_ref = try get_ref_last_component(set_enum_type.of);
21472145
const register_id = try db.get_register_ref(register_ref orelse return error.InvalidRef);
21482146
try db.set_register_field_enum_id(register_id, field_name, enum_id);

tools/regz/src/patch.zig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ pub const Patch = union(enum) {
3131
/// context
3232
set_enum_type: struct {
3333
of: []const u8,
34-
to: []const u8,
34+
to: ?[]const u8,
3535
},
3636
add_interrupt: struct {
3737
device_name: []const u8,

0 commit comments

Comments
 (0)