Skip to content

Commit 814523f

Browse files
committed
Refactor: defaulted members must be optional
During usage of the library, it was found that members with default values must be optional, otherwise deserialization fails if the member is missing in reflect-cpp.
1 parent 4c94d06 commit 814523f

2 files changed

Lines changed: 2 additions & 2 deletions

File tree

code-gen/src/poly_scribe_code_gen/cpp_gen.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def _transform_types(parsed_idl: ParsedIDL) -> ParsedIDL:
9090
for struct_data in parsed_idl["structs"].values():
9191
for member_data in struct_data["members"].values():
9292
member_data["type"] = _transformer(member_data["type"], parsed_idl["inheritance_data"])
93-
if not member_data["required"] and member_data["default"] is None:
93+
if not member_data["required"]:
9494
member_data["type"] = f"std::optional<{member_data['type']}>"
9595

9696
if "std::string" in member_data["type"] and member_data["default"]:

code-gen/src/poly_scribe_code_gen/py_gen.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ def _transform_types(parsed_idl: ParsedIDL) -> ParsedIDL:
170170
type_str = type_str[1:-1]
171171
member_data["default"] = f"{type_str}()"
172172

173-
if not member_data["required"] and member_data["default"] is None:
173+
if not member_data["required"]:
174174
member_data["type"] = f"Optional[{member_data['type']}]"
175175

176176
if "str" in member_data["type"] and member_data["default"] is not None:

0 commit comments

Comments
 (0)