Skip to content

Commit

Permalink
Generate code using pascal case
Browse files Browse the repository at this point in the history
  • Loading branch information
joajfreitas committed Jan 6, 2025
1 parent b4c26ca commit e29b89e
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 4 deletions.
2 changes: 1 addition & 1 deletion plugins/fcp_cpp/fcp_cpp/dynamic.h.j2
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ class DynamicSchema : public ISchema {
fields.push_back(
StructField{
struct_field.GetName().GetData(),
struct_field.GetField_id().GetData(),
struct_field.GetFieldId().GetData(),
*type
}
);
Expand Down
6 changes: 3 additions & 3 deletions plugins/fcp_cpp/fcp_cpp/fcp.h.j2
Original file line number Diff line number Diff line change
Expand Up @@ -150,18 +150,18 @@ struct {{struct.name}} {
{%- endfor %}
}
{% for signal in struct.fields %}
{{signal.name | capitalize}}Type Get{{signal.name | capitalize}}() const {
{{signal.name | capitalize}}Type Get{{signal.name | to_pascal_case}}() const {
return {{signal.name}}_;
}
{% endfor -%}

{% for signal in struct.fields %}
{{signal.name | capitalize}}Type& View{{signal.name | capitalize}}() {
{{signal.name | capitalize}}Type& View{{signal.name | to_pascal_case}}() {
return {{signal.name}}_;
}
{% endfor %}
inline bool operator==(const {{struct.name}}& rhs) const {
return {% for signal in struct.fields %}{{signal.name}}_ == rhs.Get{{signal.name | capitalize}}(){% if not loop.last %}
return {% for signal in struct.fields %}{{signal.name}}_ == rhs.Get{{signal.name | to_pascal_case}}(){% if not loop.last %}
{{'\t'}}&& {% endif %}{% endfor %};
}

Expand Down
6 changes: 6 additions & 0 deletions plugins/fcp_cpp/fcp_cpp/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,11 @@ def to_wrapper_cpp_type(input: Type) -> str:
raise ValueError("Cannot convert type to C++ type")


def to_pascal_case(name: str) -> str:
"""Convert snake case to pascal case."""
return "".join([n.capitalize() for n in name.split("_")])


class CanEncoding:
"""Can encoding representation used in templates."""

Expand Down Expand Up @@ -153,6 +158,7 @@ def generate(self, fcp: FcpV2, ctx: Any) -> Dict[str, Union[str, Path]]:

env = jinja2.Environment(loader=loader)
env.globals["to_wrapper_cpp_type"] = to_wrapper_cpp_type
env.filters["to_pascal_case"] = to_pascal_case

return [
{
Expand Down

0 comments on commit e29b89e

Please sign in to comment.